//START AjaxControlToolkit.Compat.Timer.Timer.js
Sys.Timer=function(){var a=this;Sys.Timer.initializeBase(a);a._interval=1e3;a._enabled=false;a._timer=null};Sys.Timer.prototype={get_interval:function(){return this._interval},set_interval:function(b){var a=this;if(a._interval!==b){a._interval=b;a.raisePropertyChanged("interval");if(!a.get_isUpdating()&&a._timer!==null){a._stopTimer();a._startTimer()}}},get_enabled:function(){return this._enabled},set_enabled:function(b){var a=this;if(b!==a.get_enabled()){a._enabled=b;a.raisePropertyChanged("enabled");if(!a.get_isUpdating())if(b)a._startTimer();else a._stopTimer()}},add_tick:function(a){this.get_events().addHandler("tick",a)},remove_tick:function(a){this.get_events().removeHandler("tick",a)},dispose:function(){this.set_enabled(false);this._stopTimer();Sys.Timer.callBaseMethod(this,"dispose")},updated:function(){var a=this;Sys.Timer.callBaseMethod(a,"updated");if(a._enabled){a._stopTimer();a._startTimer()}},_timerCallback:function(){var a=this.get_events().getHandler("tick");if(a)a(this,Sys.EventArgs.Empty)},_startTimer:function(){var a=this;a._timer=window.setInterval(Function.createDelegate(a,a._timerCallback),a._interval)},_stopTimer:function(){window.clearInterval(this._timer);this._timer=null}};Sys.Timer.descriptor={properties:[{name:"interval",type:Number},{name:"enabled",type:Boolean}],events:[{name:"tick"}]};Sys.Timer.registerClass("Sys.Timer",Sys.Component);
//END AjaxControlToolkit.Compat.Timer.Timer.js
//START AjaxControlToolkit.Common.Common.js
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.BoxSide=function(){};AjaxControlToolkit.BoxSide.prototype={Top:0,Right:1,Bottom:2,Left:3};AjaxControlToolkit.BoxSide.registerEnum("AjaxControlToolkit.BoxSide",false);AjaxControlToolkit._CommonToolkitScripts=function(){};AjaxControlToolkit._CommonToolkitScripts.prototype={_borderStyleNames:["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"],_borderWidthNames:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],_paddingWidthNames:["paddingTop","paddingRight","paddingBottom","paddingLeft"],_marginWidthNames:["marginTop","marginRight","marginBottom","marginLeft"],getCurrentStyle:function(b,c,d){var e="undefined",a=null;if(b){if(b.currentStyle)a=b.currentStyle[c];else if(document.defaultView&&document.defaultView.getComputedStyle){var f=document.defaultView.getComputedStyle(b,null);if(f)a=f[c]}if(!a&&b.style.getPropertyValue)a=b.style.getPropertyValue(c);else if(!a&&b.style.getAttribute)a=b.style.getAttribute(c)}if(!a||a==""||typeof a===e)if(typeof d!=e)a=d;else a=null;return a},getInheritedBackgroundColor:function(b){var d="backgroundColor",c="#FFFFFF";if(!b)return c;var a=this.getCurrentStyle(b,d);try{while(!a||a==""||a=="transparent"||a=="rgba(0, 0, 0, 0)"){b=b.parentNode;if(!b)a=c;else a=this.getCurrentStyle(b,d)}}catch(e){a=c}return a},getLocation:function(a){if(a===document.documentElement)return new Sys.UI.Point(0,0);if(Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version<7){if(a.window===a||a.nodeType===9||!a.getClientRects||!a.getBoundingClientRect)return new Sys.UI.Point(0,0);var b=a.getClientRects();if(!b||!b.length)return new Sys.UI.Point(0,0);var c=b[0],k=0,l=0,f=false;try{f=a.ownerDocument.parentWindow.frameElement}catch(m){f=true}if(f){var e=a.getBoundingClientRect();if(!e)return new Sys.UI.Point(0,0);var g=c.left,h=c.top;for(var i=1;i<b.length;i++){var d=b[i];if(d.left<g)g=d.left;if(d.top<h)h=d.top}k=g-e.left;l=h-e.top}var j=a.document.documentElement;return new Sys.UI.Point(c.left-2-k+j.scrollLeft,c.top-2-l+j.scrollTop)}return Sys.UI.DomElement.getLocation(a)},setLocation:function(b,a){Sys.UI.DomElement.setLocation(b,a.x,a.y)},getContentSize:function(a){if(!a)throw Error.argumentNull("element");var d=this.getSize(a),c=this.getBorderBox(a),b=this.getPaddingBox(a);return {width:d.width-c.horizontal-b.horizontal,height:d.height-c.vertical-b.vertical}},getSize:function(a){if(!a)throw Error.argumentNull("element");return {width:a.offsetWidth,height:a.offsetHeight}},setContentSize:function(a,b){var d="border-box",c=this;if(!a)throw Error.argumentNull("element");if(!b)throw Error.argumentNull("size");if(c.getCurrentStyle(a,"MozBoxSizing")==d||c.getCurrentStyle(a,"BoxSizing")==d){var f=c.getBorderBox(a),e=c.getPaddingBox(a);b={width:b.width+f.horizontal+e.horizontal,height:b.height+f.vertical+e.vertical}}a.style.width=b.width.toString()+"px";a.style.height=b.height.toString()+"px"},setSize:function(a,b){if(!a)throw Error.argumentNull("element");if(!b)throw Error.argumentNull("size");var d=this.getBorderBox(a),c=this.getPaddingBox(a),e={width:b.width-d.horizontal-c.horizontal,height:b.height-d.vertical-c.vertical};this.setContentSize(a,e)},getBounds:function(a){var b=$common.getLocation(a);return new Sys.UI.Bounds(b.x,b.y,a.offsetWidth||0,a.offsetHeight||0)},setBounds:function(a,b){if(!a)throw Error.argumentNull("element");if(!b)throw Error.argumentNull("bounds");this.setSize(a,b);$common.setLocation(a,b)},getClientBounds:function(){var b,a;if(document.compatMode=="CSS1Compat"){b=document.documentElement.clientWidth;a=document.documentElement.clientHeight}else{b=document.body.clientWidth;a=document.body.clientHeight}return new Sys.UI.Bounds(0,0,b,a)},getMarginBox:function(b){var c=this;if(!b)throw Error.argumentNull("element");var a={top:c.getMargin(b,AjaxControlToolkit.BoxSide.Top),right:c.getMargin(b,AjaxControlToolkit.BoxSide.Right),bottom:c.getMargin(b,AjaxControlToolkit.BoxSide.Bottom),left:c.getMargin(b,AjaxControlToolkit.BoxSide.Left)};a.horizontal=a.left+a.right;a.vertical=a.top+a.bottom;return a},getBorderBox:function(b){var c=this;if(!b)throw Error.argumentNull("element");var a={top:c.getBorderWidth(b,AjaxControlToolkit.BoxSide.Top),right:c.getBorderWidth(b,AjaxControlToolkit.BoxSide.Right),bottom:c.getBorderWidth(b,AjaxControlToolkit.BoxSide.Bottom),left:c.getBorderWidth(b,AjaxControlToolkit.BoxSide.Left)};a.horizontal=a.left+a.right;a.vertical=a.top+a.bottom;return a},getPaddingBox:function(b){var c=this;if(!b)throw Error.argumentNull("element");var a={top:c.getPadding(b,AjaxControlToolkit.BoxSide.Top),right:c.getPadding(b,AjaxControlToolkit.BoxSide.Right),bottom:c.getPadding(b,AjaxControlToolkit.BoxSide.Bottom),left:c.getPadding(b,AjaxControlToolkit.BoxSide.Left)};a.horizontal=a.left+a.right;a.vertical=a.top+a.bottom;return a},isBorderVisible:function(b,a){if(!b)throw Error.argumentNull("element");if(a<AjaxControlToolkit.BoxSide.Top||a>AjaxControlToolkit.BoxSide.Left)throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,a,"AjaxControlToolkit.BoxSide"));var d=this._borderStyleNames[a],c=this.getCurrentStyle(b,d);return c!="none"},getMargin:function(b,a){if(!b)throw Error.argumentNull("element");if(a<AjaxControlToolkit.BoxSide.Top||a>AjaxControlToolkit.BoxSide.Left)throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,a,"AjaxControlToolkit.BoxSide"));var d=this._marginWidthNames[a],c=this.getCurrentStyle(b,d);try{return this.parsePadding(c)}catch(e){return 0}},getBorderWidth:function(c,a){var b=this;if(!c)throw Error.argumentNull("element");if(a<AjaxControlToolkit.BoxSide.Top||a>AjaxControlToolkit.BoxSide.Left)throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,a,"AjaxControlToolkit.BoxSide"));if(!b.isBorderVisible(c,a))return 0;var e=b._borderWidthNames[a],d=b.getCurrentStyle(c,e);return b.parseBorderWidth(d)},getPadding:function(b,a){if(!b)throw Error.argumentNull("element");if(a<AjaxControlToolkit.BoxSide.Top||a>AjaxControlToolkit.BoxSide.Left)throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,a,"AjaxControlToolkit.BoxSide"));var d=this._paddingWidthNames[a],c=this.getCurrentStyle(b,d);return this.parsePadding(c)},parseBorderWidth:function(d){var h="thick",g="medium",f="thin",e=this;if(!e._borderThicknesses){var c={},a=document.createElement("div");a.style.visibility="hidden";a.style.position="absolute";a.style.fontSize="1px";document.body.appendChild(a);var b=document.createElement("div");b.style.height="0px";b.style.overflow="hidden";a.appendChild(b);var i=a.offsetHeight;b.style.borderTop="solid black";b.style.borderTopWidth=f;c[f]=a.offsetHeight-i;b.style.borderTopWidth=g;c[g]=a.offsetHeight-i;b.style.borderTopWidth=h;c[h]=a.offsetHeight-i;a.removeChild(b);document.body.removeChild(a);e._borderThicknesses=c}if(d){switch(d){case f:case g:case h:return e._borderThicknesses[d];case "inherit":return 0}var j=e.parseUnit(d);Sys.Debug.assert(j.type=="px",String.format(AjaxControlToolkit.Resources.Common_InvalidBorderWidthUnit,j.type));return j.size}return 0},parsePadding:function(a){if(a){if(a=="inherit")return 0;var b=this.parseUnit(a);Sys.Debug.assert(b.type=="px",String.format(AjaxControlToolkit.Resources.Common_InvalidPaddingUnit,b.type));return b.size}return 0},parseUnit:function(a){if(!a)throw Error.argumentNull("value");a=a.trim().toLowerCase();var g=a.length,c=-1;for(var f=0;f<g;f++){var b=a.substr(f,1);if((b<"0"||b>"9")&&b!="-"&&b!="."&&b!=",")break;c=f}if(c==-1)throw Error.create(AjaxControlToolkit.Resources.Common_UnitHasNoDigits);var e,d;if(c<g-1)e=a.substring(c+1).trim();else e="px";d=parseFloat(a.substr(0,c+1));if(e=="px")d=Math.floor(d);return {size:d,type:e}},getElementOpacity:function(a){if(!a)throw Error.argumentNull("element");var b=false,c;if(a.filters){var e=a.filters;if(e.length!==0){var d=e["DXImageTransform.Microsoft.Alpha"];if(d){c=d.opacity/100;b=true}}}else{c=this.getCurrentStyle(a,"opacity",1);b=true}if(b===false)return 1;return parseFloat(c)},setElementOpacity:function(a,b){if(!a)throw Error.argumentNull("element");if(a.filters){var e=a.filters,c=true;if(e.length!==0){var d=e["DXImageTransform.Microsoft.Alpha"];if(d){c=false;d.opacity=b*100}}if(c)a.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+b*100+")"}else a.style.opacity=b},getVisible:function(a){return a&&"none"!=$common.getCurrentStyle(a,"display")&&"hidden"!=$common.getCurrentStyle(a,"visibility")},setVisible:function(a,b){if(a&&b!=$common.getVisible(a)){if(b)if(a.style.removeAttribute)a.style.removeAttribute("display");else a.style.removeProperty("display");else a.style.display="none";a.style.visibility=b?"visible":"hidden"}},resolveFunction:function(value){if(value)if(value instanceof Function)return value;else if(String.isInstanceOfType(value)&&value.length>0){var func;if((func=window[value])instanceof Function)return func;else if((func=eval(value))instanceof Function)return func}return null},addCssClasses:function(c,b){for(var a=0;a<b.length;a++)Sys.UI.DomElement.addCssClass(c,b[a])},removeCssClasses:function(c,b){for(var a=0;a<b.length;a++)Sys.UI.DomElement.removeCssClass(c,b[a])},setStyle:function(a,b){$common.applyProperties(a.style,b)},removeHandlers:function(c,a){for(var b in a)$removeHandler(c,b,a[b])},overlaps:function(a,b){return a.x<b.x+b.width&&b.x<a.x+a.width&&a.y<b.y+b.height&&b.y<a.y+a.height},containsPoint:function(a,b,c){return b>=a.x&&b<a.x+a.width&&c>=a.y&&c<a.y+a.height},isKeyDigit:function(a){return 48<=a&&a<=57},isKeyNavigation:function(a){return Sys.UI.Key.left<=a&&a<=Sys.UI.Key.down},padLeft:function(c,b,d,a){return $common._pad(c,b||2,d||" ","l",a||false)},padRight:function(c,b,d,a){return $common._pad(c,b||2,d||" ","r",a||false)},_pad:function(c,b,h,e,g){c=c.toString();var f=c.length,d=new Sys.StringBuilder;if(e=="r")d.append(c);while(f<b){d.append(h);f++}if(e=="l")d.append(c);var a=d.toString();if(g&&a.length>b)if(e=="l")a=a.substr(a.length-b,b);else a=a.substr(0,b);return a},__DOMEvents:{focusin:{eventGroup:"UIEvents",init:function(a){a.initUIEvent("focusin",true,false,window,1)}},focusout:{eventGroup:"UIEvents",init:function(a){a.initUIEvent("focusout",true,false,window,1)}},activate:{eventGroup:"UIEvents",init:function(a){a.initUIEvent("activate",true,true,window,1)}},focus:{eventGroup:"UIEvents",init:function(a){a.initUIEvent("focus",false,false,window,1)}},blur:{eventGroup:"UIEvents",init:function(a){a.initUIEvent("blur",false,false,window,1)}},click:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("click",true,true,window,1,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},dblclick:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("click",true,true,window,2,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},mousedown:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("mousedown",true,true,window,1,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},mouseup:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("mouseup",true,true,window,1,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},mouseover:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("mouseover",true,true,window,1,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},mousemove:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("mousemove",true,true,window,1,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},mouseout:{eventGroup:"MouseEvents",init:function(c,a){var b=false;c.initMouseEvent("mousemove",true,true,window,1,a.screenX||0,a.screenY||0,a.clientX||0,a.clientY||0,a.ctrlKey||b,a.altKey||b,a.shiftKey||b,a.metaKey||b,a.button||0,a.relatedTarget||null)}},load:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("load",false,false)}},unload:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("unload",false,false)}},select:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("select",true,false)}},change:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("change",true,false)}},submit:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("submit",true,true)}},reset:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("reset",true,false)}},resize:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("resize",true,false)}},scroll:{eventGroup:"HTMLEvents",init:function(a){a.initEvent("scroll",true,false)}}},tryFireRawEvent:function(a,b){try{if(a.fireEvent){a.fireEvent("on"+b.type,b);return true}else if(a.dispatchEvent){a.dispatchEvent(b);return true}}catch(c){}return false},tryFireEvent:function(e,d,c){try{if(document.createEventObject){var a=document.createEventObject();$common.applyProperties(a,c||{});e.fireEvent("on"+d,a);return true}else if(document.createEvent){var b=$common.__DOMEvents[d];if(b){var a=document.createEvent(b.eventGroup);b.init(a,c||{});e.dispatchEvent(a);return true}}}catch(a){}return false},wrapElement:function(a,b,c){var d=a.parentNode;d.replaceChild(b,a);(c||b).appendChild(a)},unwrapElement:function(b,a){var c=a.parentNode;if(c!=null){$common.removeElement(b);c.replaceChild(b,a)}},removeElement:function(a){var b=a.parentNode;if(b!=null)b.removeChild(a)},applyProperties:function(d,c){for(var b in c){var a=c[b];if(a!=null&&Object.getType(a)===Object){var e=d[b];$common.applyProperties(e,a)}else d[b]=a}},createElementFromTemplate:function(a,j,e){var c=null,b="undefined";if(typeof a.nameTable!=b){var g=a.nameTable;if(String.isInstanceOfType(g))g=e[g];if(g!=c)e=g}var l=c;if(typeof a.name!==b)l=a.name;var d=document.createElement(a.nodeName);if(typeof a.name!==b&&e)e[a.name]=d;if(typeof a.parent!==b&&j==c){var h=a.parent;if(String.isInstanceOfType(h))h=e[h];if(h!=c)j=h}if(typeof a.properties!==b&&a.properties!=c)$common.applyProperties(d,a.properties);if(typeof a.cssClasses!==b&&a.cssClasses!=c)$common.addCssClasses(d,a.cssClasses);if(typeof a.events!==b&&a.events!=c)$addHandlers(d,a.events);if(typeof a.visible!==b&&a.visible!=c)this.setVisible(d,a.visible);if(j)j.appendChild(d);if(typeof a.opacity!==b&&a.opacity!=c)$common.setElementOpacity(d,a.opacity);if(typeof a.children!==b&&a.children!=c)for(var k=0;k<a.children.length;k++){var m=a.children[k];$common.createElementFromTemplate(m,d,e)}var i=d;if(typeof a.contentPresenter!==b&&a.contentPresenter!=c)i=e[i];if(typeof a.content!==b&&a.content!=c){var f=a.content;if(String.isInstanceOfType(f))f=e[f];if(f.parentNode)$common.wrapElement(f,d,i);else i.appendChild(f)}return d},prepareHiddenElementForATDeviceUpdate:function(){var b="hiddenInputToUpdateATBuffer_CommonToolkitScripts",a=document.getElementById(b);if(!a){var a=document.createElement("input");a.setAttribute("type","hidden");a.setAttribute("value","1");a.setAttribute("id",b);a.setAttribute("name",b);if(document.forms[0])document.forms[0].appendChild(a)}},updateFormToRefreshATDeviceBuffer:function(){var b="value",a=document.getElementById("hiddenInputToUpdateATBuffer_CommonToolkitScripts");if(a)if(a.getAttribute(b)=="1")a.setAttribute(b,"0");else a.setAttribute(b,"1")}};var CommonToolkitScripts=AjaxControlToolkit.CommonToolkitScripts=new AjaxControlToolkit._CommonToolkitScripts,$common=CommonToolkitScripts;Sys.UI.DomElement.getVisible=$common.getVisible;Sys.UI.DomElement.setVisible=$common.setVisible;Sys.UI.Control.overlaps=$common.overlaps;AjaxControlToolkit._DomUtility=function(){};AjaxControlToolkit._DomUtility.prototype={isDescendant:function(c,b){for(var a=b.parentNode;a!=null;a=a.parentNode)if(a==c)return true;return false},isDescendantOrSelf:function(b,a){if(b===a)return true;return AjaxControlToolkit.DomUtility.isDescendant(b,a)},isAncestor:function(a,b){return AjaxControlToolkit.DomUtility.isDescendant(b,a)},isAncestorOrSelf:function(a,b){if(a===b)return true;return AjaxControlToolkit.DomUtility.isDescendant(b,a)},isSibling:function(d,c){var b=d.parentNode;for(var a=0;a<b.childNodes.length;a++)if(b.childNodes[a]==c)return true;return false}};AjaxControlToolkit._DomUtility.registerClass("AjaxControlToolkit._DomUtility");AjaxControlToolkit.DomUtility=new AjaxControlToolkit._DomUtility;AjaxControlToolkit.TextBoxWrapper=function(b){var a=this;AjaxControlToolkit.TextBoxWrapper.initializeBase(a,[b]);a._current=b.value;a._watermark=null;a._isWatermarked=false};AjaxControlToolkit.TextBoxWrapper.prototype={dispose:function(){this.get_element().AjaxControlToolkitTextBoxWrapper=null;AjaxControlToolkit.TextBoxWrapper.callBaseMethod(this,"dispose")},get_Current:function(){this._current=this.get_element().value;return this._current},set_Current:function(a){this._current=a;this._updateElement()},get_Value:function(){if(this.get_IsWatermarked())return "";else return this.get_Current()},set_Value:function(b){var a=this;a.set_Current(b);if(!b||0==b.length){if(null!=a._watermark)a.set_IsWatermarked(true)}else a.set_IsWatermarked(false)},get_Watermark:function(){return this._watermark},set_Watermark:function(a){this._watermark=a;this._updateElement()},get_IsWatermarked:function(){return this._isWatermarked},set_IsWatermarked:function(b){var a=this;if(a._isWatermarked!=b){a._isWatermarked=b;a._updateElement();a._raiseWatermarkChanged()}},_updateElement:function(){var a=this,b=a.get_element();if(a._isWatermarked){if(b.value!=a._watermark)b.value=a._watermark}else if(b.value!=a._current)b.value=a._current},add_WatermarkChanged:function(a){this.get_events().addHandler("WatermarkChanged",a)},remove_WatermarkChanged:function(a){this.get_events().removeHandler("WatermarkChanged",a)},_raiseWatermarkChanged:function(){var a=this.get_events().getHandler("WatermarkChanged");if(a)a(this,Sys.EventArgs.Empty)}};AjaxControlToolkit.TextBoxWrapper.get_Wrapper=function(a){if(null==a.AjaxControlToolkitTextBoxWrapper)a.AjaxControlToolkitTextBoxWrapper=new AjaxControlToolkit.TextBoxWrapper(a);return a.AjaxControlToolkitTextBoxWrapper};AjaxControlToolkit.TextBoxWrapper.registerClass("AjaxControlToolkit.TextBoxWrapper",Sys.UI.Behavior);AjaxControlToolkit.TextBoxWrapper.validatorGetValue=function(b){var a=$get(b);if(a&&a.AjaxControlToolkitTextBoxWrapper)return a.AjaxControlToolkitTextBoxWrapper.get_Value();return AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(b)};if(typeof ValidatorGetValue=="function"){AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue=ValidatorGetValue;ValidatorGetValue=AjaxControlToolkit.TextBoxWrapper.validatorGetValue}if(Sys.CultureInfo.prototype._getAbbrMonthIndex)try{Sys.CultureInfo.prototype._getAbbrMonthIndex("")}catch(ex){Sys.CultureInfo.prototype._getAbbrMonthIndex=function(b){var a=this;if(!a._upperAbbrMonths)a._upperAbbrMonths=a._toUpperArray(a.dateTimeFormat.AbbreviatedMonthNames);return Array.indexOf(a._upperAbbrMonths,a._toUpper(b))};Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex=Sys.CultureInfo.prototype._getAbbrMonthIndex;Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex=Sys.CultureInfo.prototype._getAbbrMonthIndex};
//END AjaxControlToolkit.Common.Common.js
//START AjaxControlToolkit.Animation.Animations.js
Type.registerNamespace("AjaxControlToolkit.Animation");var $AA=AjaxControlToolkit.Animation;$AA.registerAnimation=function(b,a){if(a&&(a===$AA.Animation||a.inheritsFrom&&a.inheritsFrom($AA.Animation))){if(!$AA.__animations)$AA.__animations={};$AA.__animations[b.toLowerCase()]=a;a.play=function(){var b=new a;a.apply(b,arguments);b.initialize();var c=Function.createDelegate(b,function(){b.remove_ended(c);c=null;b.dispose()});b.add_ended(c);b.play()}}else throw Error.argumentType("type",a,$AA.Animation,AjaxControlToolkit.Resources.Animation_InvalidBaseType)};$AA.buildAnimation=function(a,c){if(!a||a==="")return null;var b;a="("+a+")";if(!Sys.Debug.isDebug)try{b=Sys.Serialization.JavaScriptSerializer.deserialize(a)}catch(d){}else b=Sys.Serialization.JavaScriptSerializer.deserialize(a);return $AA.createAnimation(b,c)};$AA.createAnimation=function(c,l){var g="obj";if(!c||!c.AnimationName)throw Error.argument(g,AjaxControlToolkit.Resources.Animation_MissingAnimationName);var b=$AA.__animations[c.AnimationName.toLowerCase()];if(!b)throw Error.argument("type",String.format(AjaxControlToolkit.Resources.Animation_UknownAnimationName,c.AnimationName));var d=new b;if(l)d.set_target(l);if(c.AnimationChildren&&c.AnimationChildren.length)if($AA.ParentAnimation.isInstanceOfType(d))for(var k=0;k<c.AnimationChildren.length;k++){var m=$AA.createAnimation(c.AnimationChildren[k]);if(m)d.add(m)}else throw Error.argument(g,String.format(AjaxControlToolkit.Resources.Animation_ChildrenNotAllowed,b.getName()));var h=b.__animationProperties;if(!h){b.__animationProperties={};b.resolveInheritance();for(var j in b.prototype)if(j.startsWith("set_"))b.__animationProperties[j.substr(4).toLowerCase()]=j;delete b.__animationProperties["id"];h=b.__animationProperties}for(var e in c){var f=e.toLowerCase();if(f=="animationname"||f=="animationchildren")continue;var i=c[e],a=h[f];if(a&&String.isInstanceOfType(a)&&d[a])if(!Sys.Debug.isDebug)try{d[a](i)}catch(n){}else d[a](i);else if(f.endsWith("script")){a=h[f.substr(0,e.length-6)];if(a&&String.isInstanceOfType(a)&&d[a])d.DynamicProperties[a]=i;else if(Sys.Debug.isDebug)throw Error.argument(g,String.format(AjaxControlToolkit.Resources.Animation_NoDynamicPropertyFound,e,e.substr(0,e.length-5)))}else if(Sys.Debug.isDebug)throw Error.argument(g,String.format(AjaxControlToolkit.Resources.Animation_NoPropertyFound,e))}return d};$AA.Animation=function(d,c,e){var b=null,a=this;$AA.Animation.initializeBase(a);a._duration=1;a._fps=25;a._target=b;a._tickHandler=b;a._timer=b;a._percentComplete=0;a._percentDelta=b;a._owner=b;a._parentAnimation=b;a.DynamicProperties={};if(d)a.set_target(d);if(c)a.set_duration(c);if(e)a.set_fps(e)};$AA.Animation.prototype={dispose:function(){var a=this;if(a._timer){a._timer.dispose();a._timer=null}a._tickHandler=null;a._target=null;$AA.Animation.callBaseMethod(a,"dispose")},play:function(){var a=this;if(!a._owner){var b=true;if(!a._timer){b=false;if(!a._tickHandler)a._tickHandler=Function.createDelegate(a,a._onTimerTick);a._timer=new Sys.Timer;a._timer.add_tick(a._tickHandler);a.onStart();a._timer.set_interval(1e3/a._fps);a._percentDelta=100/(a._duration*a._fps);a._updatePercentComplete(0,true)}a._timer.set_enabled(true);a.raisePropertyChanged("isPlaying");if(!b)a.raisePropertyChanged("isActive")}},pause:function(){var a=this;if(!a._owner)if(a._timer){a._timer.set_enabled(false);a.raisePropertyChanged("isPlaying")}},stop:function(b){var a=this;if(!a._owner){var c=a._timer;a._timer=null;if(c){c.dispose();if(a._percentComplete!==100){a._percentComplete=100;a.raisePropertyChanged("percentComplete");if(b||b===undefined)a.onStep(100)}a.onEnd();a.raisePropertyChanged("isPlaying");a.raisePropertyChanged("isActive")}}},onStart:function(){var a=this;a.raiseStarted();for(var property in a.DynamicProperties)try{a[property](eval(a.DynamicProperties[property]))}catch(ex){if(Sys.Debug.isDebug)throw ex}},onStep:function(a){this.setValue(this.getAnimatedValue(a));this.raiseStep()},onEnd:function(){this.raiseEnded()},getAnimatedValue:function(){throw Error.notImplemented()},setValue:function(){throw Error.notImplemented()},interpolate:function(a,c,b){return a+(c-a)*(b/100)},_onTimerTick:function(){this._updatePercentComplete(this._percentComplete+this._percentDelta,true)},_updatePercentComplete:function(a,c){var b=this;if(a>100)a=100;b._percentComplete=a;b.raisePropertyChanged("percentComplete");if(c)b.onStep(a);if(a===100)b.stop(false)},setOwner:function(a){this._owner=a},raiseStarted:function(){var a=this.get_events().getHandler("started");if(a)a(this,Sys.EventArgs.Empty)},add_started:function(a){this.get_events().addHandler("started",a)},remove_started:function(a){this.get_events().removeHandler("started",a)},raiseEnded:function(){var a=this.get_events().getHandler("ended");if(a)a(this,Sys.EventArgs.Empty)},add_ended:function(a){this.get_events().addHandler("ended",a)},remove_ended:function(a){this.get_events().removeHandler("ended",a)},raiseStep:function(){var a=this.get_events().getHandler("step");if(a)a(this,Sys.EventArgs.Empty)},add_step:function(a){this.get_events().addHandler("step",a)},remove_step:function(a){this.get_events().removeHandler("step",a)},get_target:function(){var a=this;if(!a._target&&a._parentAnimation)return a._parentAnimation.get_target();return a._target},set_target:function(a){if(this._target!=a){this._target=a;this.raisePropertyChanged("target")}},set_animationTarget:function(c){var b=null,a=$get(c);if(a)b=a;else{var d=$find(c);if(d){a=d.get_element();if(a)b=a}}if(b)this.set_target(b);else throw Error.argument("id",String.format(AjaxControlToolkit.Resources.Animation_TargetNotFound,c))},get_duration:function(){return this._duration},set_duration:function(b){var a=this;b=a._getFloat(b);if(a._duration!=b){a._duration=b;a.raisePropertyChanged("duration")}},get_fps:function(){return this._fps},set_fps:function(b){var a=this;b=a._getInteger(b);if(a.fps!=b){a._fps=b;a.raisePropertyChanged("fps")}},get_isActive:function(){return this._timer!==null},get_isPlaying:function(){return this._timer!==null&&this._timer.get_enabled()},get_percentComplete:function(){return this._percentComplete},_getBoolean:function(a){if(String.isInstanceOfType(a))return Boolean.parse(a);return a},_getInteger:function(a){if(String.isInstanceOfType(a))return parseInt(a);return a},_getFloat:function(a){if(String.isInstanceOfType(a))return parseFloat(a);return a},_getEnum:function(a,b){if(String.isInstanceOfType(a)&&b&&b.parse)return b.parse(a);return a}};$AA.Animation.registerClass("AjaxControlToolkit.Animation.Animation",Sys.Component);$AA.registerAnimation("animation",$AA.Animation);$AA.ParentAnimation=function(d,c,e,a){$AA.ParentAnimation.initializeBase(this,[d,c,e]);this._animations=[];if(a&&a.length)for(var b=0;b<a.length;b++)this.add(a[b])};$AA.ParentAnimation.prototype={initialize:function(){var a=this;$AA.ParentAnimation.callBaseMethod(a,"initialize");if(a._animations)for(var c=0;c<a._animations.length;c++){var b=a._animations[c];if(b&&!b.get_isInitialized)b.initialize()}},dispose:function(){this.clear();this._animations=null;$AA.ParentAnimation.callBaseMethod(this,"dispose")},get_animations:function(){return this._animations},add:function(b){var a=this;if(a._animations){if(b)b._parentAnimation=a;Array.add(a._animations,b);a.raisePropertyChanged("animations")}},remove:function(a){if(this._animations){if(a)a.dispose();Array.remove(this._animations,a);this.raisePropertyChanged("animations")}},removeAt:function(c){var a=this;if(a._animations){var b=a._animations[c];if(b)b.dispose();Array.removeAt(a._animations,c);a.raisePropertyChanged("animations")}},clear:function(){var a=this;if(a._animations){for(var b=a._animations.length-1;b>=0;b--){a._animations[b].dispose();a._animations[b]=null}Array.clear(a._animations);a._animations=[];a.raisePropertyChanged("animations")}}};$AA.ParentAnimation.registerClass("AjaxControlToolkit.Animation.ParentAnimation",$AA.Animation);$AA.registerAnimation("parent",$AA.ParentAnimation);$AA.ParallelAnimation=function(c,b,d,a){$AA.ParallelAnimation.initializeBase(this,[c,b,d,a])};$AA.ParallelAnimation.prototype={add:function(a){$AA.ParallelAnimation.callBaseMethod(this,"add",[a]);a.setOwner(this)},onStart:function(){$AA.ParallelAnimation.callBaseMethod(this,"onStart");var b=this.get_animations();for(var a=0;a<b.length;a++)b[a].onStart()},onStep:function(c){var b=this.get_animations();for(var a=0;a<b.length;a++)b[a].onStep(c)},onEnd:function(){var b=this.get_animations();for(var a=0;a<b.length;a++)b[a].onEnd();$AA.ParallelAnimation.callBaseMethod(this,"onEnd")}};$AA.ParallelAnimation.registerClass("AjaxControlToolkit.Animation.ParallelAnimation",$AA.ParentAnimation);$AA.registerAnimation("parallel",$AA.ParallelAnimation);$AA.SequenceAnimation=function(e,d,f,c,b){var a=this;$AA.SequenceAnimation.initializeBase(a,[e,d,f,c]);a._handler=null;a._paused=false;a._playing=false;a._index=0;a._remainingIterations=0;a._iterations=b!==undefined?b:1};$AA.SequenceAnimation.prototype={dispose:function(){this._handler=null;$AA.SequenceAnimation.callBaseMethod(this,"dispose")},stop:function(){var a=this;if(a._playing){var b=a.get_animations();if(a._index<b.length){b[a._index].remove_ended(a._handler);for(var c=a._index;c<b.length;c++)b[c].stop()}a._playing=false;a._paused=false;a.raisePropertyChanged("isPlaying");a.onEnd()}},pause:function(){var a=this;if(a.get_isPlaying()){var b=a.get_animations()[a._index];if(b!=null)b.pause();a._paused=true;a.raisePropertyChanged("isPlaying")}},play:function(){var c="isPlaying",a=this,d=a.get_animations();if(!a._playing){a._playing=true;if(a._paused){a._paused=false;var e=d[a._index];if(e!=null){e.play();a.raisePropertyChanged(c)}}else{a.onStart();a._index=0;var b=d[a._index];if(b){b.add_ended(a._handler);b.play();a.raisePropertyChanged(c)}else a.stop()}}},onStart:function(){var a=this;$AA.SequenceAnimation.callBaseMethod(a,"onStart");a._remainingIterations=a._iterations-1;if(!a._handler)a._handler=Function.createDelegate(a,a._onEndAnimation)},_onEndAnimation:function(){var a=this,b=a.get_animations(),c=b[a._index++];if(c)c.remove_ended(a._handler);if(a._index<b.length){var e=b[a._index];e.add_ended(a._handler);e.play()}else if(a._remainingIterations>=1||a._iterations<=0){a._remainingIterations--;a._index=0;var d=b[0];d.add_ended(a._handler);d.play()}else a.stop()},onStep:function(){throw Error.invalidOperation(AjaxControlToolkit.Resources.Animation_CannotNestSequence)},onEnd:function(){this._remainingIterations=0;$AA.SequenceAnimation.callBaseMethod(this,"onEnd")},get_isActive:function(){return true},get_isPlaying:function(){return this._playing&&!this._paused},get_iterations:function(){return this._iterations},set_iterations:function(b){var a=this;b=a._getInteger(b);if(a._iterations!=b){a._iterations=b;a.raisePropertyChanged("iterations")}},get_isInfinite:function(){return this._iterations<=0}};$AA.SequenceAnimation.registerClass("AjaxControlToolkit.Animation.SequenceAnimation",$AA.ParentAnimation);$AA.registerAnimation("sequence",$AA.SequenceAnimation);$AA.SelectionAnimation=function(c,b,d,a){$AA.SelectionAnimation.initializeBase(this,[c,b,d,a]);this._selectedIndex=-1;this._selected=null};$AA.SelectionAnimation.prototype={getSelectedIndex:function(){throw Error.notImplemented()},onStart:function(){var a=this;$AA.SelectionAnimation.callBaseMethod(a,"onStart");var b=a.get_animations();a._selectedIndex=a.getSelectedIndex();if(a._selectedIndex>=0&&a._selectedIndex<b.length){a._selected=b[a._selectedIndex];if(a._selected){a._selected.setOwner(a);a._selected.onStart()}}},onStep:function(a){if(this._selected)this._selected.onStep(a)},onEnd:function(){var a=this;if(a._selected){a._selected.onEnd();a._selected.setOwner(null)}a._selected=null;a._selectedIndex=null;$AA.SelectionAnimation.callBaseMethod(a,"onEnd")}};$AA.SelectionAnimation.registerClass("AjaxControlToolkit.Animation.SelectionAnimation",$AA.ParentAnimation);$AA.registerAnimation("selection",$AA.SelectionAnimation);$AA.ConditionAnimation=function(d,c,e,b,a){$AA.ConditionAnimation.initializeBase(this,[d,c,e,b]);this._conditionScript=a};$AA.ConditionAnimation.prototype={getSelectedIndex:function(){var selected=-1;if(this._conditionScript&&this._conditionScript.length>0)try{selected=eval(this._conditionScript)?0:1}catch(ex){}return selected},get_conditionScript:function(){return this._conditionScript},set_conditionScript:function(a){if(this._conditionScript!=a){this._conditionScript=a;this.raisePropertyChanged("conditionScript")}}};$AA.ConditionAnimation.registerClass("AjaxControlToolkit.Animation.ConditionAnimation",$AA.SelectionAnimation);$AA.registerAnimation("condition",$AA.ConditionAnimation);$AA.CaseAnimation=function(d,c,e,b,a){$AA.CaseAnimation.initializeBase(this,[d,c,e,b]);this._selectScript=a};$AA.CaseAnimation.prototype={getSelectedIndex:function(){var selected=-1;if(this._selectScript&&this._selectScript.length>0)try{var result=eval(this._selectScript);if(result!==undefined)selected=result}catch(ex){}return selected},get_selectScript:function(){return this._selectScript},set_selectScript:function(a){if(this._selectScript!=a){this._selectScript=a;this.raisePropertyChanged("selectScript")}}};$AA.CaseAnimation.registerClass("AjaxControlToolkit.Animation.CaseAnimation",$AA.SelectionAnimation);$AA.registerAnimation("case",$AA.CaseAnimation);$AA.FadeEffect=function(){throw Error.invalidOperation()};$AA.FadeEffect.prototype={FadeIn:0,FadeOut:1};$AA.FadeEffect.registerEnum("AjaxControlToolkit.Animation.FadeEffect",false);$AA.FadeAnimation=function(g,f,h,e,d,c,b){var a=this;$AA.FadeAnimation.initializeBase(a,[g,f,h]);a._effect=e!==undefined?e:$AA.FadeEffect.FadeIn;a._max=c!==undefined?c:1;a._min=d!==undefined?d:0;a._start=a._min;a._end=a._max;a._layoutCreated=false;a._forceLayoutInIE=b===undefined||b===null?true:b;a._currentTarget=null;a._resetOpacities()};$AA.FadeAnimation.prototype={_resetOpacities:function(){var a=this;if(a._effect==$AA.FadeEffect.FadeIn){a._start=a._min;a._end=a._max}else{a._start=a._max;a._end=a._min}},_createLayout:function(){var a=this,b=a._currentTarget;if(b){a._originalWidth=$common.getCurrentStyle(b,"width");var c=$common.getCurrentStyle(b,"height");a._originalBackColor=$common.getCurrentStyle(b,"backgroundColor");if((!a._originalWidth||a._originalWidth==""||a._originalWidth=="auto")&&(!c||c==""||c=="auto"))b.style.width=b.offsetWidth+"px";if(!a._originalBackColor||a._originalBackColor==""||a._originalBackColor=="transparent"||a._originalBackColor=="rgba(0, 0, 0, 0)")b.style.backgroundColor=$common.getInheritedBackgroundColor(b);a._layoutCreated=true}},onStart:function(){var a=this;$AA.FadeAnimation.callBaseMethod(a,"onStart");a._currentTarget=a.get_target();a.setValue(a._start);if(a._forceLayoutInIE&&!a._layoutCreated&&Sys.Browser.agent==Sys.Browser.InternetExplorer)a._createLayout()},getAnimatedValue:function(a){return this.interpolate(this._start,this._end,a)},setValue:function(a){if(this._currentTarget)$common.setElementOpacity(this._currentTarget,a)},get_effect:function(){return this._effect},set_effect:function(b){var a=this;b=a._getEnum(b,$AA.FadeEffect);if(a._effect!=b){a._effect=b;a._resetOpacities();a.raisePropertyChanged("effect")}},get_minimumOpacity:function(){return this._min},set_minimumOpacity:function(b){var a=this;b=a._getFloat(b);if(a._min!=b){a._min=b;a._resetOpacities();a.raisePropertyChanged("minimumOpacity")}},get_maximumOpacity:function(){return this._max},set_maximumOpacity:function(b){var a=this;b=a._getFloat(b);if(a._max!=b){a._max=b;a._resetOpacities();a.raisePropertyChanged("maximumOpacity")}},get_forceLayoutInIE:function(){return this._forceLayoutInIE},set_forceLayoutInIE:function(b){var a=this;b=a._getBoolean(b);if(a._forceLayoutInIE!=b){a._forceLayoutInIE=b;a.raisePropertyChanged("forceLayoutInIE")}},set_startValue:function(a){a=this._getFloat(a);this._start=a}};$AA.FadeAnimation.registerClass("AjaxControlToolkit.Animation.FadeAnimation",$AA.Animation);$AA.registerAnimation("fade",$AA.FadeAnimation);$AA.FadeInAnimation=function(e,d,f,c,b,a){$AA.FadeInAnimation.initializeBase(this,[e,d,f,$AA.FadeEffect.FadeIn,c,b,a])};$AA.FadeInAnimation.prototype={onStart:function(){var a=this;$AA.FadeInAnimation.callBaseMethod(a,"onStart");if(a._currentTarget)a.set_startValue($common.getElementOpacity(a._currentTarget))}};$AA.FadeInAnimation.registerClass("AjaxControlToolkit.Animation.FadeInAnimation",$AA.FadeAnimation);$AA.registerAnimation("fadeIn",$AA.FadeInAnimation);$AA.FadeOutAnimation=function(e,d,f,c,b,a){$AA.FadeOutAnimation.initializeBase(this,[e,d,f,$AA.FadeEffect.FadeOut,c,b,a])};$AA.FadeOutAnimation.prototype={onStart:function(){var a=this;$AA.FadeOutAnimation.callBaseMethod(a,"onStart");if(a._currentTarget)a.set_startValue($common.getElementOpacity(a._currentTarget))}};$AA.FadeOutAnimation.registerClass("AjaxControlToolkit.Animation.FadeOutAnimation",$AA.FadeAnimation);$AA.registerAnimation("fadeOut",$AA.FadeOutAnimation);$AA.PulseAnimation=function(c,b,d,h,g,f,e){var a=this;$AA.PulseAnimation.initializeBase(a,[c,b,d,null,h!==undefined?h:3]);a._out=new $AA.FadeOutAnimation(c,b,d,g,f,e);a.add(a._out);a._in=new $AA.FadeInAnimation(c,b,d,g,f,e);a.add(a._in)};$AA.PulseAnimation.prototype={get_minimumOpacity:function(){return this._out.get_minimumOpacity()},set_minimumOpacity:function(b){var a=this;b=a._getFloat(b);a._out.set_minimumOpacity(b);a._in.set_minimumOpacity(b);a.raisePropertyChanged("minimumOpacity")},get_maximumOpacity:function(){return this._out.get_maximumOpacity()},set_maximumOpacity:function(b){var a=this;b=a._getFloat(b);a._out.set_maximumOpacity(b);a._in.set_maximumOpacity(b);a.raisePropertyChanged("maximumOpacity")},get_forceLayoutInIE:function(){return this._out.get_forceLayoutInIE()},set_forceLayoutInIE:function(b){var a=this;b=a._getBoolean(b);a._out.set_forceLayoutInIE(b);a._in.set_forceLayoutInIE(b);a.raisePropertyChanged("forceLayoutInIE")},set_duration:function(a){var b=this;a=b._getFloat(a);$AA.PulseAnimation.callBaseMethod(b,"set_duration",[a]);b._in.set_duration(a);b._out.set_duration(a)},set_fps:function(a){var b=this;a=b._getInteger(a);$AA.PulseAnimation.callBaseMethod(b,"set_fps",[a]);b._in.set_fps(a);b._out.set_fps(a)}};$AA.PulseAnimation.registerClass("AjaxControlToolkit.Animation.PulseAnimation",$AA.SequenceAnimation);$AA.registerAnimation("pulse",$AA.PulseAnimation);$AA.PropertyAnimation=function(e,c,f,d,b){var a=this;$AA.PropertyAnimation.initializeBase(a,[e,c,f]);a._property=d;a._propertyKey=b;a._currentTarget=null};$AA.PropertyAnimation.prototype={onStart:function(){$AA.PropertyAnimation.callBaseMethod(this,"onStart");this._currentTarget=this.get_target()},setValue:function(c){var a=this,b=a._currentTarget;if(b&&a._property&&a._property.length>0)if(a._propertyKey&&a._propertyKey.length>0&&b[a._property])b[a._property][a._propertyKey]=c;else b[a._property]=c},getValue:function(){var a=this,c=a.get_target();if(c&&a._property&&a._property.length>0){var b=c[a._property];if(b){if(a._propertyKey&&a._propertyKey.length>0)return b[a._propertyKey];return b}}return null},get_property:function(){return this._property},set_property:function(a){if(this._property!=a){this._property=a;this.raisePropertyChanged("property")}},get_propertyKey:function(){return this._propertyKey},set_propertyKey:function(a){if(this._propertyKey!=a){this._propertyKey=a;this.raisePropertyChanged("propertyKey")}}};$AA.PropertyAnimation.registerClass("AjaxControlToolkit.Animation.PropertyAnimation",$AA.Animation);$AA.registerAnimation("property",$AA.PropertyAnimation);$AA.DiscreteAnimation=function(e,c,f,d,b,a){$AA.DiscreteAnimation.initializeBase(this,[e,c,f,d,b]);this._values=a&&a.length?a:[]};$AA.DiscreteAnimation.prototype={getAnimatedValue:function(a){var b=Math.floor(this.interpolate(0,this._values.length-1,a));return this._values[b]},get_values:function(){return this._values},set_values:function(a){if(this._values!=a){this._values=a;this.raisePropertyChanged("values")}}};$AA.DiscreteAnimation.registerClass("AjaxControlToolkit.Animation.DiscreteAnimation",$AA.PropertyAnimation);$AA.registerAnimation("discrete",$AA.DiscreteAnimation);$AA.InterpolatedAnimation=function(f,d,g,a,b,c,e){$AA.InterpolatedAnimation.initializeBase(this,[f,d,g,a!==undefined?a:"style",b]);this._startValue=c;this._endValue=e};$AA.InterpolatedAnimation.prototype={get_startValue:function(){return this._startValue},set_startValue:function(b){var a=this;b=a._getFloat(b);if(a._startValue!=b){a._startValue=b;a.raisePropertyChanged("startValue")}},get_endValue:function(){return this._endValue},set_endValue:function(b){var a=this;b=a._getFloat(b);if(a._endValue!=b){a._endValue=b;a.raisePropertyChanged("endValue")}}};$AA.InterpolatedAnimation.registerClass("AjaxControlToolkit.Animation.InterpolatedAnimation",$AA.PropertyAnimation);$AA.registerAnimation("interpolated",$AA.InterpolatedAnimation);$AA.ColorAnimation=function(g,d,h,f,b,c,e){var a=this;$AA.ColorAnimation.initializeBase(a,[g,d,h,f,b,c,e]);a._start=null;a._end=null;a._interpolateRed=false;a._interpolateGreen=false;a._interpolateBlue=false};$AA.ColorAnimation.prototype={onStart:function(){var a=this;$AA.ColorAnimation.callBaseMethod(a,"onStart");a._start=$AA.ColorAnimation.getRGB(a.get_startValue());a._end=$AA.ColorAnimation.getRGB(a.get_endValue());a._interpolateRed=a._start.Red!=a._end.Red;a._interpolateGreen=a._start.Green!=a._end.Green;a._interpolateBlue=a._start.Blue!=a._end.Blue},getAnimatedValue:function(b){var a=this,e=a._start.Red,d=a._start.Green,c=a._start.Blue;if(a._interpolateRed)e=Math.round(a.interpolate(e,a._end.Red,b));if(a._interpolateGreen)d=Math.round(a.interpolate(d,a._end.Green,b));if(a._interpolateBlue)c=Math.round(a.interpolate(c,a._end.Blue,b));return $AA.ColorAnimation.toColor(e,d,c)},set_startValue:function(a){if(this._startValue!=a){this._startValue=a;this.raisePropertyChanged("startValue")}},set_endValue:function(a){if(this._endValue!=a){this._endValue=a;this.raisePropertyChanged("endValue")}}};$AA.ColorAnimation.getRGB=function(a){if(!a||a.length!=7)throw String.format(AjaxControlToolkit.Resources.Animation_InvalidColor,a);return {Red:parseInt(a.substr(1,2),16),Green:parseInt(a.substr(3,2),16),Blue:parseInt(a.substr(5,2),16)}};$AA.ColorAnimation.toColor=function(f,d,e){var c=f.toString(16),b=d.toString(16),a=e.toString(16);if(c.length==1)c="0"+c;if(b.length==1)b="0"+b;if(a.length==1)a="0"+a;return "#"+c+b+a};$AA.ColorAnimation.registerClass("AjaxControlToolkit.Animation.ColorAnimation",$AA.InterpolatedAnimation);$AA.registerAnimation("color",$AA.ColorAnimation);$AA.LengthAnimation=function(g,d,h,f,b,c,e,a){$AA.LengthAnimation.initializeBase(this,[g,d,h,f,b,c,e]);this._unit=a!=null?a:"px"};$AA.LengthAnimation.prototype={getAnimatedValue:function(b){var a=this,c=a.interpolate(a.get_startValue(),a.get_endValue(),b);return Math.round(c)+a._unit},get_unit:function(){return this._unit},set_unit:function(a){if(this._unit!=a){this._unit=a;this.raisePropertyChanged("unit")}}};$AA.LengthAnimation.registerClass("AjaxControlToolkit.Animation.LengthAnimation",$AA.InterpolatedAnimation);$AA.registerAnimation("length",$AA.LengthAnimation);$AA.MoveAnimation=function(d,c,e,f,h,g,i){var b=null,a=this;$AA.MoveAnimation.initializeBase(a,[d,c,e,b]);a._horizontal=f?f:0;a._vertical=h?h:0;a._relative=g===undefined?true:g;a._horizontalAnimation=new $AA.LengthAnimation(d,c,e,"style","left",b,b,i);a._verticalAnimation=new $AA.LengthAnimation(d,c,e,"style","top",b,b,i);a.add(a._verticalAnimation);a.add(a._horizontalAnimation)};$AA.MoveAnimation.prototype={onStart:function(){var a=this;$AA.MoveAnimation.callBaseMethod(a,"onStart");var b=a.get_target();a._horizontalAnimation.set_startValue(b.offsetLeft);a._horizontalAnimation.set_endValue(a._relative?b.offsetLeft+a._horizontal:a._horizontal);a._verticalAnimation.set_startValue(b.offsetTop);a._verticalAnimation.set_endValue(a._relative?b.offsetTop+a._vertical:a._vertical)},get_horizontal:function(){return this._horizontal},set_horizontal:function(b){var a=this;b=a._getFloat(b);if(a._horizontal!=b){a._horizontal=b;a.raisePropertyChanged("horizontal")}},get_vertical:function(){return this._vertical},set_vertical:function(b){var a=this;b=a._getFloat(b);if(a._vertical!=b){a._vertical=b;a.raisePropertyChanged("vertical")}},get_relative:function(){return this._relative},set_relative:function(b){var a=this;b=a._getBoolean(b);if(a._relative!=b){a._relative=b;a.raisePropertyChanged("relative")}},get_unit:function(){this._horizontalAnimation.get_unit()},set_unit:function(b){var a=this,c=a._horizontalAnimation.get_unit();if(c!=b){a._horizontalAnimation.set_unit(b);a._verticalAnimation.set_unit(b);a.raisePropertyChanged("unit")}}};$AA.MoveAnimation.registerClass("AjaxControlToolkit.Animation.MoveAnimation",$AA.ParallelAnimation);$AA.registerAnimation("move",$AA.MoveAnimation);$AA.ResizeAnimation=function(d,c,e,h,g,f){var b=null,a=this;$AA.ResizeAnimation.initializeBase(a,[d,c,e,b]);a._width=h;a._height=g;a._horizontalAnimation=new $AA.LengthAnimation(d,c,e,"style","width",b,b,f);a._verticalAnimation=new $AA.LengthAnimation(d,c,e,"style","height",b,b,f);a.add(a._horizontalAnimation);a.add(a._verticalAnimation)};$AA.ResizeAnimation.prototype={onStart:function(){var a=this;$AA.ResizeAnimation.callBaseMethod(a,"onStart");var b=a.get_target();a._horizontalAnimation.set_startValue(b.offsetWidth);a._verticalAnimation.set_startValue(b.offsetHeight);a._horizontalAnimation.set_endValue(a._width!==null&&a._width!==undefined?a._width:b.offsetWidth);a._verticalAnimation.set_endValue(a._height!==null&&a._height!==undefined?a._height:b.offsetHeight)},get_width:function(){return this._width},set_width:function(b){var a=this;b=a._getFloat(b);if(a._width!=b){a._width=b;a.raisePropertyChanged("width")}},get_height:function(){return this._height},set_height:function(b){var a=this;b=a._getFloat(b);if(a._height!=b){a._height=b;a.raisePropertyChanged("height")}},get_unit:function(){this._horizontalAnimation.get_unit()},set_unit:function(b){var a=this,c=a._horizontalAnimation.get_unit();if(c!=b){a._horizontalAnimation.set_unit(b);a._verticalAnimation.set_unit(b);a.raisePropertyChanged("unit")}}};$AA.ResizeAnimation.registerClass("AjaxControlToolkit.Animation.ResizeAnimation",$AA.ParallelAnimation);$AA.registerAnimation("resize",$AA.ResizeAnimation);$AA.ScaleAnimation=function(i,g,j,c,e,h,f,d){var b=null,a=this;$AA.ScaleAnimation.initializeBase(a,[i,g,j]);a._scaleFactor=c!==undefined?c:1;a._unit=e!==undefined?e:"px";a._center=h;a._scaleFont=f;a._fontUnit=d!==undefined?d:"pt";a._element=b;a._initialHeight=b;a._initialWidth=b;a._initialTop=b;a._initialLeft=b;a._initialFontSize=b};$AA.ScaleAnimation.prototype={getAnimatedValue:function(a){return this.interpolate(1,this._scaleFactor,a)},onStart:function(){var a=this;$AA.ScaleAnimation.callBaseMethod(a,"onStart");a._element=a.get_target();if(a._element){a._initialHeight=a._element.offsetHeight;a._initialWidth=a._element.offsetWidth;if(a._center){a._initialTop=a._element.offsetTop;a._initialLeft=a._element.offsetLeft}if(a._scaleFont)a._initialFontSize=parseFloat($common.getCurrentStyle(a._element,"fontSize"))}},setValue:function(b){var a=this;if(a._element){var e=Math.round(a._initialWidth*b),d=Math.round(a._initialHeight*b);a._element.style.width=e+a._unit;a._element.style.height=d+a._unit;if(a._center){a._element.style.top=a._initialTop+Math.round((a._initialHeight-d)/2)+a._unit;a._element.style.left=a._initialLeft+Math.round((a._initialWidth-e)/2)+a._unit}if(a._scaleFont){var c=a._initialFontSize*b;if(a._fontUnit=="px"||a._fontUnit=="pt")c=Math.round(c);a._element.style.fontSize=c+a._fontUnit}}},onEnd:function(){var b=null,a=this;a._element=b;a._initialHeight=b;a._initialWidth=b;a._initialTop=b;a._initialLeft=b;a._initialFontSize=b;$AA.ScaleAnimation.callBaseMethod(a,"onEnd")},get_scaleFactor:function(){return this._scaleFactor},set_scaleFactor:function(b){var a=this;b=a._getFloat(b);if(a._scaleFactor!=b){a._scaleFactor=b;a.raisePropertyChanged("scaleFactor")}},get_unit:function(){return this._unit},set_unit:function(a){if(this._unit!=a){this._unit=a;this.raisePropertyChanged("unit")}},get_center:function(){return this._center},set_center:function(b){var a=this;b=a._getBoolean(b);if(a._center!=b){a._center=b;a.raisePropertyChanged("center")}},get_scaleFont:function(){return this._scaleFont},set_scaleFont:function(b){var a=this;b=a._getBoolean(b);if(a._scaleFont!=b){a._scaleFont=b;a.raisePropertyChanged("scaleFont")}},get_fontUnit:function(){return this._fontUnit},set_fontUnit:function(a){if(this._fontUnit!=a){this._fontUnit=a;this.raisePropertyChanged("fontUnit")}}};$AA.ScaleAnimation.registerClass("AjaxControlToolkit.Animation.ScaleAnimation",$AA.Animation);$AA.registerAnimation("scale",$AA.ScaleAnimation);$AA.Action=function(b,a,c){$AA.Action.initializeBase(this,[b,a,c]);if(a===undefined)this.set_duration(0)};$AA.Action.prototype={onEnd:function(){this.doAction();$AA.Action.callBaseMethod(this,"onEnd")},doAction:function(){throw Error.notImplemented()},getAnimatedValue:function(){},setValue:function(){}};$AA.Action.registerClass("AjaxControlToolkit.Animation.Action",$AA.Animation);$AA.registerAnimation("action",$AA.Action);$AA.EnableAction=function(c,b,d,a){$AA.EnableAction.initializeBase(this,[c,b,d]);this._enabled=a!==undefined?a:true};$AA.EnableAction.prototype={doAction:function(){var a=this.get_target();if(a)a.disabled=!this._enabled},get_enabled:function(){return this._enabled},set_enabled:function(b){var a=this;b=a._getBoolean(b);if(a._enabled!=b){a._enabled=b;a.raisePropertyChanged("enabled")}}};$AA.EnableAction.registerClass("AjaxControlToolkit.Animation.EnableAction",$AA.Action);$AA.registerAnimation("enableAction",$AA.EnableAction);$AA.HideAction=function(c,a,d,b){$AA.HideAction.initializeBase(this,[c,a,d]);this._visible=b};$AA.HideAction.prototype={doAction:function(){var a=this.get_target();if(a)$common.setVisible(a,this._visible)},get_visible:function(){return this._visible},set_visible:function(a){if(this._visible!=a){this._visible=a;this.raisePropertyChanged("visible")}}};$AA.HideAction.registerClass("AjaxControlToolkit.Animation.HideAction",$AA.Action);$AA.registerAnimation("hideAction",$AA.HideAction);$AA.StyleAction=function(c,b,e,a,d){$AA.StyleAction.initializeBase(this,[c,b,e]);this._attribute=a;this._value=d};$AA.StyleAction.prototype={doAction:function(){var a=this.get_target();if(a)a.style[this._attribute]=this._value},get_attribute:function(){return this._attribute},set_attribute:function(a){if(this._attribute!=a){this._attribute=a;this.raisePropertyChanged("attribute")}},get_value:function(){return this._value},set_value:function(a){if(this._value!=a){this._value=a;this.raisePropertyChanged("value")}}};$AA.StyleAction.registerClass("AjaxControlToolkit.Animation.StyleAction",$AA.Action);$AA.registerAnimation("styleAction",$AA.StyleAction);$AA.OpacityAction=function(c,a,d,b){$AA.OpacityAction.initializeBase(this,[c,a,d]);this._opacity=b};$AA.OpacityAction.prototype={doAction:function(){var a=this.get_target();if(a)$common.setElementOpacity(a,this._opacity)},get_opacity:function(){return this._opacity},set_opacity:function(b){var a=this;b=a._getFloat(b);if(a._opacity!=b){a._opacity=b;a.raisePropertyChanged("opacity")}}};$AA.OpacityAction.registerClass("AjaxControlToolkit.Animation.OpacityAction",$AA.Action);$AA.registerAnimation("opacityAction",$AA.OpacityAction);$AA.ScriptAction=function(c,a,d,b){$AA.ScriptAction.initializeBase(this,[c,a,d]);this._script=b};$AA.ScriptAction.prototype={doAction:function(){try{eval(this._script)}catch(ex){}},get_script:function(){return this._script},set_script:function(a){if(this._script!=a){this._script=a;this.raisePropertyChanged("script")}}};$AA.ScriptAction.registerClass("AjaxControlToolkit.Animation.ScriptAction",$AA.Action);$AA.registerAnimation("scriptAction",$AA.ScriptAction);
//END AjaxControlToolkit.Animation.Animations.js
//START AjaxControlToolkit.ExtenderBase.BaseScripts.js
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.BehaviorBase=function(c){var b=null,a=this;AjaxControlToolkit.BehaviorBase.initializeBase(a,[c]);a._clientStateFieldID=b;a._pageRequestManager=b;a._partialUpdateBeginRequestHandler=b;a._partialUpdateEndRequestHandler=b};AjaxControlToolkit.BehaviorBase.prototype={initialize:function(){AjaxControlToolkit.BehaviorBase.callBaseMethod(this,"initialize")},dispose:function(){var a=this;AjaxControlToolkit.BehaviorBase.callBaseMethod(a,"dispose");if(a._pageRequestManager){if(a._partialUpdateBeginRequestHandler){a._pageRequestManager.remove_beginRequest(a._partialUpdateBeginRequestHandler);a._partialUpdateBeginRequestHandler=null}if(a._partialUpdateEndRequestHandler){a._pageRequestManager.remove_endRequest(a._partialUpdateEndRequestHandler);a._partialUpdateEndRequestHandler=null}a._pageRequestManager=null}},get_ClientStateFieldID:function(){return this._clientStateFieldID},set_ClientStateFieldID:function(a){if(this._clientStateFieldID!=a){this._clientStateFieldID=a;this.raisePropertyChanged("ClientStateFieldID")}},get_ClientState:function(){if(this._clientStateFieldID){var a=document.getElementById(this._clientStateFieldID);if(a)return a.value}return null},set_ClientState:function(b){if(this._clientStateFieldID){var a=document.getElementById(this._clientStateFieldID);if(a)a.value=b}},registerPartialUpdateEvents:function(){var a=this;if(Sys&&Sys.WebForms&&Sys.WebForms.PageRequestManager){a._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();if(a._pageRequestManager){a._partialUpdateBeginRequestHandler=Function.createDelegate(a,a._partialUpdateBeginRequest);a._pageRequestManager.add_beginRequest(a._partialUpdateBeginRequestHandler);a._partialUpdateEndRequestHandler=Function.createDelegate(a,a._partialUpdateEndRequest);a._pageRequestManager.add_endRequest(a._partialUpdateEndRequestHandler)}}},_partialUpdateBeginRequest:function(){},_partialUpdateEndRequest:function(){}};AjaxControlToolkit.BehaviorBase.registerClass("AjaxControlToolkit.BehaviorBase",Sys.UI.Behavior);AjaxControlToolkit.DynamicPopulateBehaviorBase=function(c){var b=null,a=this;AjaxControlToolkit.DynamicPopulateBehaviorBase.initializeBase(a,[c]);a._DynamicControlID=b;a._DynamicContextKey=b;a._DynamicServicePath=b;a._DynamicServiceMethod=b;a._cacheDynamicResults=false;a._dynamicPopulateBehavior=b;a._populatingHandler=b;a._populatedHandler=b};AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype={initialize:function(){var a=this;AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(a,"initialize");a._populatingHandler=Function.createDelegate(a,a._onPopulating);a._populatedHandler=Function.createDelegate(a,a._onPopulated)},dispose:function(){var a=this;if(a._populatedHandler){if(a._dynamicPopulateBehavior)a._dynamicPopulateBehavior.remove_populated(a._populatedHandler);a._populatedHandler=null}if(a._populatingHandler){if(a._dynamicPopulateBehavior)a._dynamicPopulateBehavior.remove_populating(a._populatingHandler);a._populatingHandler=null}if(a._dynamicPopulateBehavior){a._dynamicPopulateBehavior.dispose();a._dynamicPopulateBehavior=null}AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(a,"dispose")},populate:function(b){var a=this;if(a._dynamicPopulateBehavior&&a._dynamicPopulateBehavior.get_element()!=$get(a._DynamicControlID)){a._dynamicPopulateBehavior.dispose();a._dynamicPopulateBehavior=null}if(!a._dynamicPopulateBehavior&&a._DynamicControlID&&a._DynamicServiceMethod){a._dynamicPopulateBehavior=$create(AjaxControlToolkit.DynamicPopulateBehavior,{id:a.get_id()+"_DynamicPopulateBehavior",ContextKey:a._DynamicContextKey,ServicePath:a._DynamicServicePath,ServiceMethod:a._DynamicServiceMethod,cacheDynamicResults:a._cacheDynamicResults},null,null,$get(a._DynamicControlID));a._dynamicPopulateBehavior.add_populating(a._populatingHandler);a._dynamicPopulateBehavior.add_populated(a._populatedHandler)}if(a._dynamicPopulateBehavior)a._dynamicPopulateBehavior.populate(b?b:a._DynamicContextKey)},_onPopulating:function(b,a){this.raisePopulating(a)},_onPopulated:function(b,a){this.raisePopulated(a)},get_dynamicControlID:function(){return this._DynamicControlID},get_DynamicControlID:this.get_dynamicControlID,set_dynamicControlID:function(b){var a=this;if(a._DynamicControlID!=b){a._DynamicControlID=b;a.raisePropertyChanged("dynamicControlID");a.raisePropertyChanged("DynamicControlID")}},set_DynamicControlID:this.set_dynamicControlID,get_dynamicContextKey:function(){return this._DynamicContextKey},get_DynamicContextKey:this.get_dynamicContextKey,set_dynamicContextKey:function(b){var a=this;if(a._DynamicContextKey!=b){a._DynamicContextKey=b;a.raisePropertyChanged("dynamicContextKey");a.raisePropertyChanged("DynamicContextKey")}},set_DynamicContextKey:this.set_dynamicContextKey,get_dynamicServicePath:function(){return this._DynamicServicePath},get_DynamicServicePath:this.get_dynamicServicePath,set_dynamicServicePath:function(b){var a=this;if(a._DynamicServicePath!=b){a._DynamicServicePath=b;a.raisePropertyChanged("dynamicServicePath");a.raisePropertyChanged("DynamicServicePath")}},set_DynamicServicePath:this.set_dynamicServicePath,get_dynamicServiceMethod:function(){return this._DynamicServiceMethod},get_DynamicServiceMethod:this.get_dynamicServiceMethod,set_dynamicServiceMethod:function(b){var a=this;if(a._DynamicServiceMethod!=b){a._DynamicServiceMethod=b;a.raisePropertyChanged("dynamicServiceMethod");a.raisePropertyChanged("DynamicServiceMethod")}},set_DynamicServiceMethod:this.set_dynamicServiceMethod,get_cacheDynamicResults:function(){return this._cacheDynamicResults},set_cacheDynamicResults:function(a){if(this._cacheDynamicResults!=a){this._cacheDynamicResults=a;this.raisePropertyChanged("cacheDynamicResults")}},add_populated:function(a){this.get_events().addHandler("populated",a)},remove_populated:function(a){this.get_events().removeHandler("populated",a)},raisePopulated:function(b){var a=this.get_events().getHandler("populated");if(a)a(this,b)},add_populating:function(a){this.get_events().addHandler("populating",a)},remove_populating:function(a){this.get_events().removeHandler("populating",a)},raisePopulating:function(b){var a=this.get_events().getHandler("populating");if(a)a(this,b)}};AjaxControlToolkit.DynamicPopulateBehaviorBase.registerClass("AjaxControlToolkit.DynamicPopulateBehaviorBase",AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.ControlBase=function(b){var a=this;AjaxControlToolkit.ControlBase.initializeBase(a,[b]);a._clientStateField=null;a._callbackTarget=null;a._onsubmit$delegate=Function.createDelegate(a,a._onsubmit);a._oncomplete$delegate=Function.createDelegate(a,a._oncomplete);a._onerror$delegate=Function.createDelegate(a,a._onerror)};AjaxControlToolkit.ControlBase.__doPostBack=function(c,b){if(!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack())for(var a=0;a<AjaxControlToolkit.ControlBase.onsubmitCollection.length;a++)AjaxControlToolkit.ControlBase.onsubmitCollection[a]();Function.createDelegate(window,AjaxControlToolkit.ControlBase.__doPostBackSaved)(c,b)};AjaxControlToolkit.ControlBase.prototype={initialize:function(){var b="undefined",a=this;AjaxControlToolkit.ControlBase.callBaseMethod(a,"initialize");if(a._clientStateField)a.loadClientState(a._clientStateField.value);if(typeof Sys.WebForms!==b&&typeof Sys.WebForms.PageRequestManager!==b){Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements,a._onsubmit$delegate);if(AjaxControlToolkit.ControlBase.__doPostBackSaved==null||typeof AjaxControlToolkit.ControlBase.__doPostBackSaved==b){AjaxControlToolkit.ControlBase.__doPostBackSaved=window.__doPostBack;window.__doPostBack=AjaxControlToolkit.ControlBase.__doPostBack;AjaxControlToolkit.ControlBase.onsubmitCollection=[]}Array.add(AjaxControlToolkit.ControlBase.onsubmitCollection,a._onsubmit$delegate)}else $addHandler(document.forms[0],"submit",a._onsubmit$delegate)},dispose:function(){var b="undefined",a=this;if(typeof Sys.WebForms!==b&&typeof Sys.WebForms.PageRequestManager!==b){Array.remove(AjaxControlToolkit.ControlBase.onsubmitCollection,a._onsubmit$delegate);Array.remove(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements,a._onsubmit$delegate)}else $removeHandler(document.forms[0],"submit",a._onsubmit$delegate);AjaxControlToolkit.ControlBase.callBaseMethod(a,"dispose")},findElement:function(a){return $get(this.get_id()+"_"+a.split(":").join("_"))},get_clientStateField:function(){return this._clientStateField},set_clientStateField:function(b){var a=this;if(a.get_isInitialized())throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_CannotSetClientStateField);if(a._clientStateField!=b){a._clientStateField=b;a.raisePropertyChanged("clientStateField")}},loadClientState:function(){},saveClientState:function(){return null},_invoke:function(g,d,h){var a=this;if(!a._callbackTarget)throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_ControlNotRegisteredForCallbacks);if(typeof WebForm_DoCallback==="undefined")throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_PageNotRegisteredForCallbacks);var e=[];for(var b=0;b<d.length;b++)e[b]=d[b];var c=a.saveClientState();if(c!=null&&!String.isInstanceOfType(c))throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_InvalidClientStateType);var f=Sys.Serialization.JavaScriptSerializer.serialize({name:g,args:e,state:a.saveClientState()});WebForm_DoCallback(a._callbackTarget,f,a._oncomplete$delegate,h,a._onerror$delegate,true)},_oncomplete:function(a,b){a=Sys.Serialization.JavaScriptSerializer.deserialize(a);if(a.error)throw Error.create(a.error);this.loadClientState(a.state);b(a.result)},_onerror:function(a){throw Error.create(a)},_onsubmit:function(){if(this._clientStateField)this._clientStateField.value=this.saveClientState();return true}};AjaxControlToolkit.ControlBase.registerClass("AjaxControlToolkit.ControlBase",Sys.UI.Control);
AjaxControlToolkit.Resources={
"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios must have 4 elements","HTMLEditor_toolbar_button_FontSize_defaultValue":"default","HTMLEditor_toolbar_button_DesignMode_title":"Design mode","Animation_ChildrenNotAllowed":"AjaxControlToolkit.Animation.createAnimation cannot add child animations to type \"{0}\" that does not derive from AjaxControlToolkit.Animation.ParentAnimation","PasswordStrength_RemainingSymbols":"{0} symbol characters","HTMLEditor_toolbar_button_FixedForeColor_title":"Foreground color","HTMLEditor_toolbar_popup_LinkProperties_field_URL":"URL","ExtenderBase_CannotSetClientStateField":"clientStateField can only be set before initialization","HTMLEditor_toolbar_button_Bold_title":"Bold","RTE_PreviewHTML":"Preview HTML","HTMLEditor_toolbar_popup_LinkProperties_button_OK":"OK","HTMLEditor_toolbar_button_JustifyRight_title":"Justify Right","RTE_JustifyCenter":"Justify Center","PasswordStrength_RemainingUpperCase":"{0} more upper case characters","HTMLEditor_toolbar_popup_LinkProperties_button_Cancel":"Cancel","Animation_TargetNotFound":"AjaxControlToolkit.Animation.Animation.set_animationTarget requires the ID of a Sys.UI.DomElement or Sys.UI.Control.  No element or control could be found corresponding to \"{0}\"","RTE_FontColor":"Font Color","RTE_LabelColor":"Label Color","Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is invalid for parseBorderWidth","HTMLEditor_toolbar_button_JustifyFull_title":"Justify","RTE_Heading":"Heading","Tabs_PropertySetBeforeInitialization":"{0} cannot be changed before initialization","HTMLEditor_toolbar_button_StrikeThrough_title":"Strike through","RTE_OrderedList":"Ordered List","HTMLEditor_toolbar_button_OnPastePlainText":"Plain text pasting is switched on. Just now: {0}","HTMLEditor_toolbar_button_RemoveLink_title":"Remove Link","HTMLEditor_toolbar_button_FontName_defaultValue":"default","HTMLEditor_toolbar_button_FontName_label":"Font","ReorderList_DropWatcherBehavior_NoChild":"Could not find child of list with id \"{0}\"","CascadingDropDown_MethodTimeout":"[Method timeout]","RTE_Columns":"Columns","RTE_InsertImage":"Insert Image","RTE_InsertTable":"Insert Table","RTE_Values":"Values","RTE_OK":"OK","ExtenderBase_PageNotRegisteredForCallbacks":"This Page has not been registered for callbacks","HTMLEditor_toolbar_button_InsertLink_title":"Insert/Edit URL link","Animation_NoDynamicPropertyFound":"AjaxControlToolkit.Animation.createAnimation found no property corresponding to \"{0}\" or \"{1}\"","Animation_InvalidBaseType":"AjaxControlToolkit.Animation.registerAnimation can only register types that inherit from AjaxControlToolkit.Animation.Animation","RTE_UnorderedList":"Unordered List","ResizableControlBehavior_InvalidHandler":"{0} handler not a function, function name, or function text","Animation_InvalidColor":"Color must be a 7-character hex representation (e.g. #246ACF), not \"{0}\"","RTE_CellColor":"Cell Color","PasswordStrength_RemainingMixedCase":"Mixed case characters","HTMLEditor_toolbar_button_HtmlMode_title":"HTML text","RTE_Italic":"Italic","CascadingDropDown_NoParentElement":"Failed to find parent element \"{0}\"","ValidatorCallout_DefaultErrorMessage":"This control is invalid","HTMLEditor_toolbar_button_DecreaseIndent_title":"Decrease Indent","RTE_Indent":"Indent","ReorderList_DropWatcherBehavior_CallbackError":"Reorder failed, see details below.\\r\\n\\r\\n{0}","PopupControl_NoDefaultProperty":"No default property supported for control \"{0}\" of type \"{1}\"","RTE_Normal":"Normal","PopupExtender_NoParentElement":"Couldn\u0027t find parent element \"{0}\"","RTE_ViewValues":"View Values","RTE_Legend":"Legend","RTE_Labels":"Labels","RTE_CellSpacing":"Cell Spacing","PasswordStrength_RemainingNumbers":"{0} more numbers","HTMLEditor_toolbar_popup_LinkProperties_field_Target":"Target","HTMLEditor_toolbar_button_PreviewMode_title":"Preview","RTE_Border":"Border","RTE_Create":"Create","RTE_BackgroundColor":"Background Color","RTE_Cancel":"Cancel","HTMLEditor_toolbar_button_PasteText_title":"Paste Plain Text","RTE_JustifyFull":"Justify Full","RTE_JustifyLeft":"Justify Left","RTE_Cut":"Cut","ResizableControlBehavior_CannotChangeProperty":"Changes to {0} not supported","RTE_ViewSource":"View Source","Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid for parsePadding","RTE_Paste":"Paste","ExtenderBase_ControlNotRegisteredForCallbacks":"This Control has not been registered for callbacks","Calendar_Today":"Today: {0}","MultiHandleSlider_CssHeightWidthRequired":"You must specify a CSS width and height for all handle styles as well as the rail.","Common_DateTime_InvalidFormat":"Invalid format","HTMLEditor_toolbar_button_Copy_title":"Copy","ListSearch_DefaultPrompt":"Type to search","CollapsiblePanel_NoControlID":"Failed to find element \"{0}\"","RTE_ViewEditor":"View Editor","HTMLEditor_toolbar_popup_LinkProperties_field_Target_Current":"Current window","RTE_BarColor":"Bar Color","HTMLEditor_toolbar_button_Underline_title":"Underline","PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very Weak;Weak;Poor;Almost OK;Barely Acceptable;Average;Good;Strong;Excellent;Unbreakable!","HTMLEditor_toolbar_button_SuperScript_title":"Super script","HTMLEditor_toolbar_button_Ltr_title":"Left to right direction","HTMLEditor_toolbar_button_RemoveAlignment_title":"Remove Alignment","HTMLEditor_toolbar_button_OrderedList_title":"Ordered List","HTMLEditor_toolbar_popup_LinkProperties_field_Target_New":"New window","HTMLEditor_toolbar_popup_LinkProperties_field_Target_Top":"Top window","HTMLEditor_toolbar_button_JustifyCenter_title":"Justify Center","RTE_Inserttexthere":"Insert text here","Animation_UknownAnimationName":"AjaxControlToolkit.Animation.createAnimation could not find an Animation corresponding to the name \"{0}\"","ExtenderBase_InvalidClientStateType":"saveClientState must return a value of type String","HTMLEditor_toolbar_button_JustifyLeft_title":"Justify Left","Rating_CallbackError":"An unhandled exception has occurred:\\r\\n{0}","HTMLEditor_toolbar_button_Undo_title":"Undo","HTMLEditor_toolbar_button_Redo_title":"Redo","Tabs_OwnerExpected":"owner must be set before initialize","DynamicPopulate_WebServiceTimeout":"Web service call timed out","PasswordStrength_RemainingLowerCase":"{0} more lower case characters","HTMLEditor_toolbar_button_BulletedList_title":"Bulleted List","HTMLEditor_toolbar_button_Paste_title":"Paste","Animation_MissingAnimationName":"AjaxControlToolkit.Animation.createAnimation requires an object with an AnimationName property","HTMLEditor_toolbar_button_PasteWord_title":"Paste from MS Word (with cleanup)","HTMLEditor_toolbar_button_Italic_title":"Italic","RTE_JustifyRight":"Justify Right","Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of the tabs collection","RTE_CellPadding":"Cell Padding","HTMLEditor_toolbar_button_ForeColorClear_title":"Clear foreground color","RTE_ClearFormatting":"Clear Formatting","AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVisibleControlBehavior must have an element","HTMLEditor_toolbar_button_SubScript_title":"Sub script","Slider_NoSizeProvided":"Please set valid values for the height and width attributes in the slider\u0027s CSS classes","DynamicPopulate_WebServiceError":"Web Service call failed: {0}","PasswordStrength_StrengthPrompt":"Strength: ","HTMLEditor_toolbar_button_Rtl_title":"Right to left direction","PasswordStrength_RemainingCharacters":"{0} more characters","HTMLEditor_toolbar_button_BackColorClear_title":"Clear background color","PasswordStrength_Satisfied":"Nothing more required","RTE_Hyperlink":"Hyperlink","Animation_NoPropertyFound":"AjaxControlToolkit.Animation.createAnimation found no property corresponding to \"{0}\"","PasswordStrength_InvalidStrengthDescriptionStyles":"Text Strength description style classes must match the number of text descriptions.","HTMLEditor_toolbar_button_Use_verb":"Use {0}","HTMLEditor_toolbar_popup_LinkProperties_field_Target_Parent":"Parent window","PasswordStrength_GetHelpRequirements":"Get help on password requirements","HTMLEditor_toolbar_button_FixedBackColor_title":"Background color","PasswordStrength_InvalidStrengthDescriptions":"Invalid number of text strength descriptions specified","RTE_Underline":"Underline","HTMLEditor_toolbar_button_IncreaseIndent_title":"Increase Indent","Tabs_PropertySetAfterInitialization":"{0} cannot be changed after initialization","RTE_Rows":"Rows","RTE_Redo":"Redo","RTE_Size":"Size","RTE_Undo":"Undo","RTE_Bold":"Bold","RTE_Copy":"Copy","RTE_Font":"Font","HTMLEditor_toolbar_button_FontSize_label":"Size","HTMLEditor_toolbar_button_Cut_title":"Cut","CascadingDropDown_MethodError":"[Method error {0}]","HTMLEditor_toolbar_button_InsertLink_message_EmptyURL":"URL can not be empty","RTE_BorderColor":"Border Color","HTMLEditor_toolbar_button_RemoveStyles_title":"Remove styles","RTE_Paragraph":"Paragraph","RTE_InsertHorizontalRule":"Insert Horizontal Rule","HTMLEditor_toolbar_button_Paragraph_title":"Make Paragraph","Common_UnitHasNoDigits":"No digits","RTE_Outdent":"Outdent","Common_DateTime_InvalidTimeSpan":"\"{0}\" is not a valid TimeSpan format","Animation_CannotNestSequence":"AjaxControlToolkit.Animation.SequenceAnimation cannot be nested inside AjaxControlToolkit.Animation.ParallelAnimation","HTMLEditor_toolbar_button_InsertHR_title":"Insert horizontal rule","HTMLEditor_toolbar_button_OnPasteFromMSWord":"Pasting from MS Word is switched on. Just now: {0}","Shared_BrowserSecurityPreventsPaste":"Your browser security settings don\u0027t permit the automatic execution of paste operations. Please use the keyboard shortcut Ctrl+V instead."};
//END AjaxControlToolkit.ExtenderBase.BaseScripts.js
//START AjaxControlToolkit.Accordion.AccordionBehavior.js
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.AutoSize=function(){throw Error.invalidOperation()};AjaxControlToolkit.AutoSize.prototype={None:0,Fill:1,Limit:2};AjaxControlToolkit.AutoSize.registerEnum("AjaxControlToolkit.AutoSize",false);AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs=function(b,a){AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs.initializeBase(this);this._oldIndex=b;this._selectedIndex=a};AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs.prototype={get_oldIndex:function(){return this._oldIndex},set_oldIndex:function(a){this._oldIndex=a},get_selectedIndex:function(){return this._selectedIndex},set_selectedIndex:function(a){this._selectedIndex=a}};AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs.registerClass("AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs",Sys.CancelEventArgs);AjaxControlToolkit.AccordionBehavior=function(b){var a=this;AjaxControlToolkit.AccordionBehavior.initializeBase(a,[b]);a._selectedIndex=0;a._panes=[];a._fadeTransitions=false;a._duration=.25;a._framesPerSecond=30;a._autoSize=AjaxControlToolkit.AutoSize.None;a._requireOpenedPane=true;a._suppressHeaderPostbacks=false;a._headersSize=0;a._headerClickHandler=null;a._headerCssClass="";a._headerSelectedCssClass="";a._contentCssClass="";a._resizeHandler=null;a._isIE8InStandardMode=Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version>7&&Sys.Browser.documentMode!=0};AjaxControlToolkit.AccordionBehavior.prototype={initialize:function(){var a=this;AjaxControlToolkit.AccordionBehavior.callBaseMethod(a,"initialize");a._headerClickHandler=Function.createDelegate(a,a._onHeaderClick);var d=a.get_ClientState();if(d!==null&&d!=="")a._changeSelectedIndex(parseInt(d),false,true);var c=a.get_element().childNodes,b={};for(b.value=0;b.value<c.length;b.value++){var f=a._getNextDiv(c,b);if(!f)break;var e=a._getNextDiv(c,b);if(e){a.addPane(f,e);b.value--}}if(a._requireOpenedPane&&!a.get_Pane()&&a._panes.length>0)a._changeSelectedIndex(0,false,true);a._initializeLayout()},_getNextDiv:function(c,b){var a=null;while(b.value<c.length&&(a=c[b.value++]))if(a.tagName&&a.tagName.toLowerCase()==="div")break;return a},addPane:function(e,d){var b=this,c={};c.animation=null;c.header=e;e._index=b._panes.length;$addHandler(e,"click",b._headerClickHandler);var f=b.get_element(),a=document.createElement("div");f.insertBefore(a,d);a.appendChild(d);a._original=d;c.content=a;a.style.border="";a.style.margin="";a.style.padding="";Array.add(b._panes,c);b._initializePane(e._index);d.style.display="block";return c},_getAnimation:function(d){var b=null,c=this,a=d.animation;if(!a){var e=b,f=b;if(!c._fadeTransitions)a=e=new AjaxControlToolkit.Animation.LengthAnimation(d.content,c._duration,c._framesPerSecond,"style","height",0,0,"px");else{e=new AjaxControlToolkit.Animation.LengthAnimation(b,b,b,"style","height",0,0,"px");f=new AjaxControlToolkit.Animation.FadeAnimation(b,b,b,AjaxControlToolkit.Animation.FadeEffect.FadeOut,0,1,false);a=new AjaxControlToolkit.Animation.ParallelAnimation(d.content,c._duration,c._framesPerSecond,[f,e])}d.animation=a;a._length=e;a._fade=f;a._pane=d;a._opening=true;a._behavior=c;a._ended=Function.createDelegate(d.animation,c._onAnimationFinished);a.add_ended(d.animation._ended);a.initialize()}return a},_onAnimationFinished:function(){this._behavior._endPaneChange(this._pane,this._opening)},_initializeLayout:function(){var a=this;for(var c=0;c<a._panes.length;c++){var f=a._panes[c].animation;if(f&&f.get_isPlaying())f.stop()}var e=a.get_element();a._initialHeight=e.offsetHeight;var b=e.style;if(a._autoSize===AjaxControlToolkit.AutoSize.None){a._disposeResizeHandler();var d=Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version>=7;if(!d||d&&b.height&&b.height.length>0)b.height="auto";if(!d||d&&b.overflow&&b.overflow.length>0)b.overflow="auto"}else{a._addResizeHandler();b.height=e.offsetHeight+"px";b.overflow="hidden"}for(var c=0;c<a._panes.length;c++)a._initializePane(c);a._resizeSelectedPane()},_initializePane:function(g){var e="auto",d=this,h=d.get_Pane(g);if(!h)return;var a=h.content,b=a._original,c=g===d._selectedIndex;a.style.height=c||d._autoSize===AjaxControlToolkit.AutoSize.Fill?e:"0px";a.style.overflow=c?e:"hidden";a.style.display=c?"block":"none";b.style.height=e;b.style.maxHeight="";b.style.overflow=c?e:"hidden";var f=c||!d._fadeTransitions?1:0;if(d._autoSize===AjaxControlToolkit.AutoSize.Fill){if($common.getElementOpacity(b)!=f)$common.setElementOpacity(b,f);if($common.getElementOpacity(a)!=1)$common.setElementOpacity(a,1)}else{if($common.getElementOpacity(a)!=f)$common.setElementOpacity(a,f);if($common.getElementOpacity(b)!=1)$common.setElementOpacity(b,1)}},_addResizeHandler:function(){var a=this;if(!a._resizeHandler){a._resizeHandler=Function.createDelegate(a,a._resizeSelectedPane);$addHandler(window,"resize",a._resizeHandler)}},dispose:function(){var c=null,a=this;a._disposeResizeHandler();a._disposeAnimations();for(var d=a._panes.length-1;d>=0;d--){var b=a._panes[d];if(b){if(b.header){b.header._index=c;$removeHandler(b.header,"click",a._headerClickHandler);b.header=c}if(b.content){b.content._original=c;b.content=c}a._panes[d]=c;delete a._panes[d]}}a._panes=c;a._headerClickHandler=c;AjaxControlToolkit.AccordionBehavior.callBaseMethod(a,"dispose")},_disposeResizeHandler:function(){if(this._resizeHandler){$removeHandler(window,"resize",this._resizeHandler);this._resizeHandler=null}},_disposeAnimations:function(){var b=null;for(var c=0;c<this._panes.length;c++){var a=this._panes[c].animation;if(a){if(a.get_isPlaying())a.stop();if(a._ended){a.remove_ended(a._ended);a._ended=b}a.dispose();a._length=b;a._fade=b;a._pane=b;a._opening=b;a._behavior=b;this._panes[c].animation=b}}},_resizeSelectedPane:function(){var b=this,d=b.get_Pane();if(!d)return;b._headersSize=b._getHeadersSize().height;var a=d.content._original;switch(b._autoSize){case AjaxControlToolkit.AutoSize.None:a.style.height="auto";a.style.maxHeight="";break;case AjaxControlToolkit.AutoSize.Limit:var c=b._getRemainingHeight(false);a.style.height="auto";a.style.maxHeight=c+"px";break;case AjaxControlToolkit.AutoSize.Fill:var c=b._getRemainingHeight(true);a.style.height=c+"px";a.style.maxHeight=""}},_onHeaderClick:function(d){var b=this,a=d.target,e=b.get_element();while(a&&a.parentNode!==e)a=a.parentNode;d.stopPropagation();if(b._suppressHeaderPostbacks)d.preventDefault();var c=a._index;if(c===b._selectedIndex&&!b._requireOpenedPane)c=-1;b._changeSelectedIndex(c,true)},_changeSelectedIndex:function(c,g,h){var a=this,b=a._selectedIndex,d=a.get_Pane(c),e=a.get_Pane(b);if(!h&&d==e)return;var f=new AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs(b,c);a.raiseSelectedIndexChanging(f);if(f.get_cancel())return;if(e)e.header.className=a._headerCssClass;if(d)d.header.className=a._headerSelectedCssClass==""?a._headerCssClass:a._headerSelectedCssClass;a._selectedIndex=c;a.set_ClientState(a._selectedIndex);if(g)a._changePanes(b);a.raiseSelectedIndexChanged(new AjaxControlToolkit.AccordionSelectedIndexChangeEventArgs(b,c));a.raisePropertyChanged("SelectedIndex")},_changePanes:function(g){var b=this;if(!b.get_isInitialized())return;var f=null,e=null;for(var d=0;d<b._panes.length;d++){var c=b._panes[d],a=b._getAnimation(c);if(a.get_isPlaying())a.stop();if(d==b._selectedIndex){a._opening=true;f=a}else if(d==g){a._opening=false;e=a}else continue;b._startPaneChange(c,a._opening);if(b._fadeTransitions)a._fade.set_effect(a._opening?AjaxControlToolkit.Animation.FadeEffect.FadeIn:AjaxControlToolkit.Animation.FadeEffect.FadeOut);if(b._autoSize===AjaxControlToolkit.AutoSize.Fill){a.set_target(c.content._original);a._length.set_startValue($common.getContentSize(c.content._original).height);a._length.set_endValue(a._opening?b._getRemainingHeight(true):0)}else{a.set_target(c.content);a._length.set_startValue(c.content.offsetHeight);a._length.set_endValue(a._opening?b._getRemainingHeight(false):0)}}if(e)e.play();if(f)f.play()},_startPaneChange:function(e,d){var c=this,b=e.content,a=b._original;if(d){b.style.display="block";if(c._autoSize===AjaxControlToolkit.AutoSize.Fill&&c._isIE8InStandardMode)a.style.display="block"}else{b.style.overflow="hidden";a.style.overflow="hidden";if(c._autoSize===AjaxControlToolkit.AutoSize.Limit){b.style.height=c._getTotalSize(a).height+"px";a.style.maxHeight=""}}},_endPaneChange:function(g,f){var c="auto",b=this,a=g.content,d=a._original;if(f){if(b._autoSize===AjaxControlToolkit.AutoSize.Limit){var e=b._getRemainingHeight(true);d.style.maxHeight=e+"px"}d.style.overflow=c;a.style.height=c;a.style.overflow=c}else if(!b._isIE8InStandardMode)a.style.display="none";else if(b._autoSize===AjaxControlToolkit.AutoSize.Fill)d.style.display="none";else a.style.height="0px"},_getHeadersSize:function(){var a={width:0,height:0};for(var b=0;b<this._panes.length;b++){var c=this._getTotalSize(this._panes[b].header);a.width=Math.max(a.width,c.width);a.height+=c.height}return a},_getRemainingHeight:function(e){var b=this,a=0,c=b.get_Pane();if(b._autoSize===AjaxControlToolkit.AutoSize.None){if(c)a=b._getTotalSize(c.content._original).height}else{a=b._headersSize;if(e&&c)a+=b._getGutterSize(c.content._original).height;var f=b.get_element();a=Math.max(f.offsetHeight-a,0);if(c&&b._autoSize===AjaxControlToolkit.AutoSize.Limit){var d=b._getTotalSize(c.content._original).height;if(d>0)a=Math.min(a,d)}}return a},_getTotalSize:function(b){var a=$common.getSize(b),c=$common.getMarginBox(b);a.width+=c.horizontal;a.height+=c.vertical;return a},_getGutterSize:function(c){var a={width:0,height:0};try{var b=$common.getPaddingBox(c);a.width+=b.horizontal;a.height+=b.vertical}catch(d){}try{var b=$common.getBorderBox(c);a.width+=b.horizontal;a.height+=b.vertical}catch(d){}var b=$common.getMarginBox(c);a.width+=b.horizontal;a.height+=b.vertical;return a},add_selectedIndexChanging:function(a){this.get_events().addHandler("selectedIndexChanging",a)},remove_selectedIndexChanging:function(a){this.get_events().removeHandler("selectedIndexChanging",a)},raiseSelectedIndexChanging:function(b){var a=this.get_events().getHandler("selectedIndexChanging");if(a)a(this,b)},add_selectedIndexChanged:function(a){this.get_events().addHandler("selectedIndexChanged",a)},remove_selectedIndexChanged:function(a){this.get_events().removeHandler("selectedIndexChanged",a)},raiseSelectedIndexChanged:function(b){var a=this.get_events().getHandler("selectedIndexChanged");if(a)a(this,b)},get_Pane:function(a){var b=this;if(a===undefined||a===null)a=b._selectedIndex;return b._panes&&a>=0&&a<b._panes.length?b._panes[a]:null},get_Count:function(){return this._panes?this._panes.length:0},get_TransitionDuration:function(){return this._duration*1e3},set_TransitionDuration:function(d){var a=this;if(a._duration!=d/1e3){a._duration=d/1e3;for(var b=0;b<a._panes.length;b++){var c=a._panes[b].animation;if(c)c.set_duration(a._duration)}a.raisePropertyChanged("TransitionDuration")}},get_FramesPerSecond:function(){return this._framesPerSecond},set_FramesPerSecond:function(d){var a=this;if(a._framesPerSecond!=d){a._framesPerSecond=d;for(var b=0;b<a._panes.length;b++){var c=a._panes[b].animation;if(c)c.set_fps(a._framesPerSecond)}a.raisePropertyChanged("FramesPerSecond")}},get_FadeTransitions:function(){return this._fadeTransitions},set_FadeTransitions:function(c){var a=this;if(a._fadeTransitions!=c){a._fadeTransitions=c;a._disposeAnimations();if(!a._fadeTransitions)for(var b=0;b<a._panes.length;b++){if($common.getElementOpacity(a._panes[b].content)!=1)$common.setElementOpacity(a._panes[b].content,1);if($common.getElementOpacity(a._panes[b].content._original)!=1)$common.setElementOpacity(a._panes[b].content._original,1)}a.raisePropertyChanged("FadeTransitions")}},get_HeaderCssClass:function(){return this._headerCssClass},set_HeaderCssClass:function(a){this._headerCssClass=a;this.raisePropertyChanged("HeaderCssClass")},get_HeaderSelectedCssClass:function(){return this._headerSelectedCssClass},set_HeaderSelectedCssClass:function(a){this._headerSelectedCssClass=a;this.raisePropertyChanged("HeaderSelectedCssClass")},get_ContentCssClass:function(){return this._contentCssClass},set_ContentCssClass:function(a){this._contentCssClass=a;this.raisePropertyChanged("ContentCssClass")},get_AutoSize:function(){return this._autoSize},set_AutoSize:function(b){var a=this;if(Sys.Browser.agent===Sys.Browser.InternetExplorer&&b===AjaxControlToolkit.AutoSize.Limit)b=AjaxControlToolkit.AutoSize.Fill;if(a._autoSize!=b){a._autoSize=b;a._initializeLayout();a.raisePropertyChanged("AutoSize")}},get_SelectedIndex:function(){return this._selectedIndex},set_SelectedIndex:function(a){this._changeSelectedIndex(a,true)},get_requireOpenedPane:function(){return this._requireOpenedPane},set_requireOpenedPane:function(a){if(this._requireOpenedPane!=a){this._requireOpenedPane=a;this.raisePropertyChanged("requireOpenedPane")}},get_suppressHeaderPostbacks:function(){return this._suppressHeaderPostbacks},set_suppressHeaderPostbacks:function(a){if(this._suppressHeaderPostbacks!=a){this._suppressHeaderPostbacks=a;this.raisePropertyChanged("suppressHeaderPostbacks")}}};AjaxControlToolkit.AccordionBehavior.registerClass("AjaxControlToolkit.AccordionBehavior",AjaxControlToolkit.BehaviorBase);
//END AjaxControlToolkit.Accordion.AccordionBehavior.js
//START AjaxControlToolkit.Animation.AnimationBehavior.js
Type.registerNamespace("AjaxControlToolkit.Animation");AjaxControlToolkit.Animation.AnimationBehavior=function(c){var b=null,a=this;AjaxControlToolkit.Animation.AnimationBehavior.initializeBase(a,[c]);a._onLoad=b;a._onClick=b;a._onMouseOver=b;a._onMouseOut=b;a._onHoverOver=b;a._onHoverOut=b;a._onClickHandler=b;a._onMouseOverHandler=b;a._onMouseOutHandler=b};AjaxControlToolkit.Animation.AnimationBehavior.prototype={initialize:function(){var a=this;AjaxControlToolkit.Animation.AnimationBehavior.callBaseMethod(a,"initialize");var b=a.get_element();if(b){a._onClickHandler=Function.createDelegate(a,a.OnClick);$addHandler(b,"click",a._onClickHandler);a._onMouseOverHandler=Function.createDelegate(a,a.OnMouseOver);$addHandler(b,"mouseover",a._onMouseOverHandler);a._onMouseOutHandler=Function.createDelegate(a,a.OnMouseOut);$addHandler(b,"mouseout",a._onMouseOutHandler)}},dispose:function(){var b=null,a=this,c=a.get_element();if(c){if(a._onClickHandler){$removeHandler(c,"click",a._onClickHandler);a._onClickHandler=b}if(a._onMouseOverHandler){$removeHandler(c,"mouseover",a._onMouseOverHandler);a._onMouseOverHandler=b}if(a._onMouseOutHandler){$removeHandler(c,"mouseout",a._onMouseOutHandler);a._onMouseOutHandler=b}}a._onLoad=b;a._onClick=b;a._onMouseOver=b;a._onMouseOut=b;a._onHoverOver=b;a._onHoverOut=b;AjaxControlToolkit.Animation.AnimationBehavior.callBaseMethod(a,"dispose")},get_OnLoad:function(){return this._onLoad?this._onLoad.get_json():null},set_OnLoad:function(b){var a=this;if(!a._onLoad){a._onLoad=new AjaxControlToolkit.Animation.GenericAnimationBehavior(a.get_element());a._onLoad.initialize()}a._onLoad.set_json(b);a.raisePropertyChanged("OnLoad");a._onLoad.play()},get_OnLoadBehavior:function(){return this._onLoad},get_OnClick:function(){return this._onClick?this._onClick.get_json():null},set_OnClick:function(b){var a=this;if(!a._onClick){a._onClick=new AjaxControlToolkit.Animation.GenericAnimationBehavior(a.get_element());a._onClick.initialize()}a._onClick.set_json(b);a.raisePropertyChanged("OnClick")},get_OnClickBehavior:function(){return this._onClick},OnClick:function(){if(this._onClick)this._onClick.play()},get_OnMouseOver:function(){return this._onMouseOver?this._onMouseOver.get_json():null},set_OnMouseOver:function(b){var a=this;if(!a._onMouseOver){a._onMouseOver=new AjaxControlToolkit.Animation.GenericAnimationBehavior(a.get_element());a._onMouseOver.initialize()}a._onMouseOver.set_json(b);a.raisePropertyChanged("OnMouseOver")},get_OnMouseOverBehavior:function(){return this._onMouseOver},OnMouseOver:function(){var a=this;if(a._onMouseOver)a._onMouseOver.play();if(a._onHoverOver){if(a._onHoverOut)a._onHoverOut.quit();a._onHoverOver.play()}},get_OnMouseOut:function(){return this._onMouseOut?this._onMouseOut.get_json():null},set_OnMouseOut:function(b){var a=this;if(!a._onMouseOut){a._onMouseOut=new AjaxControlToolkit.Animation.GenericAnimationBehavior(a.get_element());a._onMouseOut.initialize()}a._onMouseOut.set_json(b);a.raisePropertyChanged("OnMouseOut")},get_OnMouseOutBehavior:function(){return this._onMouseOut},OnMouseOut:function(){var a=this;if(a._onMouseOut)a._onMouseOut.play();if(a._onHoverOut){if(a._onHoverOver)a._onHoverOver.quit();a._onHoverOut.play()}},get_OnHoverOver:function(){return this._onHoverOver?this._onHoverOver.get_json():null},set_OnHoverOver:function(b){var a=this;if(!a._onHoverOver){a._onHoverOver=new AjaxControlToolkit.Animation.GenericAnimationBehavior(a.get_element());a._onHoverOver.initialize()}a._onHoverOver.set_json(b);a.raisePropertyChanged("OnHoverOver")},get_OnHoverOverBehavior:function(){return this._onHoverOver},get_OnHoverOut:function(){return this._onHoverOut?this._onHoverOut.get_json():null},set_OnHoverOut:function(b){var a=this;if(!a._onHoverOut){a._onHoverOut=new AjaxControlToolkit.Animation.GenericAnimationBehavior(a.get_element());a._onHoverOut.initialize()}a._onHoverOut.set_json(b);a.raisePropertyChanged("OnHoverOut")},get_OnHoverOutBehavior:function(){return this._onHoverOut}};AjaxControlToolkit.Animation.AnimationBehavior.registerClass("AjaxControlToolkit.Animation.AnimationBehavior",AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.Animation.GenericAnimationBehavior=function(a){AjaxControlToolkit.Animation.GenericAnimationBehavior.initializeBase(this,[a]);this._json=null;this._animation=null};AjaxControlToolkit.Animation.GenericAnimationBehavior.prototype={dispose:function(){this.disposeAnimation();AjaxControlToolkit.Animation.GenericAnimationBehavior.callBaseMethod(this,"dispose")},disposeAnimation:function(){if(this._animation)this._animation.dispose();this._animation=null},play:function(){var a=this;if(a._animation&&!a._animation.get_isPlaying()){a.stop();a._animation.play()}},stop:function(){if(this._animation)if(this._animation.get_isPlaying())this._animation.stop(true)},quit:function(){if(this._animation)if(this._animation.get_isPlaying())this._animation.stop(false)},get_json:function(){return this._json},set_json:function(c){var a=this;if(a._json!=c){a._json=c;a.raisePropertyChanged("json");a.disposeAnimation();var b=a.get_element();if(b){a._animation=AjaxControlToolkit.Animation.buildAnimation(a._json,b);if(a._animation)a._animation.initialize();a.raisePropertyChanged("animation")}}},get_animation:function(){return this._animation}};AjaxControlToolkit.Animation.GenericAnimationBehavior.registerClass("AjaxControlToolkit.Animation.GenericAnimationBehavior",AjaxControlToolkit.BehaviorBase);
//END AjaxControlToolkit.Animation.AnimationBehavior.js
//START AjaxControlToolkit.Compat.DragDrop.DragDropScripts.js
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.IDragSource=function(){};AjaxControlToolkit.IDragSource.prototype={get_dragDataType:function(){throw Error.notImplemented()},getDragData:function(){throw Error.notImplemented()},get_dragMode:function(){throw Error.notImplemented()},onDragStart:function(){throw Error.notImplemented()},onDrag:function(){throw Error.notImplemented()},onDragEnd:function(){throw Error.notImplemented()}};AjaxControlToolkit.IDragSource.registerInterface("AjaxControlToolkit.IDragSource");AjaxControlToolkit.IDropTarget=function(){};AjaxControlToolkit.IDropTarget.prototype={get_dropTargetElement:function(){throw Error.notImplemented()},canDrop:function(){throw Error.notImplemented()},drop:function(){throw Error.notImplemented()},onDragEnterTarget:function(){throw Error.notImplemented()},onDragLeaveTarget:function(){throw Error.notImplemented()},onDragInTarget:function(){throw Error.notImplemented()}};AjaxControlToolkit.IDropTarget.registerInterface("AjaxControlToolkit.IDropTarget");AjaxControlToolkit.DragMode=function(){throw Error.invalidOperation()};AjaxControlToolkit.DragMode.prototype={Copy:0,Move:1};AjaxControlToolkit.DragMode.registerEnum("AjaxControlToolkit.DragMode");AjaxControlToolkit.DragDropEventArgs=function(c,a,b){this._dragMode=c;this._dataType=a;this._data=b};AjaxControlToolkit.DragDropEventArgs.prototype={get_dragMode:function(){return this._dragMode||null},get_dragDataType:function(){return this._dataType||null},get_dragData:function(){return this._data||null}};AjaxControlToolkit.DragDropEventArgs.registerClass("AjaxControlToolkit.DragDropEventArgs");AjaxControlToolkit._DragDropManager=function(){this._instance=null;this._events=null};AjaxControlToolkit._DragDropManager.prototype={add_dragStart:function(a){this.get_events().addHandler("dragStart",a)},remove_dragStart:function(a){this.get_events().removeHandler("dragStart",a)},get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_dragStop:function(a){this.get_events().addHandler("dragStop",a)},remove_dragStop:function(a){this.get_events().removeHandler("dragStop",a)},_getInstance:function(){var a=this;if(!a._instance){if(Sys.Browser.agent===Sys.Browser.InternetExplorer)a._instance=new AjaxControlToolkit.IEDragDropManager;else a._instance=new AjaxControlToolkit.GenericDragDropManager;a._instance.initialize();a._instance.add_dragStart(Function.createDelegate(a,a._raiseDragStart));a._instance.add_dragStop(Function.createDelegate(a,a._raiseDragStop))}return a._instance},startDragDrop:function(b,c,d,a){this._getInstance().startDragDrop(b,c,d,a)},registerDropTarget:function(a){this._getInstance().registerDropTarget(a)},unregisterDropTarget:function(a){this._getInstance().unregisterDropTarget(a)},dispose:function(){delete this._events;Sys.Application.unregisterDisposableObject(this);Sys.Application.removeComponent(this)},_raiseDragStart:function(c,b){var a=this.get_events().getHandler("dragStart");if(a)a(this,b)},_raiseDragStop:function(c,b){var a=this.get_events().getHandler("dragStop");if(a)a(this,b)}};AjaxControlToolkit._DragDropManager.registerClass("AjaxControlToolkit._DragDropManager");AjaxControlToolkit.DragDropManager=new AjaxControlToolkit._DragDropManager;AjaxControlToolkit.IEDragDropManager=function(){var b=null,a=this;AjaxControlToolkit.IEDragDropManager.initializeBase(a);a._dropTargets=b;a._radius=10;a._useBuiltInDragAndDropFunctions=true;a._activeDragVisual=b;a._activeContext=b;a._activeDragSource=b;a._underlyingTarget=b;a._oldOffset=b;a._potentialTarget=b;a._isDragging=false;a._mouseUpHandler=b;a._documentMouseMoveHandler=b;a._documentDragOverHandler=b;a._dragStartHandler=b;a._mouseMoveHandler=b;a._dragEnterHandler=b;a._dragLeaveHandler=b;a._dragOverHandler=b;a._dropHandler=b};AjaxControlToolkit.IEDragDropManager.prototype={add_dragStart:function(a){this.get_events().addHandler("dragStart",a)},remove_dragStart:function(a){this.get_events().removeHandler("dragStart",a)},add_dragStop:function(a){this.get_events().addHandler("dragStop",a)},remove_dragStop:function(a){this.get_events().removeHandler("dragStop",a)},initialize:function(){var a=this;AjaxControlToolkit.IEDragDropManager.callBaseMethod(a,"initialize");a._mouseUpHandler=Function.createDelegate(a,a._onMouseUp);a._documentMouseMoveHandler=Function.createDelegate(a,a._onDocumentMouseMove);a._documentDragOverHandler=Function.createDelegate(a,a._onDocumentDragOver);a._dragStartHandler=Function.createDelegate(a,a._onDragStart);a._mouseMoveHandler=Function.createDelegate(a,a._onMouseMove);a._dragEnterHandler=Function.createDelegate(a,a._onDragEnter);a._dragLeaveHandler=Function.createDelegate(a,a._onDragLeave);a._dragOverHandler=Function.createDelegate(a,a._onDragOver);a._dropHandler=Function.createDelegate(a,a._onDrop)},dispose:function(){var a=this;if(a._dropTargets){for(var b=0;b<a._dropTargets;b++)a.unregisterDropTarget(a._dropTargets[b]);a._dropTargets=null}AjaxControlToolkit.IEDragDropManager.callBaseMethod(a,"dispose")},startDragDrop:function(c,b,h,f){var a=this,j=window._event;if(a._isDragging)return;a._underlyingTarget=null;a._activeDragSource=c;a._activeDragVisual=b;a._activeContext=h;a._useBuiltInDragAndDropFunctions=typeof f!="unefined"?f:true;var g={x:j.clientX,y:j.clientY};b.originalPosition=b.style.position;b.style.position="absolute";document._lastPosition=g;b.startingPoint=g;var k=a.getScrollOffset(b,true);b.startingPoint=a.addPoints(b.startingPoint,k);var d=parseInt(b.style.left),e=parseInt(b.style.top);if(isNaN(d))d="0";if(isNaN(e))e="0";b.startingPoint=a.subtractPoints(b.startingPoint,{x:d,y:e});a._prepareForDomChanges();c.onDragStart();var l=new AjaxControlToolkit.DragDropEventArgs(c.get_dragMode(),c.get_dragDataType(),c.getDragData(h)),i=a.get_events().getHandler("dragStart");if(i)i(a,l);a._recoverFromDomChanges();a._wireEvents();a._drag(true)},_stopDragDrop:function(c){var b=null,a=this,e=window._event;if(a._activeDragSource!=b){a._unwireEvents();if(!c)c=a._underlyingTarget==b;if(!c&&a._underlyingTarget!=b)a._underlyingTarget.drop(a._activeDragSource.get_dragMode(),a._activeDragSource.get_dragDataType(),a._activeDragSource.getDragData(a._activeContext));a._activeDragSource.onDragEnd(c);var d=a.get_events().getHandler("dragStop");if(d)d(a,Sys.EventArgs.Empty);a._activeDragVisual.style.position=a._activeDragVisual.originalPosition;a._activeDragSource=b;a._activeContext=b;a._activeDragVisual=b;a._isDragging=false;a._potentialTarget=b;e.preventDefault()}},_drag:function(g){var b=null,a=this,f=window._event,e={x:f.clientX,y:f.clientY};document._lastPosition=e;var h=a.getScrollOffset(a._activeDragVisual,true),c=a.addPoints(a.subtractPoints(e,a._activeDragVisual.startingPoint),h);if(!g&&parseInt(a._activeDragVisual.style.left)==c.x&&parseInt(a._activeDragVisual.style.top)==c.y)return;$common.setLocation(a._activeDragVisual,c);a._prepareForDomChanges();a._activeDragSource.onDrag();a._recoverFromDomChanges();a._potentialTarget=a._findPotentialTarget(a._activeDragSource,a._activeDragVisual);var d=a._potentialTarget!=a._underlyingTarget||a._potentialTarget==b;if(d&&a._underlyingTarget!=b)a._leaveTarget(a._activeDragSource,a._underlyingTarget);if(a._potentialTarget!=b)if(d){a._underlyingTarget=a._potentialTarget;a._enterTarget(a._activeDragSource,a._underlyingTarget)}else a._moveInTarget(a._activeDragSource,a._underlyingTarget);else a._underlyingTarget=b},_wireEvents:function(){var b="mousemove",a=this;if(a._useBuiltInDragAndDropFunctions){$addHandler(document,"mouseup",a._mouseUpHandler);$addHandler(document,b,a._documentMouseMoveHandler);$addHandler(document.body,"dragover",a._documentDragOverHandler);$addHandler(a._activeDragVisual,"dragstart",a._dragStartHandler);$addHandler(a._activeDragVisual,"dragend",a._mouseUpHandler);$addHandler(a._activeDragVisual,"drag",a._mouseMoveHandler)}else{$addHandler(document,"mouseup",a._mouseUpHandler);$addHandler(document,b,a._mouseMoveHandler)}},_unwireEvents:function(){var b="mousemove",a=this;if(a._useBuiltInDragAndDropFunctions){$removeHandler(a._activeDragVisual,"drag",a._mouseMoveHandler);$removeHandler(a._activeDragVisual,"dragend",a._mouseUpHandler);$removeHandler(a._activeDragVisual,"dragstart",a._dragStartHandler);$removeHandler(document.body,"dragover",a._documentDragOverHandler);$removeHandler(document,b,a._documentMouseMoveHandler);$removeHandler(document,"mouseup",a._mouseUpHandler)}else{$removeHandler(document,b,a._mouseMoveHandler);$removeHandler(document,"mouseup",a._mouseUpHandler)}},registerDropTarget:function(b){var a=this;if(a._dropTargets==null)a._dropTargets=[];Array.add(a._dropTargets,b);a._wireDropTargetEvents(b)},unregisterDropTarget:function(a){this._unwireDropTargetEvents(a);if(this._dropTargets)Array.remove(this._dropTargets,a)},_wireDropTargetEvents:function(c){var b=this,a=c.get_dropTargetElement();a._dropTarget=c;$addHandler(a,"dragenter",b._dragEnterHandler);$addHandler(a,"dragleave",b._dragLeaveHandler);$addHandler(a,"dragover",b._dragOverHandler);$addHandler(a,"drop",b._dropHandler)},_unwireDropTargetEvents:function(c){var b=this,a=c.get_dropTargetElement();if(a._dropTarget){a._dropTarget=null;$removeHandler(a,"dragenter",b._dragEnterHandler);$removeHandler(a,"dragleave",b._dragLeaveHandler);$removeHandler(a,"dragover",b._dragOverHandler);$removeHandler(a,"drop",b._dropHandler)}},_onDragStart:function(d){window._event=d;document.selection.empty();var c=d.dataTransfer;if(!c&&d.rawEvent)c=d.rawEvent.dataTransfer;var b=this._activeDragSource.get_dragDataType().toLowerCase(),a=this._activeDragSource.getDragData(this._activeContext);if(a){if(b!="text"&&b!="url"){b="text";if(a.innerHTML!=null)a=a.innerHTML}c.effectAllowed="move";c.setData(b,a.toString())}},_onMouseUp:function(a){window._event=a;this._stopDragDrop(false)},_onDocumentMouseMove:function(a){window._event=a;this._dragDrop()},_onDocumentDragOver:function(a){window._event=a;if(this._potentialTarget)a.preventDefault()},_onMouseMove:function(a){window._event=a;this._drag()},_onDragEnter:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragEnterTarget(AjaxControlToolkit.DragMode.Copy,b[a].type,b[a].value)}},_onDragLeave:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragLeaveTarget(AjaxControlToolkit.DragMode.Copy,b[a].type,b[a].value)}},_onDragOver:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragInTarget(AjaxControlToolkit.DragMode.Copy,b[a].type,b[a].value)}},_onDrop:function(c){window._event=c;if(!this._isDragging){var b=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.drop(AjaxControlToolkit.DragMode.Copy,b[a].type,b[a].value)}c.preventDefault()},_getDropTarget:function(a){while(a){if(a._dropTarget!=null)return a._dropTarget;a=a.parentNode}return null},_dragDrop:function(){if(this._isDragging)return;this._isDragging=true;this._activeDragVisual.dragDrop();document.selection.empty()},_moveInTarget:function(a,b){this._prepareForDomChanges();b.onDragInTarget(a.get_dragMode(),a.get_dragDataType(),a.getDragData(this._activeContext));this._recoverFromDomChanges()},_enterTarget:function(a,b){this._prepareForDomChanges();b.onDragEnterTarget(a.get_dragMode(),a.get_dragDataType(),a.getDragData(this._activeContext));this._recoverFromDomChanges()},_leaveTarget:function(a,b){this._prepareForDomChanges();b.onDragLeaveTarget(a.get_dragMode(),a.get_dragDataType(),a.getDragData(this._activeContext));this._recoverFromDomChanges()},_findPotentialTarget:function(c){var a=this,f=window._event;if(a._dropTargets==null)return null;var j=c.get_dragDataType(),i=c.get_dragMode(),h=c.getDragData(a._activeContext),d=a.getScrollOffset(document.body,true),k=f.clientX+d.x,l=f.clientY+d.y,g={x:k-a._radius,y:l-a._radius,width:a._radius*2,height:a._radius*2},e;for(var b=0;b<a._dropTargets.length;b++){e=$common.getBounds(a._dropTargets[b].get_dropTargetElement());if($common.overlaps(g,e)&&a._dropTargets[b].canDrop(i,j,h))return a._dropTargets[b]}return null},_prepareForDomChanges:function(){this._oldOffset=$common.getLocation(this._activeDragVisual)},_recoverFromDomChanges:function(){var a=this,b=$common.getLocation(a._activeDragVisual);if(a._oldOffset.x!=b.x||a._oldOffset.y!=b.y){a._activeDragVisual.startingPoint=a.subtractPoints(a._activeDragVisual.startingPoint,a.subtractPoints(a._oldOffset,b));scrollOffset=a.getScrollOffset(a._activeDragVisual,true);var c=a.addPoints(a.subtractPoints(document._lastPosition,a._activeDragVisual.startingPoint),scrollOffset);$common.setLocation(a._activeDragVisual,c)}},addPoints:function(a,b){return {x:a.x+b.x,y:a.y+b.y}},subtractPoints:function(a,b){return {x:a.x-b.x,y:a.y-b.y}},getScrollOffset:function(b,e){var c=b.scrollLeft,d=b.scrollTop;if(e){var a=b.parentNode;while(a!=null&&a.scrollLeft!=null){c+=a.scrollLeft;d+=a.scrollTop;if(a==document.body&&(c!=0&&d!=0))break;a=a.parentNode}}return {x:c,y:d}},getBrowserRectangle:function(){var b=window.innerWidth,a=window.innerHeight;if(b==null)b=document.documentElement.clientWidth;if(a==null)a=document.documentElement.clientHeight;return {x:0,y:0,width:b,height:a}},getNextSibling:function(a){for(a=a.nextSibling;a!=null;a=a.nextSibling)if(a.innerHTML!=null)return a;return null},hasParent:function(a){return a.parentNode!=null&&a.parentNode.tagName!=null}};AjaxControlToolkit.IEDragDropManager.registerClass("AjaxControlToolkit.IEDragDropManager",Sys.Component);AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget=function(g){if(g==null)return [];var e=window._event,f=[],b=["URL","Text"],c;for(var a=0;a<b.length;a++){var d=e.dataTransfer;if(!d&&e.rawEvent)d=e.rawEvent.dataTransfer;c=d.getData(b[a]);if(g.canDrop(AjaxControlToolkit.DragMode.Copy,b[a],c))if(c)Array.add(f,{type:b[a],value:c})}return f};AjaxControlToolkit.GenericDragDropManager=function(){var b=null,a=this;AjaxControlToolkit.GenericDragDropManager.initializeBase(a);a._dropTargets=b;a._scrollEdgeConst=40;a._scrollByConst=10;a._scroller=b;a._scrollDeltaX=0;a._scrollDeltaY=0;a._activeDragVisual=b;a._activeContext=b;a._activeDragSource=b;a._oldOffset=b;a._potentialTarget=b;a._mouseUpHandler=b;a._mouseMoveHandler=b;a._keyPressHandler=b;a._scrollerTickHandler=b};AjaxControlToolkit.GenericDragDropManager.prototype={initialize:function(){var a=this;AjaxControlToolkit.GenericDragDropManager.callBaseMethod(a,"initialize");a._mouseUpHandler=Function.createDelegate(a,a._onMouseUp);a._mouseMoveHandler=Function.createDelegate(a,a._onMouseMove);a._keyPressHandler=Function.createDelegate(a,a._onKeyPress);a._scrollerTickHandler=Function.createDelegate(a,a._onScrollerTick);if(Sys.Browser.agent===Sys.Browser.Safari)AjaxControlToolkit.GenericDragDropManager.__loadSafariCompatLayer(a);a._scroller=new Sys.Timer;a._scroller.set_interval(10);a._scroller.add_tick(a._scrollerTickHandler)},startDragDrop:function(b,c,d){var a=this;a._activeDragSource=b;a._activeDragVisual=c;a._activeContext=d;AjaxControlToolkit.GenericDragDropManager.callBaseMethod(a,"startDragDrop",[b,c,d])},_stopDragDrop:function(a){this._scroller.set_enabled(false);AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this,"_stopDragDrop",[a])},_drag:function(a){AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this,"_drag",[a]);this._autoScroll()},_wireEvents:function(){$addHandler(document,"mouseup",this._mouseUpHandler);$addHandler(document,"mousemove",this._mouseMoveHandler);$addHandler(document,"keypress",this._keyPressHandler)},_unwireEvents:function(){$removeHandler(document,"keypress",this._keyPressHandler);$removeHandler(document,"mousemove",this._mouseMoveHandler);$removeHandler(document,"mouseup",this._mouseUpHandler)},_wireDropTargetEvents:function(){},_unwireDropTargetEvents:function(){},_onMouseUp:function(a){window._event=a;this._stopDragDrop(false)},_onMouseMove:function(a){window._event=a;this._drag()},_onKeyPress:function(a){window._event=a;var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b==27)this._stopDragDrop(true)},_autoScroll:function(){var a=this,c=window._event,b=a.getBrowserRectangle();if(b.width>0){a._scrollDeltaX=a._scrollDeltaY=0;if(c.clientX<b.x+a._scrollEdgeConst)a._scrollDeltaX=-a._scrollByConst;else if(c.clientX>b.width-a._scrollEdgeConst)a._scrollDeltaX=a._scrollByConst;if(c.clientY<b.y+a._scrollEdgeConst)a._scrollDeltaY=-a._scrollByConst;else if(c.clientY>b.height-a._scrollEdgeConst)a._scrollDeltaY=a._scrollByConst;if(a._scrollDeltaX!=0||a._scrollDeltaY!=0)a._scroller.set_enabled(true);else a._scroller.set_enabled(false)}},_onScrollerTick:function(){var d=document.body.scrollLeft,f=document.body.scrollTop;window.scrollBy(this._scrollDeltaX,this._scrollDeltaY);var c=document.body.scrollLeft,e=document.body.scrollTop,a=this._activeDragVisual,b={x:parseInt(a.style.left)+(c-d),y:parseInt(a.style.top)+(e-f)};$common.setLocation(a,b)}};AjaxControlToolkit.GenericDragDropManager.registerClass("AjaxControlToolkit.GenericDragDropManager",AjaxControlToolkit.IEDragDropManager);if(Sys.Browser.agent===Sys.Browser.Safari)AjaxControlToolkit.GenericDragDropManager.__loadSafariCompatLayer=function(a){a._getScrollOffset=a.getScrollOffset;a.getScrollOffset=function(){return {x:0,y:0}};a._getBrowserRectangle=a.getBrowserRectangle;a.getBrowserRectangle=function(){var b=a._getBrowserRectangle(),c=a._getScrollOffset(document.body,true);return {x:b.x+c.x,y:b.y+c.y,width:b.width+c.x,height:b.height+c.y}}};
//END AjaxControlToolkit.Compat.DragDrop.DragDropScripts.js
//START AjaxControlToolkit.MultiHandleSlider.MultiHandleSliderBehavior.debug.js
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Public License.
// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
// All other rights reserved.

/// <reference name="MicrosoftAjax.debug.js" />
/// <reference name="MicrosoftAjaxTimer.debug.js" />
/// <reference name="MicrosoftAjaxWebForms.debug.js" />
/// <reference path="../ExtenderBase/BaseScripts.js" />
/// <reference path="../Common/Common.js" />
/// <reference path="../Compat/Timer/Timer.js" />
/// <reference path="../Compat/DragDrop/DragDropScripts.js" />
/// <reference path="../Animation/Animations.js" />

Type.registerNamespace('AjaxControlToolkit');

// DragDropManager

AjaxControlToolkit._MultiHandleSliderDragDropInternal = function() {
    AjaxControlToolkit._MultiHandleSliderDragDropInternal.initializeBase(this);
    this._instance = null;
}
AjaxControlToolkit._MultiHandleSliderDragDropInternal.prototype = {
    _getInstance: function() {
        // Do not use singleton pattern here; it will break the DragDropScripts.js implementation!
        //if(!this._instance) {
            this._instance = new AjaxControlToolkit.GenericDragDropManager();
            this._instance.initialize();
            this._instance.add_dragStart(Function.createDelegate(this, this._raiseDragStart));
            this._instance.add_dragStop(Function.createDelegate(this, this._raiseDragStop));
        //}
        return this._instance;
    }
}
AjaxControlToolkit._MultiHandleSliderDragDropInternal.registerClass('AjaxControlToolkit._MultiHandleSliderDragDropInternal', AjaxControlToolkit._DragDropManager);
AjaxControlToolkit.DragDrop = new AjaxControlToolkit._MultiHandleSliderDragDropInternal();

// Enums

AjaxControlToolkit.MultiHandleInnerRailStyle = function() {
    /// <summary>
    /// The MultiHandleInnerRailStyle enumeration describes how the inner rail is rendered
    /// </summary>
    /// <field name="AsIs">The inner style is rendered as it is defined.</field>
    /// <field name="SlidingDoors">The inner style is super-imposed on the outer style.</field>
}

AjaxControlToolkit.MultiHandleInnerRailStyle.prototype = {
    AsIs: 0,
    SlidingDoors: 1
}
AjaxControlToolkit.MultiHandleInnerRailStyle.registerEnum('AjaxControlToolkit.MultiHandleInnerRailStyle', false);

AjaxControlToolkit.SliderOrientation = function() {
    /// <summary>
    /// The SliderOrientation enumeration describes the slider's visual orientation.
    /// </summary>
    /// <field name="Horizontal">The slider orientation is left to right.</field>
    /// <field name="Vertical">The slider orientation is top to bottom.</field>
}

AjaxControlToolkit.SliderOrientation.prototype = {
    Horizontal: 0,
    Vertical: 1
}
AjaxControlToolkit.SliderOrientation.registerEnum('AjaxControlToolkit.SliderOrientation', false);

// Behavior

AjaxControlToolkit.MultiHandleSliderBehavior = function(element) {
    /// <summary>
    /// A behavior that attaches a multi-handled slider to a TextBox control.
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">The element to attach to.</param>
    /// <returns></returns>
    
    AjaxControlToolkit.MultiHandleSliderBehavior.initializeBase(this, [element]);

    // Extender Properties
    this._minimum = null;
    this._maximum = null;
    this._orientation = AjaxControlToolkit.SliderOrientation.Horizontal;
    this._cssClass = null;
    this._multiHandleSliderTargets = null;
    this._length = 150;
    this._steps = 0;
    this._enableHandleAnimation = false;
    this._showInnerRail = false;
    this._showHoverStyle = false;
    this._showDragStyle = false;
    this._raiseChangeOnlyOnMouseUp = true;
    this._innerRailStyle = AjaxControlToolkit.MultiHandleInnerRailStyle.AsIs;
    this._enableInnerRangeDrag = false;
    this._enableRailClick = true;
    this._isReadOnly = false;
    this._increment = 1;
    this._enableKeyboard = true;
    this._enableMouseWheel = true;
    this._tooltipText = '';
    
    // Backwards-compatibility Properties
    this._boundControlID = null;
    this._handleCssClass = null;
    this._handleImageUrl = null;
    this._handleImage = null;
    this._railCssClass = null;
    this._decimals = 0;
    
    // Private Fields
    this._textBox = null;
    this._wrapper = null;
    this._outer = null;
    this._inner = null;
    this._handleData = null;
    this._handleAnimationDuration = 0.02;
    this._handles = 0;
    this._innerDragFlag = false;
    this._isVertical = false;

    // Global Handlers
    this._selectStartHandler = null;
    this._mouseUpHandler = null;
    this._mouseOutHandler = null;
    this._keyDownHandler = null;
    this._mouseWheelHandler = null;
    this._mouseOverHandler = null;
    
    // Callbacks

    // State
    this._animationPending = false;
    this._selectStartPending = false;
    this._initialized = false;
    this._handleUnderDrag = null;
    this._innerDrag = false;
    this._blockInnerClick = false;
}

// MultiHandleSliderExtender Behavior

AjaxControlToolkit.MultiHandleSliderBehavior.prototype = {
    
    // Constructor
    
    initialize: function() {
        /// <summary>
        /// Initializes this instance of the <see cref="AjaxControlToolkit.MultiHandleSliderExtender" /> behavior.
        /// </summary>
        /// <returns></returns>
        
        AjaxControlToolkit.MultiHandleSliderBehavior.callBaseMethod(this, 'initialize');

        // Determine internal variables from configuration
        if (this._boundControlID && !this._multiHandleSliderTargets) {
            // Backwards compatibility support for upgrading existing SliderExtenders
            this._multiHandleSliderTargets = [{
                "ControlID": this._boundControlID,
                "HandleCssClass": this._handleCssClass,
                "HandleImageUrl": this._handleImageUrl,
                "Decimals": this._decimals
            }];
        }
        this._handles = this._multiHandleSliderTargets ? this._multiHandleSliderTargets.length: 0;
        if(this._handles === 0)
        {
            // Support a boundless extender
            var boundless = document.createElement("INPUT");
            boundless.id = "boundless";
            boundless.style.display = "none";
            boundless.value = this.get_minimum();
            document.forms[0].appendChild(boundless);
            
            this._multiHandleSliderTargets = [{
                "ControlID": boundless.id,
                "HandleCssClass": this._handleCssClass,
                "HandleImageUrl": this._handleImageUrl,
                "Decimals": this._decimals
            }];
            this._boundControlID = boundless.id;
            this._handles = 1;
        }
        
        this._isVertical = this._orientation === AjaxControlToolkit.SliderOrientation.Vertical;

        this._resolveNamingContainer();
        this._createWrapper();
        this._createOuterRail();
        this._createHandles();
        this._createInnerRail();
        this._setRailStyles();

        if (this._length) {
            if (!this._cssClass && this._innerRailStyle !== AjaxControlToolkit.MultiHandleInnerRailStyle.SlidingDoors) {
                if (this._isVertical) {
                    this._outer.style.height = this._length + "px";
                } else {
                    this._outer.style.width = this._length + "px";
                }
            }
        }

        this._build();
        this._enforceElementPositioning();
        this._initializeSlider();
    },
    
    // Public Methods
    
    dispose: function() {
        /// <summary>
        /// Disposes this instance of the <see cref="AjaxControlToolkit.MultiHandleSliderExtender" /> behavior.
        /// </summary>
        /// <returns></returns>
        
        this._disposeHandlers();
        this._disposeMultiHandleSliderTargets();
        
        if (this._enableHandleAnimation && this._handleAnimation) {
            this._handleAnimation.dispose();
        }
        AjaxControlToolkit.MultiHandleSliderBehavior.callBaseMethod(this, 'dispose');
    },
    
    get_SliderInitialized : function() {
        /// <summary>
        /// Gets whether this slider is initialized. This is here for backwards compatibility
        /// with the original Slider.
        /// </summary>
        /// <returns></returns>
                
        return this._initialized;
    },
    
    getValue : function(index) {
        /// <summary>
        /// Gets the value of a specific slider handle programmatically by index.
        /// </summary>
        /// <param name="value" type="Number">The handle index.</param>
        /// <returns type="Number">The value of the specified slider handle.</returns>
        
        var multiHandleSliderTarget = $get(this._multiHandleSliderTargets[index].ControlID);
        return multiHandleSliderTarget.value;
    },
    setValue : function(index, value) {
        /// <summary>
        /// Sets the value of a specific slider handle programmatically by index.
        /// </summary>
        /// <param name="index">The handle index.</param>
        /// <param name="value">The value to set.</param>
        /// <returns></returns>
        
        var multiHandleSliderTarget = $get(this._multiHandleSliderTargets[index].ControlID);
        if(multiHandleSliderTarget) {
            this.beginUpdate();
            this._setMultiHandleSliderTargetValue(multiHandleSliderTarget, this._getNearestStepValue(value));
            this.endUpdate();
        }
    },
    
    get_values : function() {
        /// <summary>
        /// Gets all handle values as a comma-delimited string. This is required
        /// for the automated toolkit test behavior.
        /// </summary>
        /// <returns type="String">A comma-delimited string of handle values.</returns>
        
        var values = [this._handles];
        for(var i = 0; i < this._handles; i++) {
            var control = this._multiHandleSliderTargets[i];
            values[i] = control.value;
        }
        return values.join(',');
    },
    
    // Private Methods    
    
    _build: function() {
        /// <summary>
        /// Assembles the generated slider DOM elements on the page.
        /// </summary>
        /// <returns></returns>
        
        this._textBox = this.get_element();
        this._textBox.parentNode.insertBefore(this._wrapper, this._textBox);
        this._wrapper.appendChild(this._outer);
        
        if (this._inner && this._showInnerRail) {
            this._outer.appendChild(this._inner);
        }
        this._textBox.style.display = 'none';
    },
    
    _calculateInnerRailOffset: function(e) {
        /// <summary>
        /// Calculates the offset of the inner rail.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info</param>
        
        var edge = this._isVertical ? this._inner.style.top: this._inner.style.left;
        var offset = this._isVertical ? e.offsetY: e.offsetX;
        offset += parseInt(edge, 10);

        return offset;
    },

    _calculateClick: function(offset) {
        /// <summary>
        /// Calculates where to move a handle during a rail click event.
        /// </summary>
        /// <param name="offset" type="Number">The mouse offset.</param>
        
        var railBounds = this._getOuterBounds(),
            closestHandle = this._handleData[0];
            
        var handleBounds = this._getBoundsInternal(closestHandle);
        closestHandle = this._calculateClosestHandle(offset);

        var minOffset = handleBounds.width / 2;
        var maxOffset = railBounds.width - minOffset;

        offset = (offset < minOffset) ? minOffset: (offset > maxOffset) ? maxOffset: offset;

        var multiHandleSliderTarget = $get(closestHandle.multiHandleSliderTargetID);
        this._calculateMultiHandleSliderTargetValue(multiHandleSliderTarget, offset, true);
        $common.tryFireEvent(this.get_element(), "change");
    },
    
    _calculateClosestHandle: function(offset) {
        /// <summary>
        /// Calculates the closest handle to a mouse click.
        /// </summary>
        /// <param name="offset" type="Number">The mouse offset.</param>
        /// <returns type="Sys.UI.DomElement" domElement="true">The closest handle element.</returns>
        
        var closestHandle = this._handleData[0],
            distances = [this._handles],
            outer = this._getOuterBounds();

        for (var i = 0; i < this._handles; i++) {
            var handle = this._handleData[i],
                bounds = this._getBoundsInternal(handle);

            var pos = this._isVertical ? handle.offsetTop: bounds.x - outer.x;
            distances[i] = Math.abs(pos - offset);
        }

        var delta = distances[0];
        for (i = 0; i < this._handles; i++) {
            var d = distances[i];
            if (d < delta) {
                handle = this._handleData[i];
                delta = d;
                closestHandle = handle;
            }
        }

        // Determine precedent inner range
        if (this._innerDrag) {
            var index = Array.indexOf(this._handleData, closestHandle);
            var location = Sys.UI.DomElement.getLocation(closestHandle);
            var locationOffset = this._isVertical ? location.y: location.x - outer.x;

            if (locationOffset >= (offset + distances[index])) {
                // Get the handle before the one we chose
                var newHandle = this._handleData[index - 1];
                if (newHandle) {
                    closestHandle = newHandle;
                }
            }
        }
        
        return closestHandle;
    },
    
    _calculateMultiHandleSliderTargetValue: function(multiHandleSliderTarget, mouseOffset, computed) {
        /// <summary>
        /// Determines the closest value to set a bound control
        /// </summary>
        /// <param name="multiHandleSliderTarget" type="Sys.UI.DomElement">The bound control instance.</param>
        /// <param name="mouseOffset" type="Number">The relative distance of the mouse click.</param>
        /// <param name="computed" type="Boolean" mayBeNull="false" optional="true">Whether the value should be calculated or taken from the current instance.</param>
        /// <returns type="Number">The resulting value of the current target.</returns>
        var secondaryHandle,
            secondaryMultiHandleSliderTarget,
            min = this._minimum,
            max = this._maximum;

        if (this._handleUnderDrag && !multiHandleSliderTarget) {
            handle = this._handleUnderDrag;
            multiHandleSliderTarget = $get(this._handleUnderDrag.multiHandleSliderTargetID);
            if (this._innerDrag) {
                var primary = Array.indexOf(this._handleData, handle);
                secondaryHandle = this._handleData[primary + 1];
                if (!secondaryHandle) {
                    // On the last handle; use the previous instead
                    secondaryHandle = this._handleData[primary - 1];
                }
                secondaryMultiHandleSliderTarget = $get(secondaryHandle.multiHandleSliderTargetID);
            }
        }

        var handle = multiHandleSliderTarget.Handle, value = multiHandleSliderTarget.value;

        if (value && !computed) {
            if (typeof(value) !== 'number') {
                try {
                    value = parseFloat(value);
                } catch(ex) {
                    value = Number.NaN;
                }
            }

            if (isNaN(value)) {
                value = this._minimum;
            }
            
            // Range constraints
            val = Math.max(Math.min(value, max), min);
        } else {
            var handleBounds = this._getBoundsInternal(handle), 
                railBounds = this._getOuterBounds(),
                mark = (mouseOffset) ? mouseOffset - handleBounds.width / 2: handleBounds.x - railBounds.x,
                extent = railBounds.width - handleBounds.width, percent = mark / extent;

            val = Math.max(Math.min(value, max), min);
            val = (mark === 0) ? min : (mark === (railBounds.width - handleBounds.width)) ? max : min + percent * (max - min);
        }

        // Steps
        if (this._steps > 0) {
            val = this._getNearestStepValue(val);
        }

        // Range constraints
        val = Math.max(Math.min(val, max), min);

        // Collision
        var previousControls = [],
            nextControls = [], 
            cp = 0, 
            cn = 0, 
            block, 
            prev = true;
        
        for (var i = 0; i < this._handles; i++) {
            var vc = this._multiHandleSliderTargets[i];
            if (!vc.ControlID.match(multiHandleSliderTarget.id)) {
                if (prev) {
                    previousControls[cp] = this._multiHandleSliderTargets[i];
                    cp++;
                } else {
                    nextControls[cn] = this._multiHandleSliderTargets[i];
                    cn++;
                }
            } else {
                prev = false;
            }
        }
        
        if (cp > 0) {
            // GW code change, to allow multi targets that are not textboxes
            var localValue = $get(previousControls[cp - 1].ControlID).value;
            if (localValue == undefined)
                localValue = $get(previousControls[cp - 1].ControlID).innerText || $get(previousControls[cp - 1].ControlID).textContent;
            p = parseFloat(localValue);
            // was var p = parseFloat($get(previousControls[cp - 1].ControlID).value);
            val = Math.max(val, p);
            block = val === p;
        }

        if (cn > 0) {
            // GW code change, to allow multi targets that are not textboxes
            var localValue = $get(nextControls[0].ControlID).value;
            if (localValue == undefined)
                localValue = $get(nextControls[0].ControlID).innerText || $get(nextControls[0].ControlID).textContent;
            var n = parseFloat(localValue);
            // was var n = parseFloat($get(nextControls[0].ControlID).value);
            val = Math.min(val, n);
            block = val === n;
        }

        if (secondaryHandle) {
            var delta = val - parseFloat(value),
                secondaryValue = parseFloat(secondaryMultiHandleSliderTarget.value),
                secondaryVal = secondaryValue + delta;

            // Find next maximum if there are other handles
            var nextIndex = Array.indexOf(this._handleData, secondaryHandle) + 1;
            if (nextIndex < this._multiHandleSliderTargets.length) {
                var nextMultiHandleSliderTargetID = this._multiHandleSliderTargets[nextIndex].ControlID;
            }
            if (nextMultiHandleSliderTargetID) {
                var nextMultiHandleSliderTarget = $get(nextMultiHandleSliderTargetID);
            }
            if (nextMultiHandleSliderTarget) {
                var nextValue = nextMultiHandleSliderTarget.value;
            }

            if (secondaryVal > (nextValue || max)) {
                secondaryVal = secondaryValue;
                val = value;
                block = true;
            }
        }
        
        if (!block && (Math.max(val, max) === max && Math.min(val, min) === min)) {
            this.beginUpdate();
            
            val = Math.max(Math.min(val, max), min);
            this._setMultiHandleSliderTargetValue(multiHandleSliderTarget, val);
            
            if (secondaryHandle) {
                this._setMultiHandleSliderTargetValue(secondaryMultiHandleSliderTarget, secondaryVal);
            }
            this.endUpdate();
        } else {
            this.beginUpdate();

            if (this._handles === 1) {
                this._setMultiHandleSliderTargetValue(multiHandleSliderTarget, val);
            } else {
                multiHandleSliderTarget.value = val;
                handle.Value = val;
                this._setHandlePosition(handle, true);
            }

            if (secondaryHandle) {
                secondaryMultiHandleSliderTarget.value = secondaryVal;
                secondaryHandle.Value = secondaryVal;
                this._setHandlePosition(secondaryHandle, true);
            }

            this.endUpdate();
        }
        return val;
    },
    
    _cancelDrag: function() {
        /// <summary>
        /// Ends a drag event.
        /// </summary>
        /// <returns></returns>
        
        if (AjaxControlToolkit.MultiHandleSliderBehavior.DropPending === this) {
            AjaxControlToolkit.MultiHandleSliderBehavior.DropPending = null;
            if (this._selectStartPending) {
                $removeHandler(document, 'selectstart', this._selectStartHandler);
            }
        }
    },

    _createHandles: function() {
        /// <summary>
        /// Creates the handles elements and hover and drag effect callbacks.
        /// </summary>
        /// <returns></returns>
        
        // Create handle DOM elements
        for (var i = 0; i < this._handles; i++) {            
            // Assemble the handle data
            var handleName = this.get_id() + "_handle_" + i, 
                v = this._isVertical,
                hideStyle = '',
                hoverStyle = '',
                dragStyle = '';
            
            // Backwards compatibility: Single handled slider image by URL
            if(this._handles === 1 && this._handleImageUrl)
            {
                var img = "<img id='" + this.get_id() + "_handleImage' src='" + this._handleImageUrl + "' alt='' />";
            }
            
            // Assemble the handle markup
            var anchorStart = "<a id='" + handleName + "' ";
            var innerImg = img ? img : "";
            var anchorEnd = "><div>" + innerImg + "</div></a>";
            this._outer.innerHTML += anchorStart + anchorEnd;                     
        }

        // Create handle data container
        this._handleData = [this._handles];
        
        for (i = 0; i < this._handles; i++) {
            // Detect handle style and events
            var styleInfo = this._cssClass ? this._cssClass: "ajax__multi_slider_default";
            var handleCss = this._multiHandleSliderTargets[i].HandleCssClass;

            if (handleCss || this._cssClass) {
                // Resolve custom class
                hideStyle = handleCss ? handleCss + " " : this._cssClass + " ";
                hoverStyle = hideStyle;
                dragStyle = hideStyle;
                
                var dragCss = handleCss, 
                    hoverCss = handleCss;

                hideStyle = !handleCss ? hideStyle + this._isVertical ? 'handle_vertical': 'handle_horizontal': hideStyle + handleCss;
                hoverStyle = !hoverCss ? hoverStyle + this._isVertical ? 'handle_vertical_hover': 'handle_horizontal_hover': hoverStyle + hoverCss;
                dragStyle = !dragCss ? dragStyle + this._isVertical ? 'handle_vertical_down': 'handle_horizontal_down': dragStyle + dragCss;
            }

            // Build the handle hover effects from callbacks
            this._handleCallbacks = {
                    mouseover: Function.createCallback(this._onShowHover, { vertical : v, custom : hoverStyle }),
                    mouseout: Function.createCallback(this._onHideHover, { vertical : v, custom : hideStyle }),
                    mousedown: Function.createCallback(this._onShowDrag, { vertical : v, custom : dragStyle }),
                    mouseup: Function.createCallback(this._onHideDrag, { vertical : v, custom : hideStyle })                    
            };
           
            // Assign element to container
            this._handleData[i] = this._outer.childNodes[i];
            this._handleData[i].style.overflow = 'hidden';
            
            // Attach callbacks as events to given handle
            $addHandlers(this._handleData[i], this._handleCallbacks);           

            // Process handle styles
            handleCss = this._multiHandleSliderTargets[i].HandleCssClass;
            if (handleCss) {
                Sys.UI.DomElement.addCssClass(this._handleData[i], styleInfo);
                Sys.UI.DomElement.addCssClass(this._handleData[i], handleCss);
            } else {
                // Don't try this for custom styles; they might have arbitrary graphics
                this._handleData[i].className = this._isVertical ? 'handle_vertical': 'handle_horizontal';
            }

            // Map handle targets
            if (this._multiHandleSliderTargets) {
                var multiHandleSliderTargetID = this._multiHandleSliderTargets[i].ControlID;
                this._handleData[i].multiHandleSliderTargetID = multiHandleSliderTargetID;
            }

            // Opera-friendly explicit style settings
            this._handleData[i].style.left = '0px';
            this._handleData[i].style.top = '0px';
            
            // Animation
            if (this._steps < 1) {
                if (this._enableHandleAnimation) {
                    var animation = new AjaxControlToolkit.Animation.LengthAnimation(this._handleData[i], this._handleAnimationDuration, 100, 'style');

                    animation.add_ended(Function.createDelegate(this, this._onAnimationEnded));
                    animation.add_step(Function.createDelegate(this, this._onAnimationStep));
                    this._handleData[i].Animation = animation;
                }
            } else {
                this._enableHandleAnimation = false;
            }
        }
    },

    _createInnerRail: function() {
        /// <summary>
        /// Creates the inner rail.
        /// </summary>
        /// <returns></returns>
        
        if (this._handles > 1 && this._showInnerRail) {
            this._inner = document.createElement('DIV');
            this._inner.id = this.get_id() + '_inner';
            this._inner.style.outline = "none";
            this._inner.tabIndex = -1;
        }
    },

    _createOuterRail: function() {
        /// <summary>
        /// Creates the outer rail.
        /// </summary>
        /// <returns></returns>
        
        this._outer = document.createElement('DIV');
        this._outer.id = this.get_id() + '_outer';
        this._outer.style.outline = "none";
        this._outer.tabIndex = -1;
    },
    
    _createWrapper: function() {
        /// <summary>
        /// Creates the relatively positioned wrapper DIV to contain the slider.
        /// </summary>
        /// <returns></returns>
        
        this._wrapper = document.createElement("DIV");
        this._wrapper.style.position = "relative";
        this._wrapper.style.outline = "none";
    },
    
    _disposeHandlers: function() {
        /// <summary>
        /// Disposes event handlers on the slider.
        /// </summary>
        
        if (!this._isReadOnly) {
            // Global Handlers
            $removeHandler(document, 'mouseup', this._mouseUpHandler);
            $removeHandler(document, 'mouseout', this._mouseOutHandler);

            if (this._outer) {
                // Mouse wheel support
                if (this._outer.addEventListener) {
                    this._outer.removeEventListener('DOMMouseScroll', this._mouseWheelHandler, false);
                } else {
                    this._outer.detachEvent('onmousewheel', this._mouseWheelHandler);
                }
                $common.removeHandlers(this._outer, this._outerDelegates);
            }

            for (var i = 0; i < this._handles; i++) {
                if(this._handleDelegates) {
                    $common.removeHandlers(this._handleData[i], this._handleDelegates);
                }
                if(this._handleCallbacks) {
                    //$common.removeHandlers(this._handleData[i], this._handleCallbacks);
                    $clearHandlers(this._handleData[i]);
                }
            }
            
            this._handleDelegates = null;
            this._handleCallbacks = null;

            if (this._inner && this._showInnerRail && this._innerDelegates) {                
                $common.removeHandlers(this._inner, this._innerDelegates);
            }
            
            // Global Handlers
            this._selectStartHandler = null;
            this._mouseUpHandler = null;
            this._mouseOutHandler = null;
            this._mouseWheelHandler = null;
            this._mouseOverHandler = null;
            this._keyDownHandler = null;
        }
    },

    _disposeMultiHandleSliderTargets: function() {
        /// <summary>
        /// Disposes the bound control elements.
        /// </summary>
        /// <returns></returns>
        
        if (this._multiHandleSliderTargets) {
            for (var i = 0; i < this._handles; i++) {
                var multiHandleSliderTarget = this._multiHandleSliderTargets[i];
                var isInput = multiHandleSliderTarget && multiHandleSliderTarget.nodeName === 'INPUT';

                if (isInput) {
                    $removeHandler(multiHandleSliderTarget, 'change', multiHandleSliderTarget.ChangeHandler);
                    $removeHandler(multiHandleSliderTarget, 'keypress', multiHandleSliderTarget.KeyPressHandler);
                    
                     multiHandleSliderTarget.ChangeHandler = null;
                     multiHandleSliderTarget.KeyPressHandler = null;
                }
            }
        }
    },
    
    _ensureBinding: function(multiHandleSliderTarget) {
        /// <summary>
        /// Ensures control binding to a Label or TextBox element.
        /// </summary>
        
        if (multiHandleSliderTarget) {
            var value = multiHandleSliderTarget.value;

            if (value >= this._minimum || value <= this._maximum) {
                var isInputElement = multiHandleSliderTarget && multiHandleSliderTarget.nodeName === 'INPUT';

                if (isInputElement) {
                    multiHandleSliderTarget.value = value;
                } else if (multiHandleSliderTarget) {
                    multiHandleSliderTarget.innerHTML = value;
                }
            }
        }
    },

    _enforceElementPositioning: function() {
        /// <summary>
        /// Copies any styles from the parent element to the slider wrapper.
        /// </summary>
        
        var tbPosition = {
            position: this.get_element().style.position,
            top: this.get_element().style.top,
            right: this.get_element().style.right,
            bottom: this.get_element().style.bottom,
            left: this.get_element().style.left
        };

        if (tbPosition.position !== '') {
            this._wrapper.style.position = tbPosition.position;
        }
        if (tbPosition.top !== '') {
            this._wrapper.style.top = tbPosition.top;
        }
        if (tbPosition.right !== '') {
            this._wrapper.style.right = tbPosition.right;
        }
        if (tbPosition.bottom !== '') {
            this._wrapper.style.bottom = tbPosition.bottom;
        }
        if (tbPosition.left !== '') {
            this._wrapper.style.left = tbPosition.left;
        }
    },
    
    _getNearestStepValue: function(value) {
        /// <summary>
        /// Determines the closest discrete step value from a given value.
        /// </summary>
        /// <param name="value" type="Number">The value to check against steps</param>
        /// <returns type="Number">The nearest discrete step value from the specified value.</returns>
        
        if (this._steps === 0) return value;

        var extent = this._maximum - this._minimum;
        if (extent === 0) return value;

        if ((this._steps - 1) !== 0) {
            var delta = extent / (this._steps - 1);
        } else {
            return value;
        }

        return Math.round(value / delta) * delta;
    },
    
    _getStepValues: function() {
        /// <summary>
        /// Computes a list of possible slider values based on steps and constraints.
        /// </summary>
        /// <returns></returns>
        
        var steps = [this._steps],
            extent = this._maximum - this._minimum;
       
        var increment = extent / (this._steps - 1);
        steps[0] = this._minimum;
        
        for (var i = 1; i < this._steps; i++) {
            steps[i] = this._minimum + (increment * i);
        }
        return steps;
    },
    
    _handleSlide: function(decrement) {
        /// <summary>
        /// Increments or decrements the value of all handles.
        /// </summary>
        /// <param name="decrement" type="Boolean" mayBeNull="false" optional="true">If true, decrement the slider value; otherwise, increment it.</param>
        /// <returns></returns>
        
        // Test the first handle when decrementing, last if incrementing
        var index = decrement ? 0 : this._handles - 1, 
            start = decrement ? 1 : 0,
            end = decrement ? this._handles : this._handles - 1,
            multiHandleSliderTargetID = this._handleData[index].multiHandleSliderTargetID;
            
        if (this._slideMultiHandleSliderTarget(multiHandleSliderTargetID, decrement)) {
            // Increment
            for (var i = start; i < end; i++) {
                multiHandleSliderTargetID = this._handleData[i].multiHandleSliderTargetID;
                this._slideMultiHandleSliderTarget(multiHandleSliderTargetID, decrement);
            }
        }
        this._initializeInnerRail();
    },
    
    _initializeDragHandle: function(handle) {
        /// <summary>
        /// Creates a hidden drag handle element for managing drag functions.
        /// This hidden element is appended to the document's first form.
        /// </summary>
        /// <param name="handle" type="Sys.UI.DomElement" domElement="true">The handle element to create a drag handle for.</param>
        /// <returns></returns>
        
        var dragHandle = handle.DragHandle = document.createElement('DIV');

        dragHandle.style.position = 'absolute';
        dragHandle.style.width = '1px';
        dragHandle.style.height = '1px';
        dragHandle.style.overflow = 'hidden';
        dragHandle.style.background = 'none';

        // Adding to the body can produce style breaks in some layouts
        document.forms[0].appendChild(handle.DragHandle);
    },
    
    _initializeHandlers: function() {
        /// <summary>
        /// Adds event handlers to the slider.
        /// </summary>
        /// <returns></returns>
        
        if (!this._isReadOnly) {
            // Global Handlers
            this._selectStartHandler = Function.createDelegate(this, this._onSelectStart);
            this._mouseUpHandler = Function.createDelegate(this, this._onMouseUp);
            this._mouseOutHandler = Function.createDelegate(this, this._onMouseOut);
            this._mouseWheelHandler = Function.createDelegate(this, this._onMouseWheel);
            this._mouseOverHandler = Function.createDelegate(this, this._onMouseOver);
            this._keyDownHandler = Function.createDelegate(this, this._onKeyDown);            
            
            $addHandler(document, 'mouseup', this._mouseUpHandler);
            $addHandler(document, 'mouseout', this._mouseOutHandler);

            this._handleDelegates = {
                mousedown: Function.createDelegate(this, this._onMouseDown),
                dragstart: Function.createDelegate(this, this._IEDragDropHandler),
                drag: Function.createDelegate(this, this._IEDragDropHandler),
                dragEnd: Function.createDelegate(this, this._IEDragDropHandler)
            };

            for (var i = 0; i < this._handles; i++) {
                $addHandlers(this._handleData[i], this._handleDelegates);
            }

            if (this._outer) {
                // Mouse wheel support
                if (this._enableMouseWheel) {
                    if (this._outer.addEventListener) {
                        this._outer.addEventListener('DOMMouseScroll', this._mouseWheelHandler, false);
                    } else {
                        this._outer.attachEvent('onmousewheel', this._mouseWheelHandler);
                    }
                }

                this._outerDelegates = {
                    click: Function.createDelegate(this, this._onOuterRailClick),
                    mouseover: Function.createDelegate(this, this._mouseOverHandler),
                    keydown: Function.createDelegate(this, this._keyDownHandler)
                };
                $addHandlers(this._outer, this._outerDelegates);
            }

            if (this._inner && this._showInnerRail) {
                this._innerDelegates = {
                    click: Function.createDelegate(this, this._onInnerRailClick),
                    mousedown: Function.createDelegate(this, this._onMouseDownInner),
                    mouseup: Function.createDelegate(this, this._onMouseUpInner),
                    mouseout: Function.createDelegate(this, this._onMouseOutInner),
                    mousemove: Function.createDelegate(this, this._onMouseMoveInner),
                    dragStart: Function.createDelegate(this, this._IEDragDropHandler),
                    drag: Function.createDelegate(this, this._IEDragDropHandler),
                    dragEnd: Function.createDelegate(this, this._IEDragDropHandler)
                };
                $addHandlers(this._inner, this._innerDelegates);
            }
        }
    },
    
    _initializeHandles: function() {
        /// <summary>
        /// Initializes data and events on handle elements.
        /// </summary>
        /// <returns></returns>
        
        // Restore client state
        var state = this.get_ClientState();
        if (state) {
            var handleStates = state.split(',', this._handles);
        }

        for (var i = 0; i < this._handles; i++) {
            var handle = this._handleData[i],
                decimalPlaces = this._multiHandleSliderTargets[i].Decimals;
            
            if (handleStates) {
                handle.Value = parseFloat(handleStates[i]);
            }

            this._initializeMultiHandleSliderTarget(handle.multiHandleSliderTargetID, decimalPlaces, handle);
            this._initializeHandleValue(handle);
            this._setHandlePosition(handle, true);
            this._initializeDragHandle(handle);
        }
    },
    
    _initializeHandleValue: function(handle) {
        /// <summary>
        /// Initializes the starting value of a given handle.
        /// </summary>
        /// <param name="handle" type="Sys.UI.DomElement" domElement="true">The handle element.</param>
        /// <returns></returns>
        
        // Check if value already exists from state
        if (!handle.Value) {
            try {
                var multiHandleSliderTarget = $get(handle.multiHandleSliderTargetID),
                    isInput = multiHandleSliderTarget && multiHandleSliderTarget.nodeName === 'INPUT',
                    handleValue = parseFloat(isInput ? multiHandleSliderTarget.value : multiHandleSliderTarget.innerHTML);
            } catch(ex) {
                handleValue = Number.NaN;
            }

            // Differentiate between a label and a textbox
            if (isNaN(handleValue)) {
                handle.Value = this._minimum;
                if(isInput) {
                    multiHandleSliderTarget.value = handle.Value;
                } else {
                    multiHandleSliderTarget.innerHTML = handle.Value;
                }
            } else {
                handle.Value = handleValue;
            }
        }
    },

    _initializeInnerRail: function() {
        /// <summary>
        /// Initializes the appearance and location of the inner rail. Called multiple times to
        /// recalculate the inner rail's position.
        /// </summary>
        /// <returns></returns>
        
        if (this._inner && this._showInnerRail) {
            var firstIndex = 0, lastIndex = this._handles - 1,
                handle = this._handleData[firstIndex],
                lastHandle = this._handles > 1 ? this._handleData[lastIndex] : null;

            // Set the inner rail
            if (lastHandle) {
            
                // firstOffset and lastOffset account for user-defined offset handle width
                var handleWidth = parseInt(this._getBoundsInternal(handle).width, 10),
                    handleLeft = parseInt(this._isVertical ? handle.style.top : handle.style.left, 10),
                    handleRight = parseInt(this._isVertical ? lastHandle.style.top : lastHandle.style.left, 10),
                    firstOffset = parseInt(this._multiHandleSliderTargets[firstIndex].Offset, 10),
                    lastOffset = parseInt(this._multiHandleSliderTargets[lastIndex].Offset, 10);
                
                handleLeft += firstOffset;
                handleRight += lastOffset;

                if (this._isVertical) {
                    this._inner.style.top = handleLeft + "px";
                    this._inner.style.height = handleRight + handleWidth - handleLeft + "px";
                } else {
                    this._inner.style.left = handleLeft + "px";
                    this._inner.style.width = (handleRight + handleWidth - handleLeft) + "px";
                }

                // Slide the door
                if (this._innerRailStyle === AjaxControlToolkit.MultiHandleInnerRailStyle.SlidingDoors) {
                    this._inner.style.backgroundPosition = this._isVertical ? "0 -" + handleLeft + "px": "-" + handleLeft + "px 0";
                }
            }
        }
    },
    
    _initializeMultiHandleSliderTarget: function(multiHandleSliderTargetID, decimalPlaces, handle) {
        /// <summary>
        /// Initializes a given element that is bound to a handle.
        /// </summary>
        /// <param name="multiHandleSliderTargetID" type="String">The ID of the control element.</param>
        /// <param name="decimalPlaces" type="Number">The number of decimal places to format the control's value.</param>
        /// <param name="handle" type="Sys.UI.DomElement" domElement="true">The handle element.</param>
        /// <returns></returns>
        
        if (multiHandleSliderTargetID) {
            var multiHandleSliderTarget = $get(multiHandleSliderTargetID);

            if (handle.Value) {
                // Set from state
                multiHandleSliderTarget.value = handle.Value;
            }

            multiHandleSliderTarget.Handle = handle;
            multiHandleSliderTarget.Decimals = decimalPlaces;
            multiHandleSliderTarget.OldValue = multiHandleSliderTarget.value;
            multiHandleSliderTarget.onchange = "setValue(this, " + multiHandleSliderTarget.value + ")";
            
            if (!multiHandleSliderTarget.Decimals) {
                multiHandleSliderTarget.Decimals = 0;
            }

            var isInput = multiHandleSliderTarget && multiHandleSliderTarget.nodeName === 'INPUT';
            if (isInput) {
                multiHandleSliderTarget.KeyPressHandler = Function.createDelegate(this, this._onMultiHandleSliderTargetKeyPressed);
                multiHandleSliderTarget.ChangeHandler = Function.createDelegate(this, this._onMultiHandleSliderTargetChange);
                
                $addHandler(multiHandleSliderTarget, 'keypress', multiHandleSliderTarget.KeyPressHandler);
                $addHandler(multiHandleSliderTarget, 'change', multiHandleSliderTarget.ChangeHandler);
            }
        }
    },
    
    _initializeSlider: function() {
        /// <summary>
        /// Creates the generated slider DOM components.
        /// </summary>
        /// <returns></returns>
        
        AjaxControlToolkit.DragDrop.registerDropTarget(this);

        this._initializeHandles();
        this._initializeHandlers();
        this._initializeInnerRail();
        this._initialized = true;

        this._raiseEvent('load');
    },

    _resetDragHandle: function(handle) {
        /// <summary>
        /// Resets the position of the hidden drag handle.
        /// </summary>
        /// <param name="handle" type="Sys.UI.DomElement" domElement="true">The handle element.</param>
        /// <returns></returns>
        
        var handleBounds = $common.getBounds(handle);
        $common.setLocation(handle.DragHandle, {
            x: handleBounds.x,
            y: handleBounds.y
        });
    },

    _resolveNamingContainer: function() {
        /// <summary>
        /// Uses the behavior name and client state to resolve the inner control IDs.
        /// </summary>
        /// <returns></returns>
        
        if (this._multiHandleSliderTargets && !this._boundControlID) {
            var index = this._clientStateFieldID.lastIndexOf(this._id),
                token = this._clientStateFieldID.substring(0, index);
            
            for (var i = 0; i < this._handles; i++) {
                this._multiHandleSliderTargets[i].ControlID = token + this._multiHandleSliderTargets[i].ControlID;
            }
        }
    },
    
    _saveState: function() {
        /// <summary>
        /// Sets the values of all handle controls in client state.
        /// </summary>
        /// <returns></returns>
        
        var state = [this._handles];
        for (var i = 0; i < this._handles; i++) {
            state[i] = $get(this._multiHandleSliderTargets[i].ControlID).value;
        }
        
        this.set_ClientState(state.join(','));
    },

    _setHandlePosition: function(handle, allowAnimation) {
        /// <summary>
        /// Sets the location of the handle when changing slider values.
        /// </summary>
        /// <param name="handle" type="Sys.UI.DomElement" domElement="true">The handle element.</param>
        /// <param name="allowAnimation" type="Boolean">If true, animate the transition to the new handle value; otherwise, do nothing.</param>
        /// <returns></returns>
        
        var min = this._minimum, max = this._maximum, value = handle.Value,
            animate = this._enableHandleAnimation && this._animationPending && allowAnimation,
            handleBounds = this._getBoundsInternal(handle),
            railBounds = this._getOuterBounds();

        if (handleBounds.width <= 0 && railBounds.width <= 0) {
            handleBounds.width = parseInt($common.getCurrentStyle(handle, 'width'), 10);
            railBounds.width = parseInt($common.getCurrentStyle(this._outer, 'width'), 10);
            
            if (handleBounds.width <= 0 || railBounds.width <= 0) {
                throw Error.argument('width', AjaxControlToolkit.Resources.MultiHandleSlider_CssHeightWidthRequired);
            }
        }

        var extent = max - min, fraction = (value - min) / extent;
        var o = Math.round(fraction * (railBounds.width - handleBounds.width));
        var offset = (value === min) ? 0: (value === max) ? (railBounds.width - handleBounds.width) : o;

        if (animate) {
            handle.Animation.set_startValue(handleBounds.x - railBounds.x);
            handle.Animation.set_endValue(offset);
            handle.Animation.set_propertyKey(this._isVertical ? 'top': 'left');
            handle.Animation.play();

            this._animationPending = false;
        } else {
            o = offset + 'px';
            if (this._isVertical) {
                handle.style.top = o;
            } else {
                handle.style.left = o;
            }
        }
    },

    _setRailStyles: function() {
        /// <summary>
        /// Determines from configuration the class names to use for slider elements.
        /// </summary>
        /// <returns></returns>
        
        // Backwards-compatibility: rail style on single handle slider
        if(!this._inner && this._railCssClass) {
            this._outer.className = this._railCssClass;
            return;
        }        
        var styleInfo = this._cssClass ? this._cssClass: "ajax__multi_slider_default";

        Sys.UI.DomElement.addCssClass(this.get_element(), styleInfo);
        Sys.UI.DomElement.addCssClass(this._outer, styleInfo);
        Sys.UI.DomElement.addCssClass(this._wrapper, styleInfo);

        if (this._inner) {
            Sys.UI.DomElement.addCssClass(this._inner, styleInfo);

            var outer = this._isVertical ? 'outer_rail_vertical': 'outer_rail_horizontal',
                inner = this._isVertical ? 'inner_rail_vertical': 'inner_rail_horizontal';

            Sys.UI.DomElement.addCssClass(this._outer, outer);
            Sys.UI.DomElement.addCssClass(this._inner, inner);
        } else {
            outer = this._isVertical ? 'inner_rail_vertical': 'inner_rail_horizontal';

            Sys.UI.DomElement.addCssClass(this._outer, outer);
        }
    },
    
    _setMultiHandleSliderTargetValue: function(multiHandleSliderTarget, value) {
        /// <summary>
        /// Sets the value of a bound control.
        /// </summary>
        /// <param name="multiHandleSliderTarget" type="Sys.UI.DomElement" domElement="true">The bound control element.</param>
        /// <param name="value" type="Number">The value to set the target to.</param>
        /// <returns></returns>
        
        var oldValue = multiHandleSliderTarget.OldValue, newValue = value;

        if (oldValue === newValue && this._isReadOnly) {
            multiHandleSliderTarget.value = oldValue;
        } else {
            if (!this.get_isUpdating()) {
                newValue = this._calculateMultiHandleSliderTargetValue(multiHandleSliderTarget);
            }

            multiHandleSliderTarget.value = newValue.toFixed(multiHandleSliderTarget.Decimals);
            this._ensureBinding(multiHandleSliderTarget);

            if (!Number.isInstanceOfType(multiHandleSliderTarget.value)) {
                try {
                    multiHandleSliderTarget.value = parseFloat(multiHandleSliderTarget.value);
                } catch(ex) {
                    multiHandleSliderTarget.value = Number.NaN;
                }
            }

            if (this._tooltipText) {
                var handle = multiHandleSliderTarget.Handle;
                handle.alt = handle.title = String.format(this._tooltipText, multiHandleSliderTarget.value);
            }

            if (this._initialized) {
                multiHandleSliderTarget.Handle.Value = newValue;
                this._setHandlePosition(multiHandleSliderTarget.Handle, true);
                // Backwards compatibility for single-handled slider: set element value
                if(this._handles === 1) {
                    this.get_element().value = newValue;
                }

                if (multiHandleSliderTarget.value !== oldValue) {
                    multiHandleSliderTarget.OldValue = multiHandleSliderTarget.value;
                    this._initializeInnerRail();

                    // Prevent click after drag
                    if (this._innerDrag) {
                        this._blockInnerClick = true;
                    }
                    this._raiseEvent('valueChanged');

                    if (this.get_isUpdating()) {
                        if (!this._raiseChangeOnlyOnMouseUp) {
                            $common.tryFireEvent(this.get_element(), "change");
                        }
                    }
                }
            }
        }

        // Store all values in client state
        this._saveState();
    },
    
    _setValueFromMultiHandleSliderTarget: function(multiHandleSliderTarget) {
        /// <summary>
        /// Sets the value of the slider based on the value inside a bound control.
        /// </summary>
        /// <param name="multiHandleSliderTarget" type="Sys.UI.DomElement" domElement="true">The bound control instance.</param>
        /// <returns></returns>
        
        this.beginUpdate();
        if (multiHandleSliderTarget) {
            if (!this._isReadOnly) {
                if (this._handles === 1 && this._steps > 0) {
                    // Bypass all the calculations since we already know the discrete value
                    this._setMultiHandleSliderTargetValue(multiHandleSliderTarget, multiHandleSliderTarget.value);
                }
                this._calculateMultiHandleSliderTargetValue(multiHandleSliderTarget);
            } else {
                this._setMultiHandleSliderTargetValue(multiHandleSliderTarget, multiHandleSliderTarget.OldValue);
            }
        }
        this.endUpdate();
    },

    _slideMultiHandleSliderTarget: function(multiHandleSliderTargetID, decrement) {
        /// <summary>
        /// Increments the value of a bound control.
        /// </summary>
        /// <param name="multiHandleSliderTargetID" type="String">The ID of the bound control element.</param>
        /// <param name="decrement" type="Boolean" mayBeNull="false" optional="true">If true, decrement the target's value; otherwise, increment it.</param>
        /// <returns></returns>
        
        var multiHandleSliderTarget = $get(multiHandleSliderTargetID),
            oldValue = multiHandleSliderTarget.value,
            newValue, i;

        if (this._steps > 0) {
            var stepValues = this._getStepValues(),
                oldStep = this._getNearestStepValue(oldValue);
                
            newValue = oldStep;

            if (decrement) {
                // Decrement
                for (i = this._steps - 1; i > -1; i--) {
                    if (stepValues[i] < oldStep) {
                        newValue = stepValues[i];
                        break;
                    }
                }
            } else {
                // Increment
                for (i = 0; i < this._steps; i++) {
                    if (stepValues[i] > oldStep) {
                        newValue = stepValues[i];
                        break;
                    }
                }
            }
        } else {
            var prevValue = parseFloat(multiHandleSliderTarget.value);
            newValue = decrement ? prevValue - parseFloat(this._increment) : prevValue + parseFloat(this._increment);
        }

        multiHandleSliderTarget.value = newValue;
        this._setValueFromMultiHandleSliderTarget(multiHandleSliderTarget);
        return multiHandleSliderTarget.value == newValue;
    },
    
    _startDragDrop: function(handle) {
        /// <summary>
        /// Begins a drag and drop operation on the specified handle. Drag operations
        /// affect the hidden drag handle on the element, not the element itself.
        /// </summary>
        /// <param name="handle" type="Sys.UI.DomElement" domElement="true">The handle element under drag</param>
        /// <returns></returns>
        
        this._resetDragHandle(handle);
        this._handleUnderDrag = handle;

        AjaxControlToolkit.DragDrop.startDragDrop(this, handle.DragHandle, null);
    },
    
    // Event Handlers
    
    _onAnimationEnded: function() {
        /// <summary>
        /// Called when an animation effect is complete.
        /// </summary>
        /// <returns></returns>
        
        this._initializeInnerRail();
    },
    
    _onAnimationStep: function() {
        /// <summary>
        /// Called when an animation step is reached.
        /// </summary>
        /// <returns></returns>
        
        this._initializeInnerRail();
    },
    
    _onHideDrag : function(e, p)
    {
        /// <summary>
        /// Reverses the class name used for drag effects when the callback event is raised.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">The event source.</param>
        /// <param name="p" type="">The callback parameter object, containing custom style and orientation fields.</param>
        /// <returns></returns>
        
        this.className = p.custom && p.custom.length > 0 ? p.custom: p.vertical ? 'handle_vertical': 'handle_horizontal';
    },
    
    _onHideHover : function(e, p)
    {
         /// <summary>
        /// Reverses the class name used for hover effects when the callback event is raised.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">The event source.</param>
        /// <param name="p" type="">The callback parameter object, containing custom style and orientation fields.</param>
        /// <returns></returns>
        
        this.className = p.custom && p.custom.length > 0 ? p.custom: p.vertical ? 'ajax__multi_slider_default handle_vertical': 'ajax__multi_slider_default handle_horizontal';        
    },
    
    _onInnerRailClick: function(e) {
        /// <summary>
        /// Handler for the inner rail's click event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        if (this._enableRailClick) {
            var target = e.target;

            if (target === this._inner && !this._blockInnerClick) {
                this._animationPending = true;
                this._onInnerRailClicked(e);
            } else {
                this._blockInnerClick = false;
            }
        }
    },

    _onInnerRailClicked: function(e) {
        /// <summary>
        /// Called when the inner rail's click event is handled.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        var offset = this._calculateInnerRailOffset(e);
        this._calculateClick(offset);
    },
    
    _onKeyDown: function(e) {
        /// <summary>
        /// Handler for the outer rail's keydown event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns type="Boolean">Whether the operation was successful.</returns>
        
        if (this._enableKeyboard) {        
            var evt = new Sys.UI.DomEvent(e),
                handled = false;
            
            switch (evt.keyCode || evt.rawEvent.keyCode) {
            case Sys.UI.Key.up:
            case Sys.UI.Key.left:
                if (!handled) {
                    this._handleSlide(true);
                    evt.preventDefault();
                    handled = true;
                }
                return false;
            case Sys.UI.Key.down:
            case Sys.UI.Key.right:
                if (!handled) {
                    this._handleSlide(false);
                    evt.preventDefault();
                    handled = true;
                }
                return false;
            default:
                return false;
            }
        }
    },
    
    _onMouseOver: function(e) {
        /// <summary>
        /// Handler for the outer rail's mouseover event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        this._outer.focus();
    },

    _onMouseWheel: function(e) {
        /// <summary>
        /// Handler for the outer rail's mouse wheel event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns type="Boolean">Whether the operation was successful.</returns>
        
        var delta = 0;
        if (e.wheelDelta) {
            delta = e.wheelDelta / 120;
            if (Sys.Browser.agent === Sys.Browser.Opera) {
                delta = -delta;
            }
        } else if (e.detail) {
            delta = -e.detail / 3;
        }

        if (delta) {
            this._handleSlide(delta <= 0);
        }

        if (e.preventDefault) {
            e.preventDefault();
        }
        return false;
    },

    _onMouseUp: function(e) {
        /// <summary>
        /// Handler for the outer rail's mouseup event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        window._event = e;
        e.preventDefault();

        this._cancelDrag();
    },

    _onMouseOut: function(e) {
        /// <summary>
        /// Handler for the outer rail's mouseout event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        window._event = e;
        e.preventDefault();

        this._outer.blur();
        if (this._handleUnderDrag) {
            this._cancelDrag();
        }
    },

    _onMouseOutInner: function(e) {
        /// <summary>
        /// Handler for the inner rail's mouseout event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        window._event = e;
        e.preventDefault();

        this._inner.blur();
        if (this._innerDrag) {
            this._cancelDrag();
        }
    },

    _onMouseDown: function(e) {
        /// <summary>
        /// Handler for the outer rail's mousedown event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        window._event = e;
        e.preventDefault();

        if (!AjaxControlToolkit.MultiHandleSliderBehavior.DropPending) {
            AjaxControlToolkit.MultiHandleSliderBehavior.DropPending = this;

            $addHandler(document, 'selectstart', this._selectStartHandler);
            this._selectStartPending = true;

            var handle = e.target;
            this._startDragDrop(handle);
        }
    },

    _onMouseDownInner: function(e) {
        /// <summary>
        /// Handler for the inner rail's mousedown event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        window._event = e;
        e.preventDefault();

        if (this._enableInnerRangeDrag) {
            if (!this._innerDragFlag) {
                this._innerDragFlag = true;
            }
        }
    },

    _onMouseUpInner: function(e) {
        /// <summary>
        /// Handler for the inner rail's mouseup event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        if (this._enableInnerRangeDrag) {
            this._innerDragFlag = false;
        }
    },

    _onMouseMoveInner: function(e) {
        /// <summary>
        /// Handler for the inner rail's mousemove event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        window._event = e;
        e.preventDefault();

        if (this._enableInnerRangeDrag) {
            if (!this._innerDrag && this._innerDragFlag) {
                this._innerDragFlag = false;
                
                // Begin drag and drop operation for the inner rail
                if (!AjaxControlToolkit.MultiHandleSliderBehavior.DropPending) {
                    AjaxControlToolkit.MultiHandleSliderBehavior.DropPending = this;

                    $addHandler(document, 'selectstart', this._selectStartHandler);
                    this._selectStartPending = true;

                    // Dragging inner handles
                    this._innerDrag = true;

                    // Get nearest primary handle
                    var offset = this._calculateInnerRailOffset(e);
                    var handle = this._calculateClosestHandle(offset);

                    // Start drag
                    this._startDragDrop(handle);
                }
            }
        }
    },
    
    _onMultiHandleSliderTargetChange : function(e) {
        /// <summary>
        /// Handler for when a slider value changes programmatically.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        this._animationPending = true;
        var multiHandleSliderTarget = e.target;
        this._setValueFromMultiHandleSliderTarget(multiHandleSliderTarget);
        this._initializeInnerRail();
        
        e.preventDefault();
    },

    _onMultiHandleSliderTargetKeyPressed: function(e) {
        /// <summary>
        /// Handler for a slider focused key press event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        var evt = new Sys.UI.DomEvent(e);
        if (evt.charCode === 13) {
            this._animationPending = true;
            var multiHandleSliderTarget = evt.target;
            this._setValueFromMultiHandleSliderTarget(multiHandleSliderTarget);
            this._initializeInnerRail();
            evt.preventDefault();
        }
    },
    
    _onOuterRailClick: function(e) {
        /// <summary>
        /// Handler for the outer rail's click event.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info</param>
        /// <returns></returns>
        
        if (this._enableRailClick) {
            var target = e.target;

            if (target === this._outer) {
                this._animationPending = true;
                this._onOuterRailClicked(e);
            }
        }
    },

    _onOuterRailClicked: function(e) {
        /// <summary>
        /// Called when the outer rail's click event is handled.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        var offset = this._isVertical ? e.offsetY: e.offsetX;
        this._calculateClick(offset);
    },
    
    _onShowDrag : function(e, p)
    {
        /// <summary>
        /// Sets the class name used for drag effects when the callback event is raised.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent" >The event source.</param>
        /// <param name="p" type="">The callback parameter object, containing custom style and orientation fields.</param>
        /// <returns></returns>
        
        this.className = p.custom && p.custom.length > 0 ? p.custom: p.vertical ? 'ajax__multi_slider_default handle_vertical_down': 'ajax__multi_slider_default handle_horizontal_down';
    },
    
    _onShowHover : function(e, p)
    {
        /// <summary>
        /// Sets the class name used for hover effects when the callback event is raised.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent" >The event source.</param>
        /// <param name="p" type="">The callback parameter object, containing custom style and orientation fields.</param>
        /// <returns></returns>
        
        this.className = p.custom && p.custom.length > 0 ? p.custom: p.vertical ? 'ajax__multi_slider_default handle_vertical_hover': 'ajax__multi_slider_default handle_horizontal_hover';        
    },
    
    // IDragSource Implementation
    
    get_dragDataType: function() {
        /// <summary>
        /// Implementation of  <see cref="IDragSource" />.
        /// </summary>
        /// <returns type="String">The drag data type.</returns>
        
        return 'HTML';
    },

    getDragData: function() {
        /// <summary>
        /// Implementation of <see cref="IDragSource" />.
        /// </summary>
        /// <returns type="Sys.UI.DomElement" domElement="true">The drag source.</returns>
        
        return this._handleUnderDrag;
    },

    get_dragMode: function() {
        /// <summary>
        /// Implementation of <see cref="IDragSource" />.
        /// </summary>
        /// <returns type="AjaxControlToolkit.DragMode">The drag mode.</returns>
        
        return AjaxControlToolkit.DragMode.Move;
    },

    onDragStart: function() {
        /// <summary>
        /// Implementation of <see cref="IDragSource" />.
        /// </summary>
        /// <returns></returns>
        
        this._resetDragHandle(this._handleUnderDrag);
        this._raiseEvent('dragStart');
    },

    onDrag: function() {
        /// <summary>
        /// Implementation of <see cref="IDragSource" />.
        /// </summary>
        /// <returns></returns>
        
        var dragHandleBounds = this._getBoundsInternal(this._handleUnderDrag.DragHandle),
            handleBounds = this._getBoundsInternal(this._handleUnderDrag),
            railBounds = this._getOuterBounds(),
            handlePosition;
            
        if (this._isVertical) {
            handlePosition = {
                y: dragHandleBounds.x - railBounds.x,
                x: 0
            };
        } else {
            handlePosition = {
                x: dragHandleBounds.x - railBounds.x,
                y: 0
            };
        }

        $common.setLocation(this._handleUnderDrag, handlePosition);

        this._calculateMultiHandleSliderTargetValue(null, null, true);
        
        if (this._steps > 1) {
            this._setHandlePosition(this._handleUnderDrag, false);
        }
        this._raiseEvent('drag');
    },

    onDragEnd: function() {
        /// <summary>
        /// Implementation of <see cref="IDragSource" />.
        /// </summary>
        /// <returns></returns>
        
        this._initializeInnerRail();
        if (this._raiseChangeOnlyOnMouseUp) {
            $common.tryFireEvent(this.get_element(), "change");
        }
        this._innerDrag = false;
        this._handleUnderDrag = null;
        this._raiseEvent('dragEnd');
    },

    // IDropTarget Implementation
    
    get_dropTargetElement: function() {
        /// <summary>
        /// Implementation of <see cref="IDropTarget" />
        /// </summary>
        /// <returns type="Sys.UI.DomElement" domElement="true">The drop target element.</returns>
        
        return document.forms[0];
    },

    canDrop: function(dragMode, dataType) {
        /// <summary>
        /// Implementation of <see cref="IDropTarget" />.
        /// </summary>
        /// <param name="dragMode" type="AjaxControlToolkit.DragMode">The drag mode.</param>
        /// <param name="dataType" type="String">The data type.</param>
        /// <return type="Boolean">Whether the drop target is draggable.</return>
        
        return dataType == 'HTML';
    },

    // Not implemented
    drop: Function.emptyMethod,    
    onDragEnterTarget: Function.emptyMethod,
    onDragLeaveTarget: Function.emptyMethod,
    onDragInTarget: Function.emptyMethod,
    
    _IEDragDropHandler: function(e) {
        /// <summary>
        /// Handler for drag and drop in IE
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        e.preventDefault();
    },

    _onSelectStart: function(e) {
        /// <summary>
        /// Handler for when the parent element is selected.
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">Event info.</param>
        /// <returns></returns>
        
        e.preventDefault();
        return false;
    },

    // Helper Methods
    
    _getOuterBounds: function() {
        /// <summary>
        /// Gets the outer bounds.
        /// </summary>
        /// <returns type="Bounds">The boundary definition of outer rail.</returns>
        
        return this._getBoundsInternal(this._outer);
    },

    _getInnerBounds: function() {
        /// <summary>
        /// Gets the inner bounds.
        /// </summary>
        /// <returns type="Bounds">The boundary definition of the inner rail.</returns>
        
        return this._getBoundsInternal(this._inner);
    },

    _getBoundsInternal: function(element) {
        /// <summary>
        /// Gets the bounds of a given DOM element.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">The element.</param>
        /// <returns type="Bounds">The boundary definition for the element.</returns>
        
        var bounds = $common.getBounds(element);
        if (this._isVertical) {
            bounds = {
                x: bounds.y,
                y: bounds.x,
                height: bounds.width,
                width: bounds.height,
                right: bounds.right,
                left: bounds.left,
                bottom: bounds.bottom,
                location: {
                    x: bounds.y,
                    y: bounds.x
                },
                size: {
                    width: bounds.height,
                    height: bounds.width
                }
            };
        } else {
            bounds = {
                x: bounds.x,
                y: bounds.y,
                height: bounds.height,
                width: bounds.width,
                right: bounds.right,
                left: bounds.left,
                bottom: bounds.bottom,
                location: {
                    x: bounds.x,
                    y: bounds.y
                },
                size: {
                    width: bounds.width,
                    height: bounds.height
                }
            };
        }
        return bounds;
    },

    _raiseEvent: function(eventName, eventArgs) {
        /// <summary>
        /// Raises an event.
        /// </summary>
        /// <param name="eventName" type="String">The event name.</param>
        /// <param name="eventArgs" type="Sys.EventArgs">The event arguments.</param>
        /// <returns></returns>
        
        var handler = this.get_events().getHandler(eventName);
        if (handler) {
            if (!eventArgs) {
                eventArgs = Sys.EventArgs.Empty;
            }
            handler(this, eventArgs);
        }
    },

    // Backwards-compatible Property Accessors
    
    get_Value : function() {
        /// <summary>
        /// Gets the value of a single bound control for backwards compatibility
        /// of existing slider and tests. Only to be used in this context.
        /// </summary>
        /// <returns type="Number">The value of the single handle.</returns>
        
        var bound = $get(this._boundControlID);
        return bound.value ? bound.value : 0;
    },
    set_Value : function(value) {
        /// <summary>
        /// Sets the value of a single bound control for backwards compatibility
        /// of existing slider and tests. Only to be used in this context.
        /// </summary>
        /// <param name="value" type="Number">The new value of the single handle slider.</param>
        /// <returns></returns>
        
        var multiHandleSliderTarget = $get(this._multiHandleSliderTargets[0].ControlID);
        
        this.beginUpdate();
        this._setMultiHandleSliderTargetValue(multiHandleSliderTarget, this._getNearestStepValue(value));
        this.endUpdate();
        
        // Raise an event after a hard set to enforce any constraints after the fact
        $common.tryFireEvent(multiHandleSliderTarget, "change");
    },
    
    // Property Accessors
    
    get_minimum: function() {
        /// <value type="Int32">
        /// The lowest value on the slider.
        /// </value>
        
        return this._minimum;
    },
    set_minimum: function(value) {
        /// <value type="Int32">
        /// The lowest value on the slider.
        /// </value>
        
        if (value !== this._minimum) {
            this._minimum = value;
            this.raisePropertyChanged('minimum');
        }
    },

    get_maximum: function() {
        /// <value type="Int32">
        /// The highest value on the slider.
        /// </value>
        
        return this._maximum;
    },
    set_maximum: function(value) {
        /// <value type="Int32">
        /// The highest value on the slider.
        /// </value>
        
        if (value !== this._maximum) {
            this._maximum = value;
            this.raisePropertyChanged('maximum');
        }
    },

    get_length: function() {
        /// <value type="Int32">
        /// The length of the slider rail in pixels.
        /// </value>
        
        return this._length;
    },
    set_length: function(value) {
        /// <value type="Int32">
        /// The length of the slider rail in pixels.
        /// </value>
        
        if (value !== this._length) {
            this._length = value;
            this.raisePropertyChanged('length');
        }
    },

    get_steps: function() {
        /// <value type="Int32">
        /// Determines number of discrete locations on the slider; otherwise, the slider is continous.
        /// </value>
        
        return this._steps;
    },
    set_steps: function(value) {
        /// <value type="Int32">
        /// Determines number of discrete locations on the slider; otherwise, the slider is continous.
        /// </value>
        
        var oldValue = this._steps;
        this._steps = Math.abs(value);
        this._steps = (this._steps === 1) ? 2: this._steps;
        if (oldValue !== this._steps) {
            this.raisePropertyChanged('steps');
        }
    },

    get_orientation: function() {
        /// <value type="Boolean">
        /// Determines if the slider's orientation is horizontal or vertical.
        /// </value>
        
        return this._isVertical;
    },
    set_orientation: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider's orientation is horizontal or vertical.
        /// </value>
        
        if (value !== this._isVertical) {
            this._orientation = value;
            this.raisePropertyChanged('orientation');
        }
    },

    get_enableHandleAnimation: function() {
        /// <value type="Boolean">
        /// Determines if the slider handles display an animation effect when changing position.
        /// </value>
        
        return this._enableHandleAnimation;
    },
    set_enableHandleAnimation: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider handles display an animation effect when changing position.
        /// </value>
        
        if (value !== this._enableHandleAnimation) {
            this._enableHandleAnimation = value;
            this.raisePropertyChanged('enableHandleAnimation');
        }
    },

    get_handleAnimationDuration: function() {
        /// <value type="Int32">
        /// Determines the total duration of the animation effect, in seconds.
        /// </value>
        
        return this._handleAnimationDuration;
    },
    set_handleAnimationDuration: function(value) {
        /// <value type="Int32">
        /// Determines the total duration of the animation effect, in seconds.
        /// </value>
        
        if (value !== this._handleAnimationDuration) {
            this._handleAnimationDuration = value;
            this.raisePropertyChanged('handleAnimationDuration');
        }
    },

    get_raiseChangeOnlyOnMouseUp: function() {
        /// <value type="Boolean">
        /// Determines if changes to the slider's values are raised as an event when dragging; otherwise, they are raised on drag end.
        /// </value>
        
        return this._raiseChangeOnlyOnMouseUp;
    },
    set_raiseChangeOnlyOnMouseUp: function(value) {
        /// <value type="Boolean">
        /// Determines if changes to the slider's values are raised as an event when dragging; otherwise, they are raised on drag end.
        /// </value>
        
        if (value !== this._raiseChangeOnlyOnMouseUp) {
            this._raiseChangeOnlyOnMouseUp = value;
            this.raisePropertyChanged('raiseChangeOnlyOnMouseUp');
        }
    },

    get_showInnerRail: function() {
        /// <value type="Boolean">
        /// Determines if the slider will show an inner selected range rail; otherwise, it will display as a uniform rail.
        /// </value>
        
        return this._showInnerRail;
    },
    set_showInnerRail: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider will show an inner selected range rail; otherwise, it will display as a uniform rail.
        /// </value>
        
        if (value !== this._showInnerRail) {
            this._showInnerRail = value;
            this.raisePropertyChanged('showInnerRail');
        }
    },

    get_showHandleHoverStyle: function() {
        /// <value type="Boolean">
        /// Determines if the slider handles will show a style effect when they are hovered over.
        /// </value>
        
        return this._showHoverStyle;
    },
    set_showHandleHoverStyle: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider handles will show a style effect when they are hovered over.
        /// </value>
        
        if (value !== this._showHoverStyle) {
            this._showHoverStyle = value;
            this.raisePropertyChanged('showHoverStyle');
        }
    },

    get_showHandleDragStyle: function() {
        /// <value type="Boolean">
        /// Determines if the slider handles will show a style effect when they are being dragged.
        /// </value>
        
        return this._showDragStyle;
    },
    set_showHandleDragStyle: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider handles will show a style effect when they are being dragged.
        /// </value>
        
        if (value !== this._showDragStyle) {
            this._showDragStyle = value;
            this.raisePropertyChanged('showDragStyle');
        }
    },

    get_innerRailStyle: function() {
        /// <value type="AjaxControlToolkit.MultiHandleInnerRailStyle">
        /// Determines how the inner rail style is handled.
        /// </value>
        
        return this._innerRailStyle;
    },
    set_innerRailStyle: function(value) {
        /// <value type="AjaxControlToolkit.MultiHandleInnerRailStyle">
        /// Determines how the inner rail style is handled.
        /// </value>
        
        if (value !== this._innerRailStyle) {
            this._innerRailStyle = value;
            this.raisePropertyChanged('innerRailStyle');
        }
    },

    get_enableInnerRangeDrag: function() {
        /// <value type="Boolean">
        /// Determines if the inner rail range can be dragged as a whole, moving both handles defining it.
        /// </value>
        
        return this._enableInnerRangeDrag;
    },
    set_enableInnerRangeDrag: function(value) {
        /// <value type="Boolean">
        /// Determines if the inner rail range can be dragged as a whole, moving both handles defining it.
        /// </value>
        
        if (value !== this._enableInnerRangeDrag) {
            this._enableInnerRangeDrag = value;
            this.raisePropertyChanged('allowInnerRangeDrag');
        }
    },

    get_enableRailClick: function() {
        /// <value type="Boolean">
        /// Determines if clicking on the rail will detect and move the closest handle.
        /// </value>
        
        return this._enableRailClick;
    },
    set_enableRailClick: function(value) {
        /// <value type="Boolean">
        /// Determines if clicking on the rail will detect and move the closest handle.
        /// </value>
        
        if (value !== this._enableRailClick) {
            this._enableRailClick = value;
            this.raisePropertyChanged('allowRailClick');
        }
    },

    get_isReadOnly: function() {
        /// <value type="Boolean">
        /// Determines if the slider and its values can be manipulated.
        /// </value>
        
        return this._isReadOnly;
    },
    set_isReadOnly: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider and its values can be manipulated.
        /// </value>
        if (value !== this._isReadOnly) {
            this._isReadOnly = value;
            this.raisePropertyChanged('isReadOnly');
        }
    },

    get_enableKeyboard: function() {
        /// <value type="Boolean">
        /// Determines if the slider will respond to arrow keys when it has focus.
        /// </value>
        
        return this._enableKeyboard;
    },
    set_enableKeyboard: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider will respond to arrow keys when it has focus.
        /// </value>
        
        if (value !== this._enableKeyboard) {
            this._enableKeyboard = value;
            this.raisePropertyChanged('enableKeyboard');
        }
    },

    get_enableMouseWheel: function() {
        /// <value type="Boolean">
        /// Determines if the slider will respond to the mouse wheel when it has focus.
        /// </value>
        
        return this._enableMouseWheel;
    },
    set_enableMouseWheel: function(value) {
        /// <value type="Boolean">
        /// Determines if the slider will respond to the mouse wheel when it has focus.
        /// </value>
        
        if (value !== this._enableMouseWheel) {
            this._enableMouseWheel = value;
            this.raisePropertyChanged('enableMouseWheel');
        }
    },

    get_increment: function() {
        /// <value type="Int32">
        /// Determines the number of points to increment or decrement the slider using the keyboard or mousewheel; ignored if steps is used.
        /// </value>
        
        return this._increment;
    },
    set_increment: function(value) {
        /// <value type="Int32">
        /// Determines the number of points to increment or decrement the slider using the keyboard or mousewheel; ignored if steps is used.
        /// </value>
        
        if (value !== this._increment) {
            this._increment = value;
            this.raisePropertyChanged('increment');
        }
    },

    get_tooltipText: function() {
        /// <value type="String">
        /// Determines the text to display as the tooltip; {0} denotes the current handle's value in the format string.
        /// </value>
        
        return this._tooltipText;
    },
    set_tooltipText: function(value) {
        /// <value type="String">
        /// Determines the text to display as the tooltip; {0} denotes the current handle's value in the format string.
        /// </value>
        
        if (value !== this._tooltipText) {
            this._tooltipText = value;
            this.raisePropertyChanged('tooltipText');
        }
    },

    get_multiHandleSliderTargets: function() {
        /// <value type="List<AjaxControlToolkit.MultiHandleSliderTarget">>
        /// The list of controls used to bind slider handle values. These should be Label or TextBox controls.
        /// </value>
        
        return this._multiHandleSliderTargets;
    },
    set_multiHandleSliderTargets: function(value) {
        /// <value type="List<AjaxControlToolkit.MultiHandleSliderTarget>">
        /// The list of controls used to bind slider handle values. These should be Label or TextBox controls.
        /// </value>
        
        if (value !== this._multiHandleSliderTargets) {
            this._multiHandleSliderTargets = value;
            this.raisePropertyChanged('multiHandleSliderTargets');
        }
    },

    get_cssClass: function() {
        /// <value type="String">
        /// Gets or sets the CSS class of a single handle.
        /// </value>
        
        return this._cssClass;
    },
    set_cssClass: function(value) {
        /// <value type="String">
        /// Gets or sets the CSS class of a single handle.
        /// </value>
        
        if (value !== this._cssClass) {
            this._cssClass = value;
            this.raisePropertyChanged('cssClass');
        }
    },

    get_boundControlID: function() {
        /// <value type="String">
        /// Gets or sets the ID of a control to use for a single handle.
        /// </value>
        
        return this._boundControlID;
    },
    set_boundControlID: function(value) {
        /// <value type="String">
        /// Gets or sets the ID of a control to use for a single handle.
        /// </value>
        
        this._boundControlID = value;
        if (this._boundControlID) {
            this._boundControl = $get(this._boundControlID);
        } else {
            this._boundControl = null;
        }
    },

    get_handleCssClass: function() {
        /// <value type="String">
        /// Gets or sets the CSS class of a single handle.
        /// </value>
        
        return this._handleCssClass;
    },
    set_handleCssClass: function(value) {
        /// <value type="String">
        /// Gets or sets the CSS class of a single handle.
        /// </value>
        
        this._handleCssClass = value;
    },
    
    get_handleImageUrl: function() {
        /// <value type="String">
        /// Gets or sets the URL for the image to display in the slider's handle.
        /// </value>
        
        return this._handleImageUrl;
    },
    set_handleImageUrl: function(value) {
        /// <value type="String">
        /// Gets or sets the URL for the image to display in the slider's handle.
        /// </value>
        
        this._handleImageUrl = value;
    },
    
    get_railCssClass: function() {
        /// <value type="String">
        /// Gets or sets the CSS class of a single handled slider's outer rail.
        /// </value>
        
        return this._railCssClass;
    },
    set_railCssClass: function(value) {
        /// <value type="String">
        /// Gets or sets the CSS class of a single handled slider's outer rail.
        /// </value>
        
        this._railCssClass = value;
    },
    
    get_decimals: function() {
        /// <value type="Int32">
        /// Get/Set the number of decimal digits in a single slider's value.
        /// A value of 0 means an integer value.
        /// </value>
        
        return this._decimals;
    },
    set_decimals: function(value) {
        /// <value type="Int32">
        /// Get/Set the number of decimal digits in a single slider's value.
        /// A value of 0 means an integer value.
        /// </value>
        
        this._decimals = value;
    },

    // Event Accessors
    
    add_load: function(handler) {
        /// <summary>
        /// Add an event handler to the load event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().addHandler('load', handler);
    },
    remove_load: function(handler) {
        /// <summary>
        /// Remove an event handler from the load event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().removeHandler('load', handler);
    },

    add_dragStart: function(handler) {
        /// <summary>
        /// Add an event handler to the dragStart event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().addHandler('dragStart', handler);
    },
    remove_dragStart: function(handler) {
        /// <summary>
        /// Remove an event handler from the dragStart event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().removeHandler('dragStart', handler);
    },

    add_drag: function(handler) {
        /// <summary>
        /// Add an event handler to the drag event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().addHandler('drag', handler);
    },
    remove_drag: function(handler) {
        /// <summary>
        /// Remove an event handler from the drag event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().removeHandler('drag', handler);
    },

    add_dragEnd: function(handler) {
        /// <summary>
        /// Add an event handler to the dragEnd event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().addHandler('dragEnd', handler);
    },
    remove_dragEnd: function(handler) {
        /// <summary>
        /// Remove an event handler from the dragEnd event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().removeHandler('dragEnd', handler);
    },

    add_valueChanged: function(handler) {
        /// <summary>
        /// Add an event handler to the valueChanged event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().addHandler('valueChanged', handler);
    },
    remove_valueChanged: function(handler) {
        /// <summary>
        /// Remove an event handler from the valueChanged event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">Event handler.</param>
        /// <returns />
        
        this.get_events().removeHandler('valueChanged', handler);
    }
}

AjaxControlToolkit.MultiHandleSliderBehavior.DropPending = null;
AjaxControlToolkit.MultiHandleSliderBehavior.registerClass('AjaxControlToolkit.MultiHandleSliderBehavior', AjaxControlToolkit.BehaviorBase);

//END AjaxControlToolkit.MultiHandleSlider.MultiHandleSliderBehavior.debug.js
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
(function() {var fn = function() {$get('ctl00_ContentPlaceHolder1_ToolkitScriptManager1_HiddenField').value += ';;AjaxControlToolkit, Version=3.0.30512.23582, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:b382238c-2a20-422b-a398-7728d057b8b7:9ea3f0e2:e2e86ef9:9e8e87e9:1df13a87:9758eba:4c9865be:c7c04611:da231104';Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);})();
