//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// MicrosoftAjax.js
Function.__typeName="Function";Function.__class=true;Function.createCallback=function(b,a){return function(){var e=arguments.length;if(e>0){var d=[];for(var c=0;c<e;c++)d[c]=arguments[c];d[e]=a;return b.apply(this,d)}return b.call(this,a)}};Function.createDelegate=function(a,b){return function(){return b.apply(a,arguments)}};Function.emptyFunction=Function.emptyMethod=function(){};Function.validateParameters=function(c,b,a){return Function._validateParams(c,b,a)};Function._validateParams=function(g,e,c){var a,d=e.length;c=c||typeof c==="undefined";a=Function._validateParameterCount(g,e,c);if(a){a.popStackFrame();return a}for(var b=0,i=g.length;b<i;b++){var f=e[Math.min(b,d-1)],h=f.name;if(f.parameterArray)h+="["+(b-d+1)+"]";else if(!c&&b>=d)break;a=Function._validateParameter(g[b],f,h);if(a){a.popStackFrame();return a}}return null};Function._validateParameterCount=function(j,d,i){var a,c,b=d.length,e=j.length;if(e<b){var f=b;for(a=0;a<b;a++){var g=d[a];if(g.optional||g.parameterArray)f--}if(e<f)c=true}else if(i&&e>b){c=true;for(a=0;a<b;a++)if(d[a].parameterArray){c=false;break}}if(c){var h=Error.parameterCount();h.popStackFrame();return h}return null};Function._validateParameter=function(c,a,h){var b,g=a.type,l=!!a.integer,k=!!a.domElement,m=!!a.mayBeNull;b=Function._validateParameterType(c,g,l,k,m,h);if(b){b.popStackFrame();return b}var e=a.elementType,f=!!a.elementMayBeNull;if(g===Array&&typeof c!=="undefined"&&c!==null&&(e||!f)){var j=!!a.elementInteger,i=!!a.elementDomElement;for(var d=0;d<c.length;d++){var n=c[d];b=Function._validateParameterType(n,e,j,i,f,h+"["+d+"]");if(b){b.popStackFrame();return b}}}return null};Function._validateParameterType=function(b,c,k,j,h,d){var a,g;if(typeof b==="undefined")if(h)return null;else{a=Error.argumentUndefined(d);a.popStackFrame();return a}if(b===null)if(h)return null;else{a=Error.argumentNull(d);a.popStackFrame();return a}if(c&&c.__enum){if(typeof b!=="number"){a=Error.argumentType(d,Object.getType(b),c);a.popStackFrame();return a}if(b%1===0){var e=c.prototype;if(!c.__flags||b===0){for(g in e)if(e[g]===b)return null}else{var i=b;for(g in e){var f=e[g];if(f===0)continue;if((f&b)===f)i-=f;if(i===0)return null}}}a=Error.argumentOutOfRange(d,b,String.format(Sys.Res.enumInvalidValue,b,c.getName()));a.popStackFrame();return a}if(j&&(!Sys._isDomElement(b)||b.nodeType===3)){a=Error.argument(d,Sys.Res.argumentDomElement);a.popStackFrame();return a}if(c&&!Sys._isInstanceOfType(c,b)){a=Error.argumentType(d,Object.getType(b),c);a.popStackFrame();return a}if(c===Number&&k)if(b%1!==0){a=Error.argumentOutOfRange(d,b,Sys.Res.argumentInteger);a.popStackFrame();return a}return null};Error.__typeName="Error";Error.__class=true;Error.create=function(d,b){var a=new Error(d);a.message=d;if(b)for(var c in b)a[c]=b[c];a.popStackFrame();return a};Error.argument=function(a,c){var b="Sys.ArgumentException: "+(c?c:Sys.Res.argument);if(a)b+="\n"+String.format(Sys.Res.paramName,a);var d=Error.create(b,{name:"Sys.ArgumentException",paramName:a});d.popStackFrame();return d};Error.argumentNull=function(a,c){var b="Sys.ArgumentNullException: "+(c?c:Sys.Res.argumentNull);if(a)b+="\n"+String.format(Sys.Res.paramName,a);var d=Error.create(b,{name:"Sys.ArgumentNullException",paramName:a});d.popStackFrame();return d};Error.argumentOutOfRange=function(c,a,d){var b="Sys.ArgumentOutOfRangeException: "+(d?d:Sys.Res.argumentOutOfRange);if(c)b+="\n"+String.format(Sys.Res.paramName,c);if(typeof a!=="undefined"&&a!==null)b+="\n"+String.format(Sys.Res.actualValue,a);var e=Error.create(b,{name:"Sys.ArgumentOutOfRangeException",paramName:c,actualValue:a});e.popStackFrame();return e};Error.argumentType=function(d,c,b,e){var a="Sys.ArgumentTypeException: ";if(e)a+=e;else if(c&&b)a+=String.format(Sys.Res.argumentTypeWithTypes,c.getName(),b.getName());else a+=Sys.Res.argumentType;if(d)a+="\n"+String.format(Sys.Res.paramName,d);var f=Error.create(a,{name:"Sys.ArgumentTypeException",paramName:d,actualType:c,expectedType:b});f.popStackFrame();return f};Error.argumentUndefined=function(a,c){var b="Sys.ArgumentUndefinedException: "+(c?c:Sys.Res.argumentUndefined);if(a)b+="\n"+String.format(Sys.Res.paramName,a);var d=Error.create(b,{name:"Sys.ArgumentUndefinedException",paramName:a});d.popStackFrame();return d};Error.format=function(a){var c="Sys.FormatException: "+(a?a:Sys.Res.format),b=Error.create(c,{name:"Sys.FormatException"});b.popStackFrame();return b};Error.invalidOperation=function(a){var c="Sys.InvalidOperationException: "+(a?a:Sys.Res.invalidOperation),b=Error.create(c,{name:"Sys.InvalidOperationException"});b.popStackFrame();return b};Error.notImplemented=function(a){var c="Sys.NotImplementedException: "+(a?a:Sys.Res.notImplemented),b=Error.create(c,{name:"Sys.NotImplementedException"});b.popStackFrame();return b};Error.parameterCount=function(a){var c="Sys.ParameterCountException: "+(a?a:Sys.Res.parameterCount),b=Error.create(c,{name:"Sys.ParameterCountException"});b.popStackFrame();return b};Error.prototype.popStackFrame=function(){if(typeof this.stack==="undefined"||this.stack===null||typeof this.fileName==="undefined"||this.fileName===null||typeof this.lineNumber==="undefined"||this.lineNumber===null)return;var a=this.stack.split("\n"),c=a[0],e=this.fileName+":"+this.lineNumber;while(typeof c!=="undefined"&&c!==null&&c.indexOf(e)===-1){a.shift();c=a[0]}var d=a[1];if(typeof d==="undefined"||d===null)return;var b=d.match(/@(.*):(\d+)$/);if(typeof b==="undefined"||b===null)return;this.fileName=b[1];this.lineNumber=parseInt(b[2]);a.shift();this.stack=a.join("\n")};Object.__typeName="Object";Object.__class=true;Object.getType=function(b){var a=b.constructor;if(!a||typeof a!=="function"||!a.__typeName||a.__typeName==="Object")return Object;return a};Object.getTypeName=function(a){return Object.getType(a).getName()};String.__typeName="String";String.__class=true;String.prototype.endsWith=function(a){return this.substr(this.length-a.length)===a};String.prototype.startsWith=function(a){return this.substr(0,a.length)===a};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")};String.prototype.trimEnd=function(){return this.replace(/\s+$/,"")};String.prototype.trimStart=function(){return this.replace(/^\s+/,"")};String.format=function(){return String._toFormattedString(false,arguments)};String._toFormattedString=function(l,j){var c="",e=j[0];for(var a=0;true;){var f=e.indexOf("{",a),d=e.indexOf("}",a);if(f<0&&d<0){c+=e.slice(a);break}if(d>0&&(d<f||f<0)){c+=e.slice(a,d+1);a=d+2;continue}c+=e.slice(a,f);a=f+1;if(e.charAt(a)==="{"){c+="{";a++;continue}if(d<0)break;var h=e.substring(a,d),g=h.indexOf(":"),k=parseInt(g<0?h:h.substring(0,g),10)+1,i=g<0?"":h.substring(g+1),b=j[k];if(typeof b==="undefined"||b===null)b="";if(b.toFormattedString)c+=b.toFormattedString(i);else if(l&&b.localeFormat)c+=b.localeFormat(i);else if(b.format)c+=b.format(i);else c+=b.toString();a=d+1}return c};Boolean.__typeName="Boolean";Boolean.__class=true;Boolean.parse=function(b){var a=b.trim().toLowerCase();if(a==="false")return false;if(a==="true")return true};Date.__typeName="Date";Date.__class=true;Number.__typeName="Number";Number.__class=true;RegExp.__typeName="RegExp";RegExp.__class=true;if(!window)this.window=this;window.Type=Function;Type.prototype.callBaseMethod=function(a,d,b){var c=Sys._getBaseMethod(this,a,d);if(!b)return c.apply(a);else return c.apply(a,b)};Type.prototype.getBaseMethod=function(a,b){return Sys._getBaseMethod(this,a,b)};Type.prototype.getBaseType=function(){return typeof this.__baseType==="undefined"?null:this.__baseType};Type.prototype.getInterfaces=function(){var a=[],b=this;while(b){var c=b.__interfaces;if(c)for(var d=0,f=c.length;d<f;d++){var e=c[d];if(!Array.contains(a,e))a[a.length]=e}b=b.__baseType}return a};Type.prototype.getName=function(){return typeof this.__typeName==="undefined"?"":this.__typeName};Type.prototype.implementsInterface=function(d){this.resolveInheritance();var c=d.getName(),a=this.__interfaceCache;if(a){var e=a[c];if(typeof e!=="undefined")return e}else a=this.__interfaceCache={};var b=this;while(b){var f=b.__interfaces;if(f)if(Array.indexOf(f,d)!==-1)return a[c]=true;b=b.__baseType}return a[c]=false};Type.prototype.inheritsFrom=function(b){this.resolveInheritance();var a=this.__baseType;while(a){if(a===b)return true;a=a.__baseType}return false};Type.prototype.initializeBase=function(a,b){this.resolveInheritance();if(this.__baseType)if(!b)this.__baseType.apply(a);else this.__baseType.apply(a,b);return a};Type.prototype.isImplementedBy=function(a){if(typeof a==="undefined"||a===null)return false;var b=Object.getType(a);return !!(b.implementsInterface&&b.implementsInterface(this))};Type.prototype.isInstanceOfType=function(a){return Sys._isInstanceOfType(this,a)};Type.prototype.registerClass=function(c,b,d){this.prototype.constructor=this;this.__typeName=c;this.__class=true;if(b){this.__baseType=b;this.__basePrototypePending=true}Sys.__upperCaseTypes[c.toUpperCase()]=this;if(d){this.__interfaces=[];for(var a=2,f=arguments.length;a<f;a++){var e=arguments[a];this.__interfaces.push(e)}}return this};Type.prototype.registerInterface=function(a){Sys.__upperCaseTypes[a.toUpperCase()]=this;this.prototype.constructor=this;this.__typeName=a;this.__interface=true;return this};Type.prototype.resolveInheritance=function(){if(this.__basePrototypePending){var b=this.__baseType;b.resolveInheritance();for(var a in b.prototype){var c=b.prototype[a];if(!this.prototype[a])this.prototype[a]=c}delete this.__basePrototypePending}};Type.getRootNamespaces=function(){return Array.clone(Sys.__rootNamespaces)};Type.isClass=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__class};Type.isInterface=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__interface};Type.isNamespace=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__namespace};Type.parse=function(typeName,ns){var fn;if(ns){fn=Sys.__upperCaseTypes[ns.getName().toUpperCase()+"."+typeName.toUpperCase()];return fn||null}if(!typeName)return null;if(!Type.__htClasses)Type.__htClasses={};fn=Type.__htClasses[typeName];if(!fn){fn=eval(typeName);Type.__htClasses[typeName]=fn}return fn};Type.registerNamespace=function(e){var d=window,c=e.split(".");for(var b=0;b<c.length;b++){var f=c[b],a=d[f];if(!a)a=d[f]={};if(!a.__namespace){if(b===0&&e!=="Sys")Sys.__rootNamespaces[Sys.__rootNamespaces.length]=a;a.__namespace=true;a.__typeName=c.slice(0,b+1).join(".");a.getName=function(){return this.__typeName}}d=a}};Type._checkDependency=function(c,a){var d=Type._registerScript._scripts,b=d?!!d[c]:false;if(typeof a!=="undefined"&&!b)throw Error.invalidOperation(String.format(Sys.Res.requiredScriptReferenceNotIncluded,a,c));return b};Type._registerScript=function(a,c){var b=Type._registerScript._scripts;if(!b)Type._registerScript._scripts=b={};if(b[a])throw Error.invalidOperation(String.format(Sys.Res.scriptAlreadyLoaded,a));b[a]=true;if(c)for(var d=0,f=c.length;d<f;d++){var e=c[d];if(!Type._checkDependency(e))throw Error.invalidOperation(String.format(Sys.Res.scriptDependencyNotFound,a,e))}};Type.registerNamespace("Sys");Sys.__upperCaseTypes={};Sys.__rootNamespaces=[Sys];Sys._isInstanceOfType=function(c,b){if(typeof b==="undefined"||b===null)return false;if(b instanceof c)return true;var a=Object.getType(b);return !!(a===c)||a.inheritsFrom&&a.inheritsFrom(c)||a.implementsInterface&&a.implementsInterface(c)};Sys._getBaseMethod=function(d,e,c){var b=d.getBaseType();if(b){var a=b.prototype[c];return a instanceof Function?a:null}return null};Sys._isDomElement=function(a){var c=false;if(typeof a.nodeType!=="number"){var b=a.ownerDocument||a.document||a;if(b!=a){var d=b.defaultView||b.parentWindow;c=d!=a}else c=typeof b.body==="undefined"}return !c};Array.__typeName="Array";Array.__class=true;Array.add=Array.enqueue=function(a,b){a[a.length]=b};Array.addRange=function(a,b){a.push.apply(a,b)};Array.clear=function(a){a.length=0};Array.clone=function(a){if(a.length===1)return [a[0]];else return Array.apply(null,a)};Array.contains=function(a,b){return Sys._indexOf(a,b)>=0};Array.dequeue=function(a){return a.shift()};Array.forEach=function(b,e,d){for(var a=0,f=b.length;a<f;a++){var c=b[a];if(typeof c!=="undefined")e.call(d,c,a,b)}};Array.indexOf=function(a,c,b){return Sys._indexOf(a,c,b)};Array.insert=function(a,b,c){a.splice(b,0,c)};Array.parse=function(value){if(!value)return [];return eval(value)};Array.remove=function(b,c){var a=Sys._indexOf(b,c);if(a>=0)b.splice(a,1);return a>=0};Array.removeAt=function(a,b){a.splice(b,1)};Sys._indexOf=function(d,e,a){if(typeof e==="undefined")return -1;var c=d.length;if(c!==0){a=a-0;if(isNaN(a))a=0;else{if(isFinite(a))a=a-a%1;if(a<0)a=Math.max(0,c+a)}for(var b=a;b<c;b++)if(typeof d[b]!=="undefined"&&d[b]===e)return b}return -1};Type._registerScript._scripts={"MicrosoftAjaxCore.js":true,"MicrosoftAjaxGlobalization.js":true,"MicrosoftAjaxSerialization.js":true,"MicrosoftAjaxComponentModel.js":true,"MicrosoftAjaxHistory.js":true,"MicrosoftAjaxNetwork.js":true,"MicrosoftAjaxWebServices.js":true};Sys.IDisposable=function(){};Sys.IDisposable.prototype={};Sys.IDisposable.registerInterface("Sys.IDisposable");Sys.StringBuilder=function(a){this._parts=typeof a!=="undefined"&&a!==null&&a!==""?[a.toString()]:[];this._value={};this._len=0};Sys.StringBuilder.prototype={append:function(a){this._parts[this._parts.length]=a},appendLine:function(a){this._parts[this._parts.length]=typeof a==="undefined"||a===null||a===""?"\r\n":a+"\r\n"},clear:function(){this._parts=[];this._value={};this._len=0},isEmpty:function(){if(this._parts.length===0)return true;return this.toString()===""},toString:function(a){a=a||"";var b=this._parts;if(this._len!==b.length){this._value={};this._len=b.length}var d=this._value;if(typeof d[a]==="undefined"){if(a!=="")for(var c=0;c<b.length;)if(typeof b[c]==="undefined"||b[c]===""||b[c]===null)b.splice(c,1);else c++;d[a]=this._parts.join(a)}return d[a]}};Sys.StringBuilder.registerClass("Sys.StringBuilder");Sys.Browser={};Sys.Browser.InternetExplorer={};Sys.Browser.Firefox={};Sys.Browser.Safari={};Sys.Browser.Opera={};Sys.Browser.agent=null;Sys.Browser.hasDebuggerStatement=false;Sys.Browser.name=navigator.appName;Sys.Browser.version=parseFloat(navigator.appVersion);Sys.Browser.documentMode=0;if(navigator.userAgent.indexOf(" MSIE ")>-1){Sys.Browser.agent=Sys.Browser.InternetExplorer;Sys.Browser.version=parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);if(Sys.Browser.version>=8)if(document.documentMode>=7)Sys.Browser.documentMode=document.documentMode;Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" Firefox/")>-1){Sys.Browser.agent=Sys.Browser.Firefox;Sys.Browser.version=parseFloat(navigator.userAgent.match(/Firefox\/(\d+\.\d+)/)[1]);Sys.Browser.name="Firefox";Sys.Browser.hasDebuggerStatement=true}else if(navigator.userAgent.indexOf(" AppleWebKit/")>-1){Sys.Browser.agent=Sys.Browser.Safari;Sys.Browser.version=parseFloat(navigator.userAgent.match(/AppleWebKit\/(\d+(\.\d+)?)/)[1]);Sys.Browser.name="Safari"}else if(navigator.userAgent.indexOf("Opera/")>-1)Sys.Browser.agent=Sys.Browser.Opera;Sys.EventArgs=function(){};Sys.EventArgs.registerClass("Sys.EventArgs");Sys.EventArgs.Empty=new Sys.EventArgs;Sys.CancelEventArgs=function(){Sys.CancelEventArgs.initializeBase(this);this._cancel=false};Sys.CancelEventArgs.prototype={get_cancel:function(){return this._cancel},set_cancel:function(a){this._cancel=a}};Sys.CancelEventArgs.registerClass("Sys.CancelEventArgs",Sys.EventArgs);Type.registerNamespace("Sys.UI");Sys._Debug=function(){};Sys._Debug.prototype={_appendConsole:function(a){if(typeof Debug!=="undefined"&&Debug.writeln)Debug.writeln(a);if(window.console&&window.console.log)window.console.log(a);if(window.opera)window.opera.postError(a);if(window.debugService)window.debugService.trace(a)},_appendTrace:function(b){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value+=b+"\n"},assert:function(c,a,b){if(!c){a=b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.assert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.format(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var a=document.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()==="TEXTAREA")a.value=""},fail:function(message){this._appendConsole(message);if(Sys.Browser.hasDebuggerStatement)eval("debugger")},trace:function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:function(a,b){var c=this._traceDump(a,b,true)},_traceDump:function(a,c,f,b,d){c=c?c:"traceDump";b=b?b:"";if(a===null){this.trace(b+c+": null");return}switch(typeof a){case "undefined":this.trace(b+c+": Undefined");break;case "number":case "string":case "boolean":this.trace(b+c+": "+a);break;default:if(Date.isInstanceOfType(a)||RegExp.isInstanceOfType(a)){this.trace(b+c+": "+a.toString());break}if(!d)d=[];else if(Array.contains(d,a)){this.trace(b+c+": ...");return}Array.add(d,a);if(a==window||a===document||window.HTMLElement&&a instanceof HTMLElement||typeof a.nodeName==="string"){var k=a.tagName?a.tagName:"DomElement";if(a.id)k+=" - "+a.id;this.trace(b+c+" {"+k+"}")}else{var i=Object.getTypeName(a);this.trace(b+c+(typeof i==="string"?" {"+i+"}":""));if(b===""||f){b+="    ";var e,j,l,g,h;if(Array.isInstanceOfType(a)){j=a.length;for(e=0;e<j;e++)this._traceDump(a[e],"["+e+"]",f,b,d)}else for(g in a){h=a[g];if(!Function.isInstanceOfType(h))this._traceDump(h,g,f,b,d)}}}Array.remove(d,a)}}};Sys._Debug.registerClass("Sys._Debug");Sys.Debug=new Sys._Debug;Sys.Debug.isDebug=false;function Sys$Enum$parse(c,e){var a,b,i;if(e){a=this.__lowerCaseValues;if(!a){this.__lowerCaseValues=a={};var g=this.prototype;for(var f in g)a[f.toLowerCase()]=g[f]}}else a=this.prototype;if(!this.__flags){i=e?c.toLowerCase():c;b=a[i.trim()];if(typeof b!=="number")throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,c,this.__typeName));return b}else{var h=(e?c.toLowerCase():c).split(","),j=0;for(var d=h.length-1;d>=0;d--){var k=h[d].trim();b=a[k];if(typeof b!=="number")throw Error.argument("value",String.format(Sys.Res.enumInvalidValue,c.split(",")[d].trim(),this.__typeName));j|=b}return j}}function Sys$Enum$toString(c){if(typeof c==="undefined"||c===null)return this.__string;var d=this.prototype,a;if(!this.__flags||c===0){for(a in d)if(d[a]===c)return a}else{var b=this.__sortedValues;if(!b){b=[];for(a in d)b[b.length]={key:a,value:d[a]};b.sort(function(a,b){return a.value-b.value});this.__sortedValues=b}var e=[],g=c;for(a=b.length-1;a>=0;a--){var h=b[a],f=h.value;if(f===0)continue;if((f&c)===f){e[e.length]=h.key;g-=f;if(g===0)break}}if(e.length&&g===0)return e.reverse().join(", ")}return ""}Type.prototype.registerEnum=function(b,c){Sys.__upperCaseTypes[b.toUpperCase()]=this;for(var a in this.prototype)this[a]=this.prototype[a];this.__typeName=b;this.parse=Sys$Enum$parse;this.__string=this.toString();this.toString=Sys$Enum$toString;this.__flags=c;this.__enum=true};Type.isEnum=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__enum};Type.isFlags=function(a){if(typeof a==="undefined"||a===null)return false;return !!a.__flags};Sys.CollectionChange=function(e,a,c,b,d){this.action=e;if(a)if(!(a instanceof Array))a=[a];this.newItems=a||null;if(typeof c!=="number")c=-1;this.newStartingIndex=c;if(b)if(!(b instanceof Array))b=[b];this.oldItems=b||null;if(typeof d!=="number")d=-1;this.oldStartingIndex=d};Sys.CollectionChange.registerClass("Sys.CollectionChange");Sys.NotifyCollectionChangedAction=function(){throw Error.notImplemented()};Sys.NotifyCollectionChangedAction.prototype={add:0,remove:1,reset:2};Sys.NotifyCollectionChangedAction.registerEnum("Sys.NotifyCollectionChangedAction");Sys.NotifyCollectionChangedEventArgs=function(a){this._changes=a;Sys.NotifyCollectionChangedEventArgs.initializeBase(this)};Sys.NotifyCollectionChangedEventArgs.prototype={get_changes:function(){return this._changes||[]}};Sys.NotifyCollectionChangedEventArgs.registerClass("Sys.NotifyCollectionChangedEventArgs",Sys.EventArgs);Sys.Observer=function(){};Sys.Observer.registerClass("Sys.Observer");Sys.Observer.makeObservable=function(a){var c=a instanceof Array,b=Sys.Observer;if(a.setValue===b._observeMethods.setValue)return a;b._addMethods(a,b._observeMethods);if(c)b._addMethods(a,b._arrayMethods);return a};Sys.Observer._addMethods=function(c,b){for(var a in b)c[a]=b[a]};Sys.Observer._addEventHandler=function(c,a,b){Sys.Observer._getContext(c,true).events._addHandler(a,b)};Sys.Observer.addEventHandler=function(c,a,b){Sys.Observer._addEventHandler(c,a,b)};Sys.Observer._removeEventHandler=function(c,a,b){Sys.Observer._getContext(c,true).events._removeHandler(a,b)};Sys.Observer.removeEventHandler=function(c,a,b){Sys.Observer._removeEventHandler(c,a,b)};Sys.Observer.raiseEvent=function(b,e,d){var c=Sys.Observer._getContext(b);if(!c)return;var a=c.events.getHandler(e);if(a)a(b,d)};Sys.Observer.addPropertyChanged=function(b,a){Sys.Observer._addEventHandler(b,"propertyChanged",a)};Sys.Observer.removePropertyChanged=function(b,a){Sys.Observer._removeEventHandler(b,"propertyChanged",a)};Sys.Observer.beginUpdate=function(a){Sys.Observer._getContext(a,true).updating=true};Sys.Observer.endUpdate=function(b){var a=Sys.Observer._getContext(b);if(!a||!a.updating)return;a.updating=false;var d=a.dirty;a.dirty=false;if(d){if(b instanceof Array){var c=a.changes;a.changes=null;Sys.Observer.raiseCollectionChanged(b,c)}Sys.Observer.raisePropertyChanged(b,"")}};Sys.Observer.isUpdating=function(b){var a=Sys.Observer._getContext(b);return a?a.updating:false};Sys.Observer._setValue=function(a,j,g){var b,f,k=a,d=j.split(".");for(var i=0,m=d.length-1;i<m;i++){var l=d[i];b=a["get_"+l];if(typeof b==="function")a=b.call(a);else a=a[l];var n=typeof a;if(a===null||n==="undefined")throw Error.invalidOperation(String.format(Sys.Res.nullReferenceInPath,j))}var e,c=d[m];b=a["get_"+c];f=a["set_"+c];if(typeof b==="function")e=b.call(a);else e=a[c];if(typeof f==="function")f.call(a,g);else a[c]=g;if(e!==g){var h=Sys.Observer._getContext(k);if(h&&h.updating){h.dirty=true;return}Sys.Observer.raisePropertyChanged(k,d[0])}};Sys.Observer.setValue=function(b,a,c){Sys.Observer._setValue(b,a,c)};Sys.Observer.raisePropertyChanged=function(b,a){Sys.Observer.raiseEvent(b,"propertyChanged",new Sys.PropertyChangedEventArgs(a))};Sys.Observer.addCollectionChanged=function(b,a){Sys.Observer._addEventHandler(b,"collectionChanged",a)};Sys.Observer.removeCollectionChanged=function(b,a){Sys.Observer._removeEventHandler(b,"collectionChanged",a)};Sys.Observer._collectionChange=function(d,c){var a=Sys.Observer._getContext(d);if(a&&a.updating){a.dirty=true;var b=a.changes;if(!b)a.changes=b=[c];else b.push(c)}else{Sys.Observer.raiseCollectionChanged(d,[c]);Sys.Observer.raisePropertyChanged(d,"length")}};Sys.Observer.add=function(a,b){var c=new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add,[b],a.length);Array.add(a,b);Sys.Observer._collectionChange(a,c)};Sys.Observer.addRange=function(a,b){var c=new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add,b,a.length);Array.addRange(a,b);Sys.Observer._collectionChange(a,c)};Sys.Observer.clear=function(a){var b=Array.clone(a);Array.clear(a);Sys.Observer._collectionChange(a,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.reset,null,-1,b,0))};Sys.Observer.insert=function(a,b,c){Array.insert(a,b,c);Sys.Observer._collectionChange(a,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add,[c],b))};Sys.Observer.remove=function(a,b){var c=Array.indexOf(a,b);if(c!==-1){Array.remove(a,b);Sys.Observer._collectionChange(a,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove,null,-1,[b],c));return true}return false};Sys.Observer.removeAt=function(b,a){if(a>-1&&a<b.length){var c=b[a];Array.removeAt(b,a);Sys.Observer._collectionChange(b,new Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove,null,-1,[c],a))}};Sys.Observer.raiseCollectionChanged=function(b,a){Sys.Observer.raiseEvent(b,"collectionChanged",new Sys.NotifyCollectionChangedEventArgs(a))};Sys.Observer._observeMethods={add_propertyChanged:function(a){Sys.Observer._addEventHandler(this,"propertyChanged",a)},remove_propertyChanged:function(a){Sys.Observer._removeEventHandler(this,"propertyChanged",a)},addEventHandler:function(a,b){Sys.Observer._addEventHandler(this,a,b)},removeEventHandler:function(a,b){Sys.Observer._removeEventHandler(this,a,b)},get_isUpdating:function(){return Sys.Observer.isUpdating(this)},beginUpdate:function(){Sys.Observer.beginUpdate(this)},endUpdate:function(){Sys.Observer.endUpdate(this)},setValue:function(b,a){Sys.Observer._setValue(this,b,a)},raiseEvent:function(b,a){Sys.Observer.raiseEvent(this,b,a)},raisePropertyChanged:function(a){Sys.Observer.raiseEvent(this,"propertyChanged",new Sys.PropertyChangedEventArgs(a))}};Sys.Observer._arrayMethods={add_collectionChanged:function(a){Sys.Observer._addEventHandler(this,"collectionChanged",a)},remove_collectionChanged:function(a){Sys.Observer._removeEventHandler(this,"collectionChanged",a)},add:function(a){Sys.Observer.add(this,a)},addRange:function(a){Sys.Observer.addRange(this,a)},clear:function(){Sys.Observer.clear(this)},insert:function(a,b){Sys.Observer.insert(this,a,b)},remove:function(a){return Sys.Observer.remove(this,a)},removeAt:function(a){Sys.Observer.removeAt(this,a)},raiseCollectionChanged:function(a){Sys.Observer.raiseEvent(this,"collectionChanged",new Sys.NotifyCollectionChangedEventArgs(a))}};Sys.Observer._getContext=function(b,c){var a=b._observerContext;if(a)return a();if(c)return (b._observerContext=Sys.Observer._createContext())();return null};Sys.Observer._createContext=function(){var a={events:new Sys.EventHandlerList};return function(){return a}};Date._appendPreOrPostMatch=function(e,b){var d=0,a=false;for(var c=0,g=e.length;c<g;c++){var f=e.charAt(c);switch(f){case "'":if(a)b.append("'");else d++;a=false;break;case "\\":if(a)b.append("\\");a=!a;break;default:b.append(f);a=false}}return d};Date._expandFormat=function(a,b){if(!b)b="F";var c=b.length;if(c===1)switch(b){case "d":return a.ShortDatePattern;case "D":return a.LongDatePattern;case "t":return a.ShortTimePattern;case "T":return a.LongTimePattern;case "f":return a.LongDatePattern+" "+a.ShortTimePattern;case "F":return a.FullDateTimePattern;case "M":case "m":return a.MonthDayPattern;case "s":return a.SortableDateTimePattern;case "Y":case "y":return a.YearMonthPattern;default:throw Error.format(Sys.Res.formatInvalidString)}else if(c===2&&b.charAt(0)==="%")b=b.charAt(1);return b};Date._expandYear=function(c,a){var d=new Date,e=Date._getEra(d);if(a<100){var b=Date._getEraYear(d,c,e);a+=b-b%100;if(a>c.Calendar.TwoDigitYearMax)a-=100}return a};Date._getEra=function(e,c){if(!c)return 0;var b,d=e.getTime();for(var a=0,f=c.length;a<f;a+=4){b=c[a+2];if(b===null||d>=b)return a}return 0};Date._getEraYear=function(d,b,e,c){var a=d.getFullYear();if(!c&&b.eras)a-=b.eras[e+3];return a};Date._getParseRegExp=function(b,e){if(!b._parseRegExp)b._parseRegExp={};else if(b._parseRegExp[e])return b._parseRegExp[e];var c=Date._expandFormat(b,e);c=c.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1");var a=new Sys.StringBuilder("^"),j=[],f=0,i=0,h=Date._getTokenRegExp(),d;while((d=h.exec(c))!==null){var l=c.slice(f,d.index);f=h.lastIndex;i+=Date._appendPreOrPostMatch(l,a);if(i%2===1){a.append(d[0]);continue}switch(d[0]){case "dddd":case "ddd":case "MMMM":case "MMM":case "gg":case "g":a.append("(\\D+)");break;case "tt":case "t":a.append("(\\D*)");break;case "yyyy":a.append("(\\d{4})");break;case "fff":a.append("(\\d{3})");break;case "ff":a.append("(\\d{2})");break;case "f":a.append("(\\d)");break;case "dd":case "d":case "MM":case "M":case "yy":case "y":case "HH":case "H":case "hh":case "h":case "mm":case "m":case "ss":case "s":a.append("(\\d\\d?)");break;case "zzz":a.append("([+-]?\\d\\d?:\\d{2})");break;case "zz":case "z":a.append("([+-]?\\d\\d?)");break;case "/":a.append("(\\"+b.DateSeparator+")")}Array.add(j,d[0])}Date._appendPreOrPostMatch(c.slice(f),a);a.append("$");var k=a.toString().replace(/\s+/g,"\\s+"),g={"regExp":k,"groups":j};b._parseRegExp[e]=g;return g};Date._getTokenRegExp=function(){return /\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g};Date.parseLocale=function(a){return Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvariant=function(a){return Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=function(h,d,i){var a,c,b,f,e,g=false;for(a=1,c=i.length;a<c;a++){f=i[a];if(f){g=true;b=Date._parseExact(h,f,d);if(b)return b}}if(!g){e=d._getDateTimeFormats();for(a=0,c=e.length;a<c;a++){b=Date._parseExact(h,e[a],d);if(b)return b}}return null};Date._parseExact=function(w,D,k){w=w.trim();var g=k.dateTimeFormat,A=Date._getParseRegExp(g,D),C=(new RegExp(A.regExp)).exec(w);if(C===null)return null;var B=A.groups,x=null,e=null,c=null,j=null,i=null,d=0,h,p=0,q=0,f=0,l=null,v=false;for(var s=0,E=B.length;s<E;s++){var a=C[s+1];if(a)switch(B[s]){case "dd":case "d":j=parseInt(a,10);if(j<1||j>31)return null;break;case "MMMM":c=k._getMonthIndex(a);if(c<0||c>11)return null;break;case "MMM":c=k._getAbbrMonthIndex(a);if(c<0||c>11)return null;break;case "M":case "MM":c=parseInt(a,10)-1;if(c<0||c>11)return null;break;case "y":case "yy":e=Date._expandYear(g,parseInt(a,10));if(e<0||e>9999)return null;break;case "yyyy":e=parseInt(a,10);if(e<0||e>9999)return null;break;case "h":case "hh":d=parseInt(a,10);if(d===12)d=0;if(d<0||d>11)return null;break;case "H":case "HH":d=parseInt(a,10);if(d<0||d>23)return null;break;case "m":case "mm":p=parseInt(a,10);if(p<0||p>59)return null;break;case "s":case "ss":q=parseInt(a,10);if(q<0||q>59)return null;break;case "tt":case "t":var z=a.toUpperCase();v=z===g.PMDesignator.toUpperCase();if(!v&&z!==g.AMDesignator.toUpperCase())return null;break;case "f":f=parseInt(a,10)*100;if(f<0||f>999)return null;break;case "ff":f=parseInt(a,10)*10;if(f<0||f>999)return null;break;case "fff":f=parseInt(a,10);if(f<0||f>999)return null;break;case "dddd":i=k._getDayIndex(a);if(i<0||i>6)return null;break;case "ddd":i=k._getAbbrDayIndex(a);if(i<0||i>6)return null;break;case "zzz":var u=a.split(/:/);if(u.length!==2)return null;h=parseInt(u[0],10);if(h<-12||h>13)return null;var m=parseInt(u[1],10);if(m<0||m>59)return null;l=h*60+(a.startsWith("-")?-m:m);break;case "z":case "zz":h=parseInt(a,10);if(h<-12||h>13)return null;l=h*60;break;case "g":case "gg":var o=a;if(!o||!g.eras)return null;o=o.toLowerCase().trim();for(var r=0,F=g.eras.length;r<F;r+=4)if(o===g.eras[r+1].toLowerCase()){x=r;break}if(x===null)return null}}var b=new Date,t,n=g.Calendar.convert;if(n)t=n.fromGregorian(b)[0];else t=b.getFullYear();if(e===null)e=t;else if(g.eras)e+=g.eras[(x||0)+3];if(c===null)c=0;if(j===null)j=1;if(n){b=n.toGregorian(e,c,j);if(b===null)return null}else{b.setFullYear(e,c,j);if(b.getDate()!==j)return null;if(i!==null&&b.getDay()!==i)return null}if(v&&d<12)d+=12;b.setHours(d,p,q,f);if(l!==null){var y=b.getMinutes()-(l+b.getTimezoneOffset());b.setHours(b.getHours()+parseInt(y/60,10),y%60)}return b};Date.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Date.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Date.prototype._toFormattedString=function(e,j){var b=j.dateTimeFormat,n=b.Calendar.convert;if(!e||!e.length||e==="i")if(j&&j.name.length)if(n)return this._toFormattedString(b.FullDateTimePattern,j);else{var r=new Date(this.getTime()),x=Date._getEra(this,b.eras);r.setFullYear(Date._getEraYear(this,b,x));return r.toLocaleString()}else return this.toString();var l=b.eras,k=e==="s";e=Date._expandFormat(b,e);var a=new Sys.StringBuilder,c;function d(a){if(a<10)return "0"+a;return a.toString()}function m(a){if(a<10)return "00"+a;if(a<100)return "0"+a;return a.toString()}function v(a){if(a<10)return "000"+a;else if(a<100)return "00"+a;else if(a<1000)return "0"+a;return a.toString()}var h,p,t=/([^d]|^)(d|dd)([^d]|$)/g;function s(){if(h||p)return h;h=t.test(e);p=true;return h}var q=0,o=Date._getTokenRegExp(),f;if(!k&&n)f=n.fromGregorian(this);for(;true;){var w=o.lastIndex,i=o.exec(e),u=e.slice(w,i?i.index:e.length);q+=Date._appendPreOrPostMatch(u,a);if(!i)break;if(q%2===1){a.append(i[0]);continue}function g(a,b){if(f)return f[b];switch(b){case 0:return a.getFullYear();case 1:return a.getMonth();case 2:return a.getDate()}}switch(i[0]){case "dddd":a.append(b.DayNames[this.getDay()]);break;case "ddd":a.append(b.AbbreviatedDayNames[this.getDay()]);break;case "dd":h=true;a.append(d(g(this,2)));break;case "d":h=true;a.append(g(this,2));break;case "MMMM":a.append(b.MonthGenitiveNames&&s()?b.MonthGenitiveNames[g(this,1)]:b.MonthNames[g(this,1)]);break;case "MMM":a.append(b.AbbreviatedMonthGenitiveNames&&s()?b.AbbreviatedMonthGenitiveNames[g(this,1)]:b.AbbreviatedMonthNames[g(this,1)]);break;case "MM":a.append(d(g(this,1)+1));break;case "M":a.append(g(this,1)+1);break;case "yyyy":a.append(v(f?f[0]:Date._getEraYear(this,b,Date._getEra(this,l),k)));break;case "yy":a.append(d((f?f[0]:Date._getEraYear(this,b,Date._getEra(this,l),k))%100));break;case "y":a.append((f?f[0]:Date._getEraYear(this,b,Date._getEra(this,l),k))%100);break;case "hh":c=this.getHours()%12;if(c===0)c=12;a.append(d(c));break;case "h":c=this.getHours()%12;if(c===0)c=12;a.append(c);break;case "HH":a.append(d(this.getHours()));break;case "H":a.append(this.getHours());break;case "mm":a.append(d(this.getMinutes()));break;case "m":a.append(this.getMinutes());break;case "ss":a.append(d(this.getSeconds()));break;case "s":a.append(this.getSeconds());break;case "tt":a.append(this.getHours()<12?b.AMDesignator:b.PMDesignator);break;case "t":a.append((this.getHours()<12?b.AMDesignator:b.PMDesignator).charAt(0));break;case "f":a.append(m(this.getMilliseconds()).charAt(0));break;case "ff":a.append(m(this.getMilliseconds()).substr(0,2));break;case "fff":a.append(m(this.getMilliseconds()));break;case "z":c=this.getTimezoneOffset()/60;a.append((c<=0?"+":"-")+Math.floor(Math.abs(c)));break;case "zz":c=this.getTimezoneOffset()/60;a.append((c<=0?"+":"-")+d(Math.floor(Math.abs(c))));break;case "zzz":c=this.getTimezoneOffset()/60;a.append((c<=0?"+":"-")+d(Math.floor(Math.abs(c)))+":"+d(Math.abs(this.getTimezoneOffset()%60)));break;case "g":case "gg":if(b.eras)a.append(b.eras[Date._getEra(this,l)+1]);break;case "/":a.append(b.DateSeparator)}}return a.toString()};String.localeFormat=function(){return String._toFormattedString(true,arguments)};Number.parseLocale=function(a){return Number._parse(a,Sys.CultureInfo.CurrentCulture)};Number.parseInvariant=function(a){return Number._parse(a,Sys.CultureInfo.InvariantCulture)};Number._parse=function(b,o){b=b.trim();if(b.match(/^[+-]?infinity$/i))return parseFloat(b);if(b.match(/^0x[a-f0-9]+$/i))return parseInt(b);var a=o.numberFormat,g=Number._parseNumberNegativePattern(b,a,a.NumberNegativePattern),h=g[0],e=g[1];if(h===""&&a.NumberNegativePattern!==1){g=Number._parseNumberNegativePattern(b,a,1);h=g[0];e=g[1]}if(h==="")h="+";var j,d,f=e.indexOf("e");if(f<0)f=e.indexOf("E");if(f<0){d=e;j=null}else{d=e.substr(0,f);j=e.substr(f+1)}var c,k,m=d.indexOf(a.NumberDecimalSeparator);if(m<0){c=d;k=null}else{c=d.substr(0,m);k=d.substr(m+a.NumberDecimalSeparator.length)}c=c.split(a.NumberGroupSeparator).join("");var n=a.NumberGroupSeparator.replace(/\u00A0/g," ");if(a.NumberGroupSeparator!==n)c=c.split(n).join("");var l=h+c;if(k!==null)l+="."+k;if(j!==null){var i=Number._parseNumberNegativePattern(j,a,1);if(i[0]==="")i[0]="+";l+="e"+i[0]+i[1]}if(l.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/))return parseFloat(l);return Number.NaN};Number._parseNumberNegativePattern=function(a,d,e){var b=d.NegativeSign,c=d.PositiveSign;switch(e){case 4:b=" "+b;c=" "+c;case 3:if(a.endsWith(b))return ["-",a.substr(0,a.length-b.length)];else if(a.endsWith(c))return ["+",a.substr(0,a.length-c.length)];break;case 2:b+=" ";c+=" ";case 1:if(a.startsWith(b))return ["-",a.substr(b.length)];else if(a.startsWith(c))return ["+",a.substr(c.length)];break;case 0:if(a.startsWith("(")&&a.endsWith(")"))return ["-",a.substr(1,a.length-2)]}return ["",a]};Number.prototype.format=function(a){return this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Number.prototype.localeFormat=function(a){return this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Number.prototype._toFormattedString=function(e,j){if(!e||e.length===0||e==="i")if(j&&j.name.length>0)return this.toLocaleString();else return this.toString();var o=["n %","n%","%n"],n=["-n %","-n%","-%n"],p=["(n)","-n","- n","n-","n -"],m=["$n","n$","$ n","n $"],l=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];function g(a,c,d){for(var b=a.length;b<c;b++)a=d?"0"+a:a+"0";return a}function i(j,i,l,n,p){var h=l[0],k=1,o=Math.pow(10,i),m=Math.round(j*o)/o;if(!isFinite(m))m=j;j=m;var b=j.toString(),a="",c,e=b.split(/e/i);b=e[0];c=e.length>1?parseInt(e[1]):0;e=b.split(".");b=e[0];a=e.length>1?e[1]:"";var q;if(c>0){a=g(a,c,false);b+=a.slice(0,c);a=a.substr(c)}else if(c<0){c=-c;b=g(b,c+1,true);a=b.slice(-c,b.length)+a;b=b.slice(0,-c)}if(i>0){if(a.length>i)a=a.slice(0,i);else a=g(a,i,false);a=p+a}else a="";var d=b.length-1,f="";while(d>=0){if(h===0||h>d)if(f.length>0)return b.slice(0,d+1)+n+f+a;else return b.slice(0,d+1)+a;if(f.length>0)f=b.slice(d-h+1,d+1)+n+f;else f=b.slice(d-h+1,d+1);d-=h;if(k<l.length){h=l[k];k++}}return b.slice(0,d+1)+n+f+a}var a=j.numberFormat,d=Math.abs(this);if(!e)e="D";var b=-1;if(e.length>1)b=parseInt(e.slice(1),10);var c;switch(e.charAt(0)){case "d":case "D":c="n";if(b!==-1)d=g(""+d,b,true);if(this<0)d=-d;break;case "c":case "C":if(this<0)c=l[a.CurrencyNegativePattern];else c=m[a.CurrencyPositivePattern];if(b===-1)b=a.CurrencyDecimalDigits;d=i(Math.abs(this),b,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,a.CurrencyDecimalSeparator);break;case "n":case "N":if(this<0)c=p[a.NumberNegativePattern];else c="n";if(b===-1)b=a.NumberDecimalDigits;d=i(Math.abs(this),b,a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break;case "p":case "P":if(this<0)c=n[a.PercentNegativePattern];else c=o[a.PercentPositivePattern];if(b===-1)b=a.PercentDecimalDigits;d=i(Math.abs(this)*100,b,a.PercentGroupSizes,a.PercentGroupSeparator,a.PercentDecimalSeparator);break;default:throw Error.format(Sys.Res.formatBadFormatSpecifier)}var k=/n|\$|-|%/g,f="";for(;true;){var q=k.lastIndex,h=k.exec(c);f+=c.slice(q,h?h.index:c.length);if(!h)break;switch(h[0]){case "n":f+=d;break;case "$":f+=a.CurrencySymbol;break;case "-":if(/[1-9]/.test(d))f+=a.NegativeSign;break;case "%":f+=a.PercentSymbol}}return f};Sys.CultureInfo=function(c,b,a){this.name=c;this.numberFormat=b;this.dateTimeFormat=a};Sys.CultureInfo.prototype={_getDateTimeFormats:function(){if(!this._dateTimeFormats){var a=this.dateTimeFormat;this._dateTimeFormats=[a.MonthDayPattern,a.YearMonthPattern,a.ShortDatePattern,a.ShortTimePattern,a.LongDatePattern,a.LongTimePattern,a.FullDateTimePattern,a.RFC1123Pattern,a.SortableDateTimePattern,a.UniversalSortableDateTimePattern]}return this._dateTimeFormats},_getIndex:function(c,d,e){var b=this._toUpper(c),a=Array.indexOf(d,b);if(a===-1)a=Array.indexOf(e,b);return a},_getMonthIndex:function(a){if(!this._upperMonths){this._upperMonths=this._toUpperArray(this.dateTimeFormat.MonthNames);this._upperMonthsGenitive=this._toUpperArray(this.dateTimeFormat.MonthGenitiveNames)}return this._getIndex(a,this._upperMonths,this._upperMonthsGenitive)},_getAbbrMonthIndex:function(a){if(!this._upperAbbrMonths){this._upperAbbrMonths=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);this._upperAbbrMonthsGenitive=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthGenitiveNames)}return this._getIndex(a,this._upperAbbrMonths,this._upperAbbrMonthsGenitive)},_getDayIndex:function(a){if(!this._upperDays)this._upperDays=this._toUpperArray(this.dateTimeFormat.DayNames);return Array.indexOf(this._upperDays,this._toUpper(a))},_getAbbrDayIndex:function(a){if(!this._upperAbbrDays)this._upperAbbrDays=this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);return Array.indexOf(this._upperAbbrDays,this._toUpper(a))},_toUpperArray:function(c){var b=[];for(var a=0,d=c.length;a<d;a++)b[a]=this._toUpper(c[a]);return b},_toUpper:function(a){return a.split("\u00a0").join(" ").toUpperCase()}};Sys.CultureInfo.registerClass("Sys.CultureInfo");Sys.CultureInfo._parse=function(a){var b=a.dateTimeFormat;if(b&&!b.eras)b.eras=a.eras;return new Sys.CultureInfo(a.name,a.numberFormat,b)};Sys.CultureInfo.InvariantCulture=Sys.CultureInfo._parse({"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00a4","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy'-'MM'-'dd'T'HH':'mm':'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy'-'MM'-'dd HH':'mm':'ss'Z'","YearMonthPattern":"yyyy MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]},"eras":[1,"A.D.",null,0]});if(typeof __cultureInfo==="object"){Sys.CultureInfo.CurrentCulture=Sys.CultureInfo._parse(__cultureInfo);delete __cultureInfo}else Sys.CultureInfo.CurrentCulture=Sys.CultureInfo._parse({"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm tt","SortableDateTimePattern":"yyyy'-'MM'-'dd'T'HH':'mm':'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy'-'MM'-'dd HH':'mm':'ss'Z'","YearMonthPattern":"MMMM, yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":false,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]},"eras":[1,"A.D.",null,0]});Type.registerNamespace("Sys.Serialization");Sys.Serialization.JavaScriptSerializer=function(){};Sys.Serialization.JavaScriptSerializer.registerClass("Sys.Serialization.JavaScriptSerializer");Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs=[];Sys.Serialization.JavaScriptSerializer._charsToEscape=[];Sys.Serialization.JavaScriptSerializer._dateRegEx=new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"',"g");Sys.Serialization.JavaScriptSerializer._escapeChars={};Sys.Serialization.JavaScriptSerializer._escapeRegEx=new RegExp('["\\\\\\x00-\\x1F]',"i");Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal=new RegExp('["\\\\\\x00-\\x1F]',"g");Sys.Serialization.JavaScriptSerializer._jsonRegEx=new RegExp("[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]","g");Sys.Serialization.JavaScriptSerializer._jsonStringRegEx=new RegExp('"(\\\\.|[^"\\\\])*"',"g");Sys.Serialization.JavaScriptSerializer._serverTypeFieldName="__type";Sys.Serialization.JavaScriptSerializer._init=function(){var c=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000b","\\f","\\r","\\u000e","\\u000f","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001a","\\u001b","\\u001c","\\u001d","\\u001e","\\u001f"];Sys.Serialization.JavaScriptSerializer._charsToEscape[0]="\\";Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs["\\"]=new RegExp("\\\\","g");Sys.Serialization.JavaScriptSerializer._escapeChars["\\"]="\\\\";Sys.Serialization.JavaScriptSerializer._charsToEscape[1]='"';Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"']=new RegExp('"',"g");Sys.Serialization.JavaScriptSerializer._escapeChars['"']='\\"';for(var a=0;a<32;a++){var b=String.fromCharCode(a);Sys.Serialization.JavaScriptSerializer._charsToEscape[a+2]=b;Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[b]=new RegExp(b,"g");Sys.Serialization.JavaScriptSerializer._escapeChars[b]=c[a]}};Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder=function(b,a){a.append(b.toString())};Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder=function(a,b){if(isFinite(a))b.append(String(a));else throw Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers)};Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder=function(a,c){c.append('"');if(Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(a)){if(Sys.Serialization.JavaScriptSerializer._charsToEscape.length===0)Sys.Serialization.JavaScriptSerializer._init();if(a.length<128)a=a.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,function(a){return Sys.Serialization.JavaScriptSerializer._escapeChars[a]});else for(var d=0;d<34;d++){var b=Sys.Serialization.JavaScriptSerializer._charsToEscape[d];if(a.indexOf(b)!==-1)if(Sys.Browser.agent===Sys.Browser.Opera||Sys.Browser.agent===Sys.Browser.FireFox)a=a.split(b).join(Sys.Serialization.JavaScriptSerializer._escapeChars[b]);else a=a.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[b],Sys.Serialization.JavaScriptSerializer._escapeChars[b])}}c.append(a);c.append('"')};Sys.Serialization.JavaScriptSerializer._serializeWithBuilder=function(b,a,i,g){var c;switch(typeof b){case "object":if(b)if(Number.isInstanceOfType(b))Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(b,a);else if(Boolean.isInstanceOfType(b))Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(b,a);else if(String.isInstanceOfType(b))Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(b,a);else if(Array.isInstanceOfType(b)){a.append("[");for(c=0;c<b.length;++c){if(c>0)a.append(",");Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b[c],a,false,g)}a.append("]")}else{if(Date.isInstanceOfType(b)){a.append('"\\/Date(');a.append(b.getTime());a.append(')\\/"');break}var d=[],f=0;for(var e in b){if(e.startsWith("$"))continue;if(e===Sys.Serialization.JavaScriptSerializer._serverTypeFieldName&&f!==0){d[f++]=d[0];d[0]=e}else d[f++]=e}if(i)d.sort();a.append("{");var j=false;for(c=0;c<f;c++){var h=b[d[c]];if(typeof h!=="undefined"&&typeof h!=="function"){if(j)a.append(",");else j=true;Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(d[c],a,i,g);a.append(":");Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(h,a,i,g)}}a.append("}")}else a.append("null");break;case "number":Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(b,a);break;case "string":Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(b,a);break;case "boolean":Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(b,a);break;default:a.append("null")}};Sys.Serialization.JavaScriptSerializer.serialize=function(b){var a=new Sys.StringBuilder;Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(b,a,false);return a.toString()};Sys.Serialization.JavaScriptSerializer.deserialize=function(data,secure){if(data.length===0)throw Error.argument("data",Sys.Res.cannotDeserializeEmptyString);try{var exp=data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx,"$1new Date($2)");if(secure&&Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx,"")))throw null;return eval("("+exp+")")}catch(a){throw Error.argument("data",Sys.Res.cannotDeserializeInvalidJson)}};Type.registerNamespace("Sys.UI");Sys.EventHandlerList=function(){this._list={}};Sys.EventHandlerList.prototype={_addHandler:function(b,a){Array.add(this._getEvent(b,true),a)},addHandler:function(b,a){this._addHandler(b,a)},_removeHandler:function(c,b){var a=this._getEvent(c);if(!a)return;Array.remove(a,b)},removeHandler:function(b,a){this._removeHandler(b,a)},getHandler:function(b){var a=this._getEvent(b);if(!a||a.length===0)return null;a=Array.clone(a);return function(c,d){for(var b=0,e=a.length;b<e;b++)a[b](c,d)}},_getEvent:function(a,b){if(!this._list[a]){if(!b)return null;this._list[a]=[]}return this._list[a]}};Sys.EventHandlerList.registerClass("Sys.EventHandlerList");Sys.CommandEventArgs=function(c,a,b){Sys.CommandEventArgs.initializeBase(this);this._commandName=c;this._commandArgument=a;this._commandSource=b};Sys.CommandEventArgs.prototype={_commandName:null,_commandArgument:null,_commandSource:null,get_commandName:function(){return this._commandName},get_commandArgument:function(){return this._commandArgument},get_commandSource:function(){return this._commandSource}};Sys.CommandEventArgs.registerClass("Sys.CommandEventArgs",Sys.CancelEventArgs);Sys.INotifyPropertyChange=function(){};Sys.INotifyPropertyChange.prototype={};Sys.INotifyPropertyChange.registerInterface("Sys.INotifyPropertyChange");Sys.PropertyChangedEventArgs=function(a){Sys.PropertyChangedEventArgs.initializeBase(this);this._propertyName=a};Sys.PropertyChangedEventArgs.prototype={get_propertyName:function(){return this._propertyName}};Sys.PropertyChangedEventArgs.registerClass("Sys.PropertyChangedEventArgs",Sys.EventArgs);Sys.INotifyDisposing=function(){};Sys.INotifyDisposing.prototype={};Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");Sys.Component=function(){if(Sys.Application)Sys.Application.registerDisposableObject(this)};Sys.Component.prototype={_id:null,_initialized:false,_updating:false,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_id:function(){return this._id},set_id:function(a){this._id=a},get_isInitialized:function(){return this._initialized},get_isUpdating:function(){return this._updating},add_disposing:function(a){this.get_events().addHandler("disposing",a)},remove_disposing:function(a){this.get_events().removeHandler("disposing",a)},add_propertyChanged:function(a){this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){this.get_events().removeHandler("propertyChanged",a)},beginUpdate:function(){this._updating=true},dispose:function(){if(this._events){var a=this._events.getHandler("disposing");if(a)a(this,Sys.EventArgs.Empty)}delete this._events;Sys.Application.unregisterDisposableObject(this);Sys.Application.removeComponent(this)},endUpdate:function(){this._updating=false;if(!this._initialized)this.initialize();this.updated()},initialize:function(){this._initialized=true},raisePropertyChanged:function(b){if(!this._events)return;var a=this._events.getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},updated:function(){}};Sys.Component.registerClass("Sys.Component",null,Sys.IDisposable,Sys.INotifyPropertyChange,Sys.INotifyDisposing);function Sys$Component$_setProperties(a,i){var d,j=Object.getType(a),e=j===Object||j===Sys.UI.DomElement,h=Sys.Component.isInstanceOfType(a)&&!a.get_isUpdating();if(h)a.beginUpdate();for(var c in i){var b=i[c],f=e?null:a["get_"+c];if(e||typeof f!=="function"){var k=a[c];if(!b||typeof b!=="object"||e&&!k)a[c]=b;else Sys$Component$_setProperties(k,b)}else{var l=a["set_"+c];if(typeof l==="function")l.apply(a,[b]);else if(b instanceof Array){d=f.apply(a);for(var g=0,m=d.length,n=b.length;g<n;g++,m++)d[m]=b[g]}else if(typeof b==="object"&&Object.getType(b)===Object){d=f.apply(a);Sys$Component$_setProperties(d,b)}}}if(h)a.endUpdate()}function Sys$Component$_setReferences(c,b){for(var a in b){var e=c["set_"+a],d=$find(b[a]);e.apply(c,[d])}}var $create=Sys.Component.create=function(h,f,d,c,g){var a=g?new h(g):new h,b=Sys.Application,i=b.get_isCreatingComponents();a.beginUpdate();if(f)Sys$Component$_setProperties(a,f);if(d)for(var e in d)a["add_"+e](d[e]);if(a.get_id())b.addComponent(a);if(i){b._createdComponents[b._createdComponents.length]=a;if(c)b._addComponentToSecondPass(a,c);else a.endUpdate()}else{if(c)Sys$Component$_setReferences(a,c);a.endUpdate()}return a};Sys.UI.MouseButton=function(){throw Error.notImplemented()};Sys.UI.MouseButton.prototype={leftButton:0,middleButton:1,rightButton:2};Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");Sys.UI.Key=function(){throw Error.notImplemented()};Sys.UI.Key.prototype={backspace:8,tab:9,enter:13,esc:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,right:39,down:40,del:127};Sys.UI.Key.registerEnum("Sys.UI.Key");Sys.UI.Point=function(a,b){this.x=a;this.y=b};Sys.UI.Point.registerClass("Sys.UI.Point");Sys.UI.Bounds=function(c,d,b,a){this.x=c;this.y=d;this.height=a;this.width=b};Sys.UI.Bounds.registerClass("Sys.UI.Bounds");Sys.UI.DomEvent=function(e){var a=e,b=this.type=a.type.toLowerCase();this.rawEvent=a;this.altKey=a.altKey;if(typeof a.button!=="undefined")this.button=typeof a.which!=="undefined"?a.button:a.button===4?Sys.UI.MouseButton.middleButton:a.button===2?Sys.UI.MouseButton.rightButton:Sys.UI.MouseButton.leftButton;if(b==="keypress")this.charCode=a.charCode||a.keyCode;else if(a.keyCode&&a.keyCode===46)this.keyCode=127;else this.keyCode=a.keyCode;this.clientX=a.clientX;this.clientY=a.clientY;this.ctrlKey=a.ctrlKey;this.target=a.target?a.target:a.srcElement;if(!b.startsWith("key"))if(typeof a.offsetX!=="undefined"&&typeof a.offsetY!=="undefined"){this.offsetX=a.offsetX;this.offsetY=a.offsetY}else if(this.target&&this.target.nodeType!==3&&typeof a.clientX==="number"){var c=Sys.UI.DomElement.getLocation(this.target),d=Sys.UI.DomElement._getWindow(this.target);this.offsetX=(d.pageXOffset||0)+a.clientX-c.x;this.offsetY=(d.pageYOffset||0)+a.clientY-c.y}this.screenX=a.screenX;this.screenY=a.screenY;this.shiftKey=a.shiftKey};Sys.UI.DomEvent.prototype={preventDefault:function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false},stopPropagation:function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true}};Sys.UI.DomEvent.registerClass("Sys.UI.DomEvent");var $addHandler=Sys.UI.DomEvent.addHandler=function(a,d,e,g){if(!a._events)a._events={};var c=a._events[d];if(!c)a._events[d]=c=[];var b;if(a.addEventListener){b=function(b){return e.call(a,new Sys.UI.DomEvent(b))};a.addEventListener(d,b,false)}else if(a.attachEvent){b=function(){var b={};try{b=Sys.UI.DomElement._getWindow(a).event}catch(c){}return e.call(a,new Sys.UI.DomEvent(b))};a.attachEvent("on"+d,b)}c[c.length]={handler:e,browserHandler:b,autoRemove:g};if(g){var f=a.dispose;if(f!==Sys.UI.DomEvent._disposeHandlers){a.dispose=Sys.UI.DomEvent._disposeHandlers;if(typeof f!=="undefined")a._chainDispose=f}}},$addHandlers=Sys.UI.DomEvent.addHandlers=function(f,d,c,e){for(var b in d){var a=d[b];if(c)a=Function.createDelegate(c,a);$addHandler(f,b,a,e||false)}},$clearHandlers=Sys.UI.DomEvent.clearHandlers=function(a){Sys.UI.DomEvent._clearHandlers(a,false)};Sys.UI.DomEvent._clearHandlers=function(a,g){if(a._events){var e=a._events;for(var b in e){var d=e[b];for(var c=d.length-1;c>=0;c--){var f=d[c];if(!g||f.autoRemove)$removeHandler(a,b,f.handler)}}a._events=null}};Sys.UI.DomEvent._disposeHandlers=function(){Sys.UI.DomEvent._clearHandlers(this,true);var b=this._chainDispose,a=typeof b;if(a!=="undefined"){this.dispose=b;this._chainDispose=null;if(a==="function")this.dispose()}};var $removeHandler=Sys.UI.DomEvent.removeHandler=function(b,a,c){Sys.UI.DomEvent._removeHandler(b,a,c)};Sys.UI.DomEvent._removeHandler=function(a,e,f){var d=null,c=a._events[e];for(var b=0,g=c.length;b<g;b++)if(c[b].handler===f){d=c[b].browserHandler;break}if(a.removeEventListener)a.removeEventListener(e,d,false);else if(a.detachEvent)a.detachEvent("on"+e,d);c.splice(b,1)};Sys.UI.DomElement=function(){};Sys.UI.DomElement.registerClass("Sys.UI.DomElement");Sys.UI.DomElement.addCssClass=function(a,b){if(!Sys.UI.DomElement.containsCssClass(a,b))if(a.className==="")a.className=b;else a.className+=" "+b};Sys.UI.DomElement.containsCssClass=function(b,a){return Array.contains(b.className.split(" "),a)};Sys.UI.DomElement.getBounds=function(a){var b=Sys.UI.DomElement.getLocation(a);return new Sys.UI.Bounds(b.x,b.y,a.offsetWidth||0,a.offsetHeight||0)};var $get=Sys.UI.DomElement.getElementById=function(f,e){if(!e)return document.getElementById(f);if(e.getElementById)return e.getElementById(f);var c=[],d=e.childNodes;for(var b=0;b<d.length;b++){var a=d[b];if(a.nodeType==1)c[c.length]=a}while(c.length){a=c.shift();if(a.id==f)return a;d=a.childNodes;for(b=0;b<d.length;b++){a=d[b];if(a.nodeType==1)c[c.length]=a}}return null};if(document.documentElement.getBoundingClientRect)Sys.UI.DomElement.getLocation=function(b){if(b.self||b.nodeType===9||b===document.documentElement||b.parentNode===b.ownerDocument.documentElement)return new Sys.UI.Point(0,0);var f=b.getBoundingClientRect();if(!f)return new Sys.UI.Point(0,0);var k,e=b.ownerDocument.documentElement,c=Math.round(f.left)+e.scrollLeft,d=Math.round(f.top)+e.scrollTop;if(Sys.Browser.agent===Sys.Browser.InternetExplorer){try{var g=b.ownerDocument.parentWindow.frameElement||null;if(g){var h=g.frameBorder==="0"||g.frameBorder==="no"?2:0;c+=h;d+=h}}catch(l){}if(Sys.Browser.version===7&&!document.documentMode){var i=document.body,j=i.getBoundingClientRect(),a=(j.right-j.left)/i.clientWidth;a=Math.round(a*100);a=(a-a%5)/100;if(!isNaN(a)&&a!==1){c=Math.round(c/a);d=Math.round(d/a)}}if((document.documentMode||0)<8){c-=e.clientLeft;d-=e.clientTop}}return new Sys.UI.Point(c,d)};else if(Sys.Browser.agent===Sys.Browser.Safari)Sys.UI.DomElement.getLocation=function(c){if(c.window&&c.window===c||c.nodeType===9)return new Sys.UI.Point(0,0);var d=0,e=0,a,j=null,g=null,b;for(a=c;a;j=a,(g=b,a=a.offsetParent)){b=Sys.UI.DomElement._getCurrentStyle(a);var f=a.tagName?a.tagName.toUpperCase():null;if((a.offsetLeft||a.offsetTop)&&(f!=="BODY"||(!g||g.position!=="absolute"))){d+=a.offsetLeft;e+=a.offsetTop}if(j&&Sys.Browser.version>=3){d+=parseInt(b.borderLeftWidth);e+=parseInt(b.borderTopWidth)}}b=Sys.UI.DomElement._getCurrentStyle(c);var h=b?b.position:null;if(!h||h!=="absolute")for(a=c.parentNode;a;a=a.parentNode){f=a.tagName?a.tagName.toUpperCase():null;if(f!=="BODY"&&f!=="HTML"&&(a.scrollLeft||a.scrollTop)){d-=a.scrollLeft||0;e-=a.scrollTop||0}b=Sys.UI.DomElement._getCurrentStyle(a);var i=b?b.position:null;if(i&&i==="absolute")break}return new Sys.UI.Point(d,e)};else Sys.UI.DomElement.getLocation=function(d){if(d.window&&d.window===d||d.nodeType===9)return new Sys.UI.Point(0,0);var e=0,f=0,a,i=null,g=null,b=null;for(a=d;a;i=a,(g=b,a=a.offsetParent)){var c=a.tagName?a.tagName.toUpperCase():null;b=Sys.UI.DomElement._getCurrentStyle(a);if((a.offsetLeft||a.offsetTop)&&!(c==="BODY"&&(!g||g.position!=="absolute"))){e+=a.offsetLeft;f+=a.offsetTop}if(i!==null&&b){if(c!=="TABLE"&&c!=="TD"&&c!=="HTML"){e+=parseInt(b.borderLeftWidth)||0;f+=parseInt(b.borderTopWidth)||0}if(c==="TABLE"&&(b.position==="relative"||b.position==="absolute")){e+=parseInt(b.marginLeft)||0;f+=parseInt(b.marginTop)||0}}}b=Sys.UI.DomElement._getCurrentStyle(d);var h=b?b.position:null;if(!h||h!=="absolute")for(a=d.parentNode;a;a=a.parentNode){c=a.tagName?a.tagName.toUpperCase():null;if(c!=="BODY"&&c!=="HTML"&&(a.scrollLeft||a.scrollTop)){e-=a.scrollLeft||0;f-=a.scrollTop||0;b=Sys.UI.DomElement._getCurrentStyle(a);if(b){e+=parseInt(b.borderLeftWidth)||0;f+=parseInt(b.borderTopWidth)||0}}}return new Sys.UI.Point(e,f)};Sys.UI.DomElement.isDomElement=function(a){return Sys._isDomElement(a)};Sys.UI.DomElement.removeCssClass=function(d,c){var a=" "+d.className+" ",b=a.indexOf(" "+c+" ");if(b>=0)d.className=(a.substr(0,b)+" "+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.resolveElement=function(b,c){var a=b;if(!a)return null;if(typeof a==="string")a=Sys.UI.DomElement.getElementById(a,c);return a};Sys.UI.DomElement.raiseBubbleEvent=function(c,d){var b=c;while(b){var a=b.control;if(a&&a.onBubbleEvent&&a.raiseBubbleEvent){Sys.UI.DomElement._raiseBubbleEventFromControl(a,c,d);return}b=b.parentNode}};Sys.UI.DomElement._raiseBubbleEventFromControl=function(a,b,c){if(!a.onBubbleEvent(b,c))a._raiseBubbleEvent(b,c)};Sys.UI.DomElement.setLocation=function(b,c,d){var a=b.style;a.position="absolute";a.left=c+"px";a.top=d+"px"};Sys.UI.DomElement.toggleCssClass=function(b,a){if(Sys.UI.DomElement.containsCssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=function(a){return a._visibilityMode===Sys.UI.VisibilityMode.hide?Sys.UI.VisibilityMode.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMode=function(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibilityMode!==b){a._visibilityMode=b;if(Sys.UI.DomElement.getVisible(a)===false)if(a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none";a._visibilityMode=b}};Sys.UI.DomElement.getVisible=function(b){var a=b.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);if(!a)return true;return a.visibility!=="hidden"&&a.display!=="none"};Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){Sys.UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=b?"visible":"hidden";if(b||a._visibilityMode===Sys.UI.VisibilityMode.hide)a.style.display=a._oldDisplayMode;else a.style.display="none"}};Sys.UI.DomElement._ensureOldDisplayMode=function(a){if(!a._oldDisplayMode){var b=a.currentStyle||Sys.UI.DomElement._getCurrentStyle(a);a._oldDisplayMode=b?b.display:null;if(!a._oldDisplayMode||a._oldDisplayMode==="none")switch(a.tagName.toUpperCase()){case "DIV":case "P":case "ADDRESS":case "BLOCKQUOTE":case "BODY":case "COL":case "COLGROUP":case "DD":case "DL":case "DT":case "FIELDSET":case "FORM":case "H1":case "H2":case "H3":case "H4":case "H5":case "H6":case "HR":case "IFRAME":case "LEGEND":case "OL":case "PRE":case "TABLE":case "TD":case "TH":case "TR":case "UL":a._oldDisplayMode="block";break;case "LI":a._oldDisplayMode="list-item";break;default:a._oldDisplayMode="inline"}}};Sys.UI.DomElement._getWindow=function(a){var b=a.ownerDocument||a.document||a;return b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=function(a){if(a.nodeType===3)return null;var c=Sys.UI.DomElement._getWindow(a);if(a.documentElement)a=a.documentElement;var b=c&&a!==c&&c.getComputedStyle?c.getComputedStyle(a,null):a.currentStyle||a.style;if(!b&&Sys.Browser.agent===Sys.Browser.Safari&&a.style){var g=a.style.display,f=a.style.position;a.style.position="absolute";a.style.display="block";var e=c.getComputedStyle(a,null);a.style.display=g;a.style.position=f;b={};for(var d in e)b[d]=e[d];b.display="none"}return b};Sys.IContainer=function(){};Sys.IContainer.prototype={};Sys.IContainer.registerInterface("Sys.IContainer");Sys.ApplicationLoadEventArgs=function(b,a){Sys.ApplicationLoadEventArgs.initializeBase(this);this._components=b;this._isPartialLoad=a};Sys.ApplicationLoadEventArgs.prototype={get_components:function(){return this._components},get_isPartialLoad:function(){return this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass("Sys.ApplicationLoadEventArgs",Sys.EventArgs);Sys._Application=function(){Sys._Application.initializeBase(this);this._disposableObjects=[];this._components={};this._createdComponents=[];this._secondPassComponents=[];this._unloadHandlerDelegate=Function.createDelegate(this,this._unloadHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._unloadHandlerDelegate);this._domReady()};Sys._Application.prototype={_creatingComponents:false,_disposing:false,_deleteCount:0,get_isCreatingComponents:function(){return this._creatingComponents},get_isDisposing:function(){return this._disposing},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);else this.get_events().addHandler("init",a)},remove_init:function(a){this.get_events().removeHandler("init",a)},add_load:function(a){this.get_events().addHandler("load",a)},remove_load:function(a){this.get_events().removeHandler("load",a)},add_unload:function(a){this.get_events().addHandler("unload",a)},remove_unload:function(a){this.get_events().removeHandler("unload",a)},addComponent:function(a){this._components[a.get_id()]=a},beginCreateComponents:function(){this._creatingComponents=true},dispose:function(){if(!this._disposing){this._disposing=true;if(this._timerCookie){window.clearTimeout(this._timerCookie);delete this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);delete this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);delete this._beginRequestHandler}if(window.pageUnload)window.pageUnload(this,Sys.EventArgs.Empty);var c=this.get_events().getHandler("unload");if(c)c(this,Sys.EventArgs.Empty);var b=Array.clone(this._disposableObjects);for(var a=0,f=b.length;a<f;a++){var d=b[a];if(typeof d!=="undefined")d.dispose()}Array.clear(this._disposableObjects);Sys.UI.DomEvent.removeHandler(window,"unload",this._unloadHandlerDelegate);if(Sys._ScriptLoader){var e=Sys._ScriptLoader.getInstance();if(e)e.dispose()}Sys._Application.callBaseMethod(this,"dispose")}},disposeElement:function(c,j){if(c.nodeType===1){var b,h=c.getElementsByTagName("*"),g=h.length,i=new Array(g);for(b=0;b<g;b++)i[b]=h[b];for(b=g-1;b>=0;b--){var d=i[b],f=d.dispose;if(f&&typeof f==="function")d.dispose();else{var e=d.control;if(e&&typeof e.dispose==="function")e.dispose()}var a=d._behaviors;if(a)this._disposeComponents(a);a=d._components;if(a){this._disposeComponents(a);d._components=null}}if(!j){var f=c.dispose;if(f&&typeof f==="function")c.dispose();else{var e=c.control;if(e&&typeof e.dispose==="function")e.dispose()}var a=c._behaviors;if(a)this._disposeComponents(a);a=c._components;if(a){this._disposeComponents(a);c._components=null}}}},endCreateComponents:function(){var b=this._secondPassComponents;for(var a=0,d=b.length;a<d;a++){var c=b[a].component;Sys$Component$_setReferences(c,b[a].references);c.endUpdate()}this._secondPassComponents=[];this._creatingComponents=false},findComponent:function(b,a){return a?Sys.IContainer.isInstanceOfType(a)?a.findComponent(b):a[b]||null:Sys.Application._components[b]||null},getComponents:function(){var a=[],b=this._components;for(var c in b)a[a.length]=b[c];return a},initialize:function(){if(!this.get_isInitialized()&&!this._disposing){Sys._Application.callBaseMethod(this,"initialize");this._raiseInit();if(this.get_stateString){if(Sys.WebForms&&Sys.WebForms.PageRequestManager){this._beginRequestHandler=Function.createDelegate(this,this._onPageRequestManagerBeginRequest);Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._beginRequestHandler);this._endRequestHandler=Function.createDelegate(this,this._onPageRequestManagerEndRequest);Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandler)}var a=this.get_stateString();if(a!==this._currentEntry)this._navigate(a);else this._ensureHistory()}this.raiseLoad()}},notifyScriptLoaded:function(){},registerDisposableObject:function(b){if(!this._disposing){var a=this._disposableObjects,c=a.length;a[c]=b;b.__msdisposeindex=c}},raiseLoad:function(){var b=this.get_events().getHandler("load"),a=new Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents),!!this._loaded);this._loaded=true;if(b)b(this,a);if(window.pageLoad)window.pageLoad(this,a);this._createdComponents=[]},removeComponent:function(b){var a=b.get_id();if(a)delete this._components[a]},unregisterDisposableObject:function(a){if(!this._disposing){var e=a.__msdisposeindex;if(typeof e==="number"){var b=this._disposableObjects;delete b[e];delete a.__msdisposeindex;if(++this._deleteCount>1000){var c=[];for(var d=0,f=b.length;d<f;d++){a=b[d];if(typeof a!=="undefined"){a.__msdisposeindex=c.length;c.push(a)}}this._disposableObjects=c;this._deleteCount=0}}}},_addComponentToSecondPass:function(b,a){this._secondPassComponents[this._secondPassComponents.length]={component:b,references:a}},_disposeComponents:function(a){if(a)for(var b=a.length-1;b>=0;b--){var c=a[b];if(typeof c.dispose==="function")c.dispose()}},_domReady:function(){var a,g,f=this;function b(){f.initialize()}var c=function(){Sys.UI.DomEvent.removeHandler(window,"load",c);b()};Sys.UI.DomEvent.addHandler(window,"load",c);if(document.addEventListener)try{document.addEventListener("DOMContentLoaded",a=function(){document.removeEventListener("DOMContentLoaded",a,false);b()},false)}catch(h){}else if(document.attachEvent)if(window==window.top&&document.documentElement.doScroll){var e,d=document.createElement("div");a=function(){try{d.doScroll("left")}catch(c){e=window.setTimeout(a,0);return}d=null;b()};a()}else document.attachEvent("onreadystatechange",a=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",a);b()}})},_raiseInit:function(){var a=this.get_events().getHandler("init");if(a){this.beginCreateComponents();a(this,Sys.EventArgs.Empty);this.endCreateComponents()}},_unloadHandler:function(){this.dispose()}};Sys._Application.registerClass("Sys._Application",Sys.Component,Sys.IContainer);Sys.Application=new Sys._Application;var $find=Sys.Application.findComponent;Sys.UI.Behavior=function(b){Sys.UI.Behavior.initializeBase(this);this._element=b;var a=b._behaviors;if(!a)b._behaviors=[this];else a[a.length]=this};Sys.UI.Behavior.prototype={_name:null,get_element:function(){return this._element},get_id:function(){var a=Sys.UI.Behavior.callBaseMethod(this,"get_id");if(a)return a;if(!this._element||!this._element.id)return "";return this._element.id+"$"+this.get_name()},get_name:function(){if(this._name)return this._name;var a=Object.getTypeName(this),b=a.lastIndexOf(".");if(b!==-1)a=a.substr(b+1);if(!this.get_isInitialized())this._name=a;return a},set_name:function(a){this._name=a},initialize:function(){Sys.UI.Behavior.callBaseMethod(this,"initialize");var a=this.get_name();if(a)this._element[a]=this},dispose:function(){Sys.UI.Behavior.callBaseMethod(this,"dispose");var a=this._element;if(a){var c=this.get_name();if(c)a[c]=null;var b=a._behaviors;Array.remove(b,this);if(b.length===0)a._behaviors=null;delete this._element}}};Sys.UI.Behavior.registerClass("Sys.UI.Behavior",Sys.Component);Sys.UI.Behavior.getBehaviorByName=function(b,c){var a=b[c];return a&&Sys.UI.Behavior.isInstanceOfType(a)?a:null};Sys.UI.Behavior.getBehaviors=function(a){if(!a._behaviors)return [];return Array.clone(a._behaviors)};Sys.UI.Behavior.getBehaviorsByType=function(d,e){var a=d._behaviors,c=[];if(a)for(var b=0,f=a.length;b<f;b++)if(e.isInstanceOfType(a[b]))c[c.length]=a[b];return c};Sys.UI.VisibilityMode=function(){throw Error.notImplemented()};Sys.UI.VisibilityMode.prototype={hide:0,collapse:1};Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");Sys.UI.Control=function(a){Sys.UI.Control.initializeBase(this);this._element=a;a.control=this;var b=this.get_role();if(b)a.setAttribute("role",b)};Sys.UI.Control.prototype={_parent:null,_visibilityMode:Sys.UI.VisibilityMode.hide,get_element:function(){return this._element},get_id:function(){if(!this._element)return "";return this._element.id},set_id:function(){throw Error.invalidOperation(Sys.Res.cantSetId)},get_parent:function(){if(this._parent)return this._parent;if(!this._element)return null;var a=this._element.parentNode;while(a){if(a.control)return a.control;a=a.parentNode}return null},set_parent:function(a){this._parent=a},get_role:function(){return null},get_visibilityMode:function(){return Sys.UI.DomElement.getVisibilityMode(this._element)},set_visibilityMode:function(a){Sys.UI.DomElement.setVisibilityMode(this._element,a)},get_visible:function(){return Sys.UI.DomElement.getVisible(this._element)},set_visible:function(a){Sys.UI.DomElement.setVisible(this._element,a)},addCssClass:function(a){Sys.UI.DomElement.addCssClass(this._element,a)},dispose:function(){Sys.UI.Control.callBaseMethod(this,"dispose");if(this._element){this._element.control=null;delete this._element}if(this._parent)delete this._parent},onBubbleEvent:function(){return false},raiseBubbleEvent:function(a,b){this._raiseBubbleEvent(a,b)},_raiseBubbleEvent:function(b,c){var a=this.get_parent();while(a){if(a.onBubbleEvent(b,c))return;a=a.get_parent()}},removeCssClass:function(a){Sys.UI.DomElement.removeCssClass(this._element,a)},toggleCssClass:function(a){Sys.UI.DomElement.toggleCssClass(this._element,a)}};Sys.UI.Control.registerClass("Sys.UI.Control",Sys.Component);Sys.HistoryEventArgs=function(a){Sys.HistoryEventArgs.initializeBase(this);this._state=a};Sys.HistoryEventArgs.prototype={get_state:function(){return this._state}};Sys.HistoryEventArgs.registerClass("Sys.HistoryEventArgs",Sys.EventArgs);Sys.Application._appLoadHandler=null;Sys.Application._beginRequestHandler=null;Sys.Application._clientId=null;Sys.Application._currentEntry="";Sys.Application._endRequestHandler=null;Sys.Application._history=null;Sys.Application._enableHistory=false;Sys.Application._historyFrame=null;Sys.Application._historyInitialized=false;Sys.Application._historyPointIsNew=false;Sys.Application._ignoreTimer=false;Sys.Application._initialState=null;Sys.Application._state={};Sys.Application._timerCookie=0;Sys.Application._timerHandler=null;Sys.Application._uniqueId=null;Sys._Application.prototype.get_stateString=function(){var a=null;if(Sys.Browser.agent===Sys.Browser.Firefox){var c=window.location.href,b=c.indexOf("#");if(b!==-1)a=c.substring(b+1);else a="";return a}else a=window.location.hash;if(a.length>0&&a.charAt(0)==="#")a=a.substring(1);return a};Sys._Application.prototype.get_enableHistory=function(){return this._enableHistory};Sys._Application.prototype.set_enableHistory=function(a){this._enableHistory=a};Sys._Application.prototype.add_navigate=function(a){this.get_events().addHandler("navigate",a)};Sys._Application.prototype.remove_navigate=function(a){this.get_events().removeHandler("navigate",a)};Sys._Application.prototype.addHistoryPoint=function(c,f){this._ensureHistory();var b=this._state;for(var a in c){var d=c[a];if(d===null){if(typeof b[a]!=="undefined")delete b[a]}else b[a]=d}var e=this._serializeState(b);this._historyPointIsNew=true;this._setState(e,f);this._raiseNavigate()};Sys._Application.prototype.setServerId=function(a,b){this._clientId=a;this._uniqueId=b};Sys._Application.prototype.setServerState=function(a){this._ensureHistory();this._state.__s=a;this._updateHiddenField(a)};Sys._Application.prototype._deserializeState=function(a){var e={};a=a||"";var b=a.indexOf("&&");if(b!==-1&&b+2<a.length){e.__s=a.substr(b+2);a=a.substr(0,b)}var g=a.split("&");for(var f=0,j=g.length;f<j;f++){var d=g[f],c=d.indexOf("=");if(c!==-1&&c+1<d.length){var i=d.substr(0,c),h=d.substr(c+1);e[i]=decodeURIComponent(h)}}return e};Sys._Application.prototype._enableHistoryInScriptManager=function(){this._enableHistory=true};Sys._Application.prototype._ensureHistory=function(){if(!this._historyInitialized&&this._enableHistory){if(Sys.Browser.agent===Sys.Browser.InternetExplorer&&Sys.Browser.documentMode<8){this._historyFrame=document.getElementById("__historyFrame");this._ignoreIFrame=true}this._timerHandler=Function.createDelegate(this,this._onIdle);this._timerCookie=window.setTimeout(this._timerHandler,100);try{this._initialState=this._deserializeState(this.get_stateString())}catch(a){}this._historyInitialized=true}};Sys._Application.prototype._navigate=function(c){this._ensureHistory();var b=this._deserializeState(c);if(this._uniqueId){var d=this._state.__s||"",a=b.__s||"";if(a!==d){this._updateHiddenField(a);__doPostBack(this._uniqueId,a);this._state=b;return}}this._setState(c);this._state=b;this._raiseNavigate()};Sys._Application.prototype._onIdle=function(){delete this._timerCookie;var a=this.get_stateString();if(a!==this._currentEntry){if(!this._ignoreTimer){this._historyPointIsNew=false;this._navigate(a)}}else this._ignoreTimer=false;this._timerCookie=window.setTimeout(this._timerHandler,100)};Sys._Application.prototype._onIFrameLoad=function(a){this._ensureHistory();if(!this._ignoreIFrame){this._historyPointIsNew=false;this._navigate(a)}this._ignoreIFrame=false};Sys._Application.prototype._onPageRequestManagerBeginRequest=function(){this._ignoreTimer=true;this._originalTitle=document.title};Sys._Application.prototype._onPageRequestManagerEndRequest=function(g,f){var d=f.get_dataItems()[this._clientId],c=this._originalTitle;this._originalTitle=null;var b=document.getElementById("__EVENTTARGET");if(b&&b.value===this._uniqueId)b.value="";if(typeof d!=="undefined"){this.setServerState(d);this._historyPointIsNew=true}else this._ignoreTimer=false;var a=this._serializeState(this._state);if(a!==this._currentEntry){this._ignoreTimer=true;if(typeof c==="string"){if(Sys.Browser.agent!==Sys.Browser.InternetExplorer||Sys.Browser.version>7){var e=document.title;document.title=c;this._setState(a);document.title=e}else this._setState(a);this._raiseNavigate()}else{this._setState(a);this._raiseNavigate()}}};Sys._Application.prototype._raiseNavigate=function(){var d=this._historyPointIsNew,c=this.get_events().getHandler("navigate"),b={};for(var a in this._state)if(a!=="__s")b[a]=this._state[a];var e=new Sys.HistoryEventArgs(b);if(c)c(this,e);if(!d){var f;try{if(Sys.Browser.agent===Sys.Browser.Firefox&&window.location.hash&&(!window.frameElement||window.top.location.hash))Sys.Browser.version<3.5?window.history.go(0):(location.hash=this.get_stateString())}catch(g){}}};Sys._Application.prototype._serializeState=function(d){var b=[];for(var a in d){var e=d[a];if(a==="__s")var c=e;else b[b.length]=a+"="+encodeURIComponent(e)}return b.join("&")+(c?"&&"+c:"")};Sys._Application.prototype._setState=function(a,b){if(this._enableHistory){a=a||"";if(a!==this._currentEntry){if(window.theForm){var d=window.theForm.action,e=d.indexOf("#");window.theForm.action=(e!==-1?d.substring(0,e):d)+"#"+a}if(this._historyFrame&&this._historyPointIsNew){this._ignoreIFrame=true;var c=this._historyFrame.contentWindow.document;c.open("javascript:'<html></html>'");c.write("<html><head><title>"+(b||document.title)+"</title><scri"+'pt type="text/javascript">parent.Sys.Application._onIFrameLoad('+Sys.Serialization.JavaScriptSerializer.serialize(a)+");</scri"+"pt></head><body></body></html>");c.close()}this._ignoreTimer=false;this._currentEntry=a;if(this._historyFrame||this._historyPointIsNew){var f=this.get_stateString();if(a!==f){window.location.hash=a;this._currentEntry=this.get_stateString();if(typeof b!=="undefined"&&b!==null)document.title=b}}this._historyPointIsNew=false}}};Sys._Application.prototype._updateHiddenField=function(b){if(this._clientId){var a=document.getElementById(this._clientId);if(a)a.value=b}};if(!window.XMLHttpRequest)window.XMLHttpRequest=function(){var b=["Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP"];for(var a=0,c=b.length;a<c;a++)try{return new ActiveXObject(b[a])}catch(d){}return null};Type.registerNamespace("Sys.Net");Sys.Net.WebRequestExecutor=function(){this._webRequest=null;this._resultObject=null};Sys.Net.WebRequestExecutor.prototype={get_webRequest:function(){return this._webRequest},_set_webRequest:function(a){this._webRequest=a},get_started:function(){throw Error.notImplemented()},get_responseAvailable:function(){throw Error.notImplemented()},get_timedOut:function(){throw Error.notImplemented()},get_aborted:function(){throw Error.notImplemented()},get_responseData:function(){throw Error.notImplemented()},get_statusCode:function(){throw Error.notImplemented()},get_statusText:function(){throw Error.notImplemented()},get_xml:function(){throw Error.notImplemented()},get_object:function(){if(!this._resultObject)this._resultObject=Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData());return this._resultObject},executeRequest:function(){throw Error.notImplemented()},abort:function(){throw Error.notImplemented()},getResponseHeader:function(){throw Error.notImplemented()},getAllResponseHeaders:function(){throw Error.notImplemented()}};Sys.Net.WebRequestExecutor.registerClass("Sys.Net.WebRequestExecutor");Sys.Net.XMLDOM=function(d){if(!window.DOMParser){var c=["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument"];for(var b=0,f=c.length;b<f;b++)try{var a=new ActiveXObject(c[b]);a.async=false;a.loadXML(d);a.setProperty("SelectionLanguage","XPath");return a}catch(g){}}else try{var e=new window.DOMParser;return e.parseFromString(d,"text/xml")}catch(g){}return null};Sys.Net.XMLHttpExecutor=function(){Sys.Net.XMLHttpExecutor.initializeBase(this);var a=this;this._xmlHttpRequest=null;this._webRequest=null;this._responseAvailable=false;this._timedOut=false;this._timer=null;this._aborted=false;this._started=false;this._onReadyStateChange=function(){if(a._xmlHttpRequest.readyState===4){try{if(typeof a._xmlHttpRequest.status==="undefined")return}catch(b){return}a._clearTimer();a._responseAvailable=true;try{a._webRequest.completed(Sys.EventArgs.Empty)}finally{if(a._xmlHttpRequest!=null){a._xmlHttpRequest.onreadystatechange=Function.emptyMethod;a._xmlHttpRequest=null}}}};this._clearTimer=function(){if(a._timer!=null){window.clearTimeout(a._timer);a._timer=null}};this._onTimeout=function(){if(!a._responseAvailable){a._clearTimer();a._timedOut=true;a._xmlHttpRequest.onreadystatechange=Function.emptyMethod;a._xmlHttpRequest.abort();a._webRequest.completed(Sys.EventArgs.Empty);a._xmlHttpRequest=null}}};Sys.Net.XMLHttpExecutor.prototype={get_timedOut:function(){return this._timedOut},get_started:function(){return this._started},get_responseAvailable:function(){return this._responseAvailable},get_aborted:function(){return this._aborted},executeRequest:function(){this._webRequest=this.get_webRequest();var c=this._webRequest.get_body(),a=this._webRequest.get_headers();this._xmlHttpRequest=new XMLHttpRequest;this._xmlHttpRequest.onreadystatechange=this._onReadyStateChange;var e=this._webRequest.get_httpVerb();this._xmlHttpRequest.open(e,this._webRequest.getResolvedUrl(),true);this._xmlHttpRequest.setRequestHeader("X-Requested-With","XMLHttpRequest");if(a)for(var b in a){var f=a[b];if(typeof f!=="function")this._xmlHttpRequest.setRequestHeader(b,f)}if(e.toLowerCase()==="post"){if(a===null||!a["Content-Type"])this._xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");if(!c)c=""}var d=this._webRequest.get_timeout();if(d>0)this._timer=window.setTimeout(Function.createDelegate(this,this._onTimeout),d);this._xmlHttpRequest.send(c);this._started=true},getResponseHeader:function(b){var a;try{a=this._xmlHttpRequest.getResponseHeader(b)}catch(c){}if(!a)a="";return a},getAllResponseHeaders:function(){return this._xmlHttpRequest.getAllResponseHeaders()},get_responseData:function(){return this._xmlHttpRequest.responseText},get_statusCode:function(){var a=0;try{a=this._xmlHttpRequest.status}catch(b){}return a},get_statusText:function(){return this._xmlHttpRequest.statusText},get_xml:function(){var a=this._xmlHttpRequest.responseXML;if(!a||!a.documentElement){a=Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);if(!a||!a.documentElement)return null}else if(navigator.userAgent.indexOf("MSIE")!==-1)a.setProperty("SelectionLanguage","XPath");if(a.documentElement.namespaceURI==="http://www.mozilla.org/newlayout/xml/parsererror.xml"&&a.documentElement.tagName==="parsererror")return null;if(a.documentElement.firstChild&&a.documentElement.firstChild.tagName==="parsererror")return null;return a},abort:function(){if(this._aborted||this._responseAvailable||this._timedOut)return;this._aborted=true;this._clearTimer();if(this._xmlHttpRequest&&!this._responseAvailable){this._xmlHttpRequest.onreadystatechange=Function.emptyMethod;this._xmlHttpRequest.abort();this._xmlHttpRequest=null;this._webRequest.completed(Sys.EventArgs.Empty)}}};Sys.Net.XMLHttpExecutor.registerClass("Sys.Net.XMLHttpExecutor",Sys.Net.WebRequestExecutor);Sys.Net._WebRequestManager=function(){this._defaultTimeout=0;this._defaultExecutorType="Sys.Net.XMLHttpExecutor"};Sys.Net._WebRequestManager.prototype={add_invokingRequest:function(a){this._get_eventHandlerList().addHandler("invokingRequest",a)},remove_invokingRequest:function(a){this._get_eventHandlerList().removeHandler("invokingRequest",a)},add_completedRequest:function(a){this._get_eventHandlerList().addHandler("completedRequest",a)},remove_completedRequest:function(a){this._get_eventHandlerList().removeHandler("completedRequest",a)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_defaultTimeout:function(){return this._defaultTimeout},set_defaultTimeout:function(a){this._defaultTimeout=a},get_defaultExecutorType:function(){return this._defaultExecutorType},set_defaultExecutorType:function(a){this._defaultExecutorType=a},executeRequest:function(webRequest){var executor=webRequest.get_executor();if(!executor){var failed=false;try{var executorType=eval(this._defaultExecutorType);executor=new executorType}catch(a){failed=true}webRequest.set_executor(executor)}if(executor.get_aborted())return;var evArgs=new Sys.Net.NetworkRequestEventArgs(webRequest),handler=this._get_eventHandlerList().getHandler("invokingRequest");if(handler)handler(this,evArgs);if(!evArgs.get_cancel())executor.executeRequest()}};Sys.Net._WebRequestManager.registerClass("Sys.Net._WebRequestManager");Sys.Net.WebRequestManager=new Sys.Net._WebRequestManager;Sys.Net.NetworkRequestEventArgs=function(a){Sys.Net.NetworkRequestEventArgs.initializeBase(this);this._webRequest=a};Sys.Net.NetworkRequestEventArgs.prototype={get_webRequest:function(){return this._webRequest}};Sys.Net.NetworkRequestEventArgs.registerClass("Sys.Net.NetworkRequestEventArgs",Sys.CancelEventArgs);Sys.Net.WebRequest=function(){this._url="";this._headers={};this._body=null;this._userContext=null;this._httpVerb=null;this._executor=null;this._invokeCalled=false;this._timeout=0};Sys.Net.WebRequest.prototype={add_completed:function(a){this._get_eventHandlerList().addHandler("completed",a)},remove_completed:function(a){this._get_eventHandlerList().removeHandler("completed",a)},completed:function(b){var a=Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRequest");if(a)a(this._executor,b);a=this._get_eventHandlerList().getHandler("completed");if(a)a(this._executor,b)},_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_url:function(){return this._url},set_url:function(a){this._url=a},get_headers:function(){return this._headers},get_httpVerb:function(){if(this._httpVerb===null){if(this._body===null)return "GET";return "POST"}return this._httpVerb},set_httpVerb:function(a){this._httpVerb=a},get_body:function(){return this._body},set_body:function(a){this._body=a},get_userContext:function(){return this._userContext},set_userContext:function(a){this._userContext=a},get_executor:function(){return this._executor},set_executor:function(a){this._executor=a;this._executor._set_webRequest(this)},get_timeout:function(){if(this._timeout===0)return Sys.Net.WebRequestManager.get_defaultTimeout();return this._timeout},set_timeout:function(a){this._timeout=a},getResolvedUrl:function(){return Sys.Net.WebRequest._resolveUrl(this._url)},invoke:function(){Sys.Net.WebRequestManager.executeRequest(this);this._invokeCalled=true}};Sys.Net.WebRequest._resolveUrl=function(b,a){if(b&&b.indexOf("://")!==-1)return b;if(!a||a.length===0){var d=document.getElementsByTagName("base")[0];if(d&&d.href&&d.href.length>0)a=d.href;else a=document.URL}var c=a.indexOf("?");if(c!==-1)a=a.substr(0,c);c=a.indexOf("#");if(c!==-1)a=a.substr(0,c);a=a.substr(0,a.lastIndexOf("/")+1);if(!b||b.length===0)return a;if(b.charAt(0)==="/"){var e=a.indexOf("://"),g=a.indexOf("/",e+3);return a.substr(0,g)+b}else{var f=a.lastIndexOf("/");return a.substr(0,f+1)+b}};Sys.Net.WebRequest._createQueryString=function(c,b,f){b=b||encodeURIComponent;var h=0,e,g,d,a=new Sys.StringBuilder;if(c)for(d in c){e=c[d];if(typeof e==="function")continue;g=Sys.Serialization.JavaScriptSerializer.serialize(e);if(h++)a.append("&");a.append(d);a.append("=");a.append(b(g))}if(f){if(h)a.append("&");a.append(f)}return a.toString()};Sys.Net.WebRequest._createUrl=function(a,b,c){if(!b&&!c)return a;var d=Sys.Net.WebRequest._createQueryString(b,null,c);return d.length?a+(a&&a.indexOf("?")>=0?"&":"?")+d:a};Sys.Net.WebRequest.registerClass("Sys.Net.WebRequest");Sys._ScriptLoaderTask=function(b,a){this._scriptElement=b;this._completedCallback=a};Sys._ScriptLoaderTask.prototype={get_scriptElement:function(){return this._scriptElement},dispose:function(){if(this._disposed)return;this._disposed=true;this._removeScriptElementHandlers();Sys._ScriptLoaderTask._clearScript(this._scriptElement);this._scriptElement=null},execute:function(){this._addScriptElementHandlers();document.getElementsByTagName("head")[0].appendChild(this._scriptElement)},_addScriptElementHandlers:function(){this._scriptLoadDelegate=Function.createDelegate(this,this._scriptLoadHandler);if(Sys.Browser.agent!==Sys.Browser.InternetExplorer){this._scriptElement.readyState="loaded";$addHandler(this._scriptElement,"load",this._scriptLoadDelegate)}else $addHandler(this._scriptElement,"readystatechange",this._scriptLoadDelegate);if(this._scriptElement.addEventListener){this._scriptErrorDelegate=Function.createDelegate(this,this._scriptErrorHandler);this._scriptElement.addEventListener("error",this._scriptErrorDelegate,false)}},_removeScriptElementHandlers:function(){if(this._scriptLoadDelegate){var a=this.get_scriptElement();if(Sys.Browser.agent!==Sys.Browser.InternetExplorer)$removeHandler(a,"load",this._scriptLoadDelegate);else $removeHandler(a,"readystatechange",this._scriptLoadDelegate);if(this._scriptErrorDelegate){this._scriptElement.removeEventListener("error",this._scriptErrorDelegate,false);this._scriptErrorDelegate=null}this._scriptLoadDelegate=null}},_scriptErrorHandler:function(){if(this._disposed)return;this._completedCallback(this.get_scriptElement(),false)},_scriptLoadHandler:function(){if(this._disposed)return;var a=this.get_scriptElement();if(a.readyState!=="loaded"&&a.readyState!=="complete")return;this._completedCallback(a,true)}};Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask",null,Sys.IDisposable);Sys._ScriptLoaderTask._clearScript=function(a){if(!Sys.Debug.isDebug)a.parentNode.removeChild(a)};Type.registerNamespace("Sys.Net");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout||0},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return typeof this._userContext==="undefined"?null:this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded||null},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed||null},set_defaultFailedCallback:function(a){this._failed=a},get_enableJsonp:function(){return !!this._jsonp},set_enableJsonp:function(a){this._jsonp=a},get_path:function(){return this._path||null},set_path:function(a){this._path=a},get_jsonpCallbackParameter:function(){return this._callbackParameter||"callback"},set_jsonpCallbackParameter:function(a){this._callbackParameter=a},_invoke:function(d,e,g,f,c,b,a){c=c||this.get_defaultSucceededCallback();b=b||this.get_defaultFailedCallback();if(a===null||typeof a==="undefined")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout(),this.get_enableJsonp(),this.get_jsonpCallbackParameter())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(q,a,m,l,j,b,g,e,w,p){var i=w!==false?Sys.Net.WebServiceProxy._xdomain.exec(q):null,c,n=i&&i.length===3&&(i[1]!==location.protocol||i[2]!==location.host);m=n||m;if(n){p=p||"callback";c="_jsonp"+Sys._jsonp++}if(!l)l={};var r=l;if(!m||!r)r={};var s,h,f=null,k,o=null,u=Sys.Net.WebRequest._createUrl(a?q+"/"+encodeURIComponent(a):q,r,n?p+"=Sys."+c:null);if(n){s=document.createElement("script");s.src=u;k=new Sys._ScriptLoaderTask(s,function(d,b){if(!b||c)t({Message:String.format(Sys.Res.webServiceFailedNoMsg,a)},-1)});function v(){if(f===null)return;f=null;h=new Sys.Net.WebServiceError(true,String.format(Sys.Res.webServiceTimedOut,a));k.dispose();delete Sys[c];if(b)b(h,g,a)}function t(d,e){if(f!==null){window.clearTimeout(f);f=null}k.dispose();delete Sys[c];c=null;if(typeof e!=="undefined"&&e!==200){if(b){h=new Sys.Net.WebServiceError(false,d.Message||String.format(Sys.Res.webServiceFailedNoMsg,a),d.StackTrace||null,d.ExceptionType||null,d);h._statusCode=e;b(h,g,a)}}else if(j)j(d,g,a)}Sys[c]=t;e=e||Sys.Net.WebRequestManager.get_defaultTimeout();if(e>0)f=window.setTimeout(v,e);k.execute();return null}var d=new Sys.Net.WebRequest;d.set_url(u);d.get_headers()["Content-Type"]="application/json; charset=utf-8";if(!m){o=Sys.Serialization.JavaScriptSerializer.serialize(l);if(o==="{}")o=""}d.set_body(o);d.add_completed(x);if(e&&e>0)d.set_timeout(e);d.invoke();function x(d){if(d.get_responseAvailable()){var f=d.get_statusCode(),c=null;try{var e=d.getResponseHeader("Content-Type");if(e.startsWith("application/json"))c=d.get_object();else if(e.startsWith("text/xml"))c=d.get_xml();else c=d.get_responseData()}catch(m){}var k=d.getResponseHeader("jsonerror"),h=k==="true";if(h){if(c)c=new Sys.Net.WebServiceError(false,c.Message,c.StackTrace,c.ExceptionType,c)}else if(e.startsWith("application/json"))c=!c||typeof c.d==="undefined"?c:c.d;if(f<200||f>=300||h){if(b){if(!c||!h)c=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a));c._statusCode=f;b(c,g,a)}}else if(j)j(c,g,a)}else{var i;if(d.get_timedOut())i=String.format(Sys.Res.webServiceTimedOut,a);else i=String.format(Sys.Res.webServiceFailedNoMsg,a);if(b)b(new Sys.Net.WebServiceError(d.get_timedOut(),i,"",""),g,a)}}return d};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys._jsonp=0;Sys.Net.WebServiceProxy._xdomain=/^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;Sys.Net.WebServiceError=function(d,e,c,a,b){this._timedOut=d;this._message=e;this._stackTrace=c;this._exceptionType=a;this._errorObject=b;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace||""},get_exceptionType:function(){return this._exceptionType||""},get_errorObject:function(){return this._errorObject||null}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError");
Type.registerNamespace('Sys');Sys.Res={"argumentInteger":"Value must be an integer.","invokeCalledTwice":"Cannot call invoke more than once.","webServiceFailed":"The server method \u0027{0}\u0027 failed with the following error: {1}","argumentType":"Object cannot be converted to the required type.","argumentNull":"Value cannot be null.","scriptAlreadyLoaded":"The script \u0027{0}\u0027 has been referenced multiple times. If referencing Microsoft AJAX scripts explicitly, set the MicrosoftAjaxMode property of the ScriptManager to Explicit.","scriptDependencyNotFound":"The script \u0027{0}\u0027 failed to load because it is dependent on script \u0027{1}\u0027.","formatBadFormatSpecifier":"Format specifier was invalid.","requiredScriptReferenceNotIncluded":"\u0027{0}\u0027 requires that you have included a script reference to \u0027{1}\u0027.","webServiceFailedNoMsg":"The server method \u0027{0}\u0027 failed.","argumentDomElement":"Value must be a DOM element.","invalidExecutorType":"Could not create a valid Sys.Net.WebRequestExecutor from: {0}.","cannotCallBeforeResponse":"Cannot call {0} when responseAvailable is false.","actualValue":"Actual value was {0}.","enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum {1}.","scriptLoadFailed":"The script \u0027{0}\u0027 could not be loaded.","parameterCount":"Parameter count mismatch.","cannotDeserializeEmptyString":"Cannot deserialize empty string.","formatInvalidString":"Input string was not in a correct format.","invalidTimeout":"Value must be greater than or equal to zero.","cannotAbortBeforeStart":"Cannot abort when executor has not started.","argument":"Value does not fall within the expected range.","cannotDeserializeInvalidJson":"Cannot deserialize. The data does not correspond to valid JSON.","invalidHttpVerb":"httpVerb cannot be set to an empty or null string.","nullWebRequest":"Cannot call executeRequest with a null webRequest.","eventHandlerInvalid":"Handler was not added through the Sys.UI.DomEvent.addHandler method.","cannotSerializeNonFiniteNumbers":"Cannot serialize non finite numbers.","argumentUndefined":"Value cannot be undefined.","webServiceInvalidReturnType":"The server method \u0027{0}\u0027 returned an invalid type. Expected type: {1}","servicePathNotSet":"The path to the web service has not been set.","argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be converted to type \u0027{1}\u0027.","cannotCallOnceStarted":"Cannot call {0} once started.","badBaseUrl1":"Base URL does not contain ://.","badBaseUrl2":"Base URL does not contain another /.","badBaseUrl3":"Cannot find last / in base URL.","setExecutorAfterActive":"Cannot set executor after it has become active.","paramName":"Parameter name: {0}","nullReferenceInPath":"Null reference while evaluating data path: \u0027{0}\u0027.","cannotCallOutsideHandler":"Cannot call {0} outside of a completed event handler.","cannotSerializeObjectWithCycle":"Cannot serialize object with cyclic reference within child properties.","format":"One of the identified items was in an invalid format.","assertFailedCaller":"Assertion Failed: {0}\r\nat {1}","argumentOutOfRange":"Specified argument was out of the range of valid values.","webServiceTimedOut":"The server method \u0027{0}\u0027 timed out.","notImplemented":"The method or operation is not implemented.","assertFailed":"Assertion Failed: {0}","invalidOperation":"Operation is not valid due to the current state of the object.","breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?"};
//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// MicrosoftAjaxWebForms.js
Type._registerScript("MicrosoftAjaxWebForms.js",["MicrosoftAjaxCore.js","MicrosoftAjaxSerialization.js","MicrosoftAjaxNetwork.js","MicrosoftAjaxComponentModel.js"]);Type.registerNamespace("Sys.WebForms");Sys.WebForms.BeginRequestEventArgs=function(c,b,a){Sys.WebForms.BeginRequestEventArgs.initializeBase(this);this._request=c;this._postBackElement=b;this._updatePanelsToUpdate=a};Sys.WebForms.BeginRequestEventArgs.prototype={get_postBackElement:function(){return this._postBackElement},get_request:function(){return this._request},get_updatePanelsToUpdate:function(){return this._updatePanelsToUpdate?Array.clone(this._updatePanelsToUpdate):[]}};Sys.WebForms.BeginRequestEventArgs.registerClass("Sys.WebForms.BeginRequestEventArgs",Sys.EventArgs);Sys.WebForms.EndRequestEventArgs=function(c,a,b){Sys.WebForms.EndRequestEventArgs.initializeBase(this);this._errorHandled=false;this._error=c;this._dataItems=a||{};this._response=b};Sys.WebForms.EndRequestEventArgs.prototype={get_dataItems:function(){return this._dataItems},get_error:function(){return this._error},get_errorHandled:function(){return this._errorHandled},set_errorHandled:function(a){this._errorHandled=a},get_response:function(){return this._response}};Sys.WebForms.EndRequestEventArgs.registerClass("Sys.WebForms.EndRequestEventArgs",Sys.EventArgs);Sys.WebForms.InitializeRequestEventArgs=function(c,b,a){Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);this._request=c;this._postBackElement=b;this._updatePanelsToUpdate=a};Sys.WebForms.InitializeRequestEventArgs.prototype={get_postBackElement:function(){return this._postBackElement},get_request:function(){return this._request},get_updatePanelsToUpdate:function(){return this._updatePanelsToUpdate?Array.clone(this._updatePanelsToUpdate):[]},set_updatePanelsToUpdate:function(a){this._updated=true;this._updatePanelsToUpdate=a}};Sys.WebForms.InitializeRequestEventArgs.registerClass("Sys.WebForms.InitializeRequestEventArgs",Sys.CancelEventArgs);Sys.WebForms.PageLoadedEventArgs=function(b,a,c){Sys.WebForms.PageLoadedEventArgs.initializeBase(this);this._panelsUpdated=b;this._panelsCreated=a;this._dataItems=c||{}};Sys.WebForms.PageLoadedEventArgs.prototype={get_dataItems:function(){return this._dataItems},get_panelsCreated:function(){return this._panelsCreated},get_panelsUpdated:function(){return this._panelsUpdated}};Sys.WebForms.PageLoadedEventArgs.registerClass("Sys.WebForms.PageLoadedEventArgs",Sys.EventArgs);Sys.WebForms.PageLoadingEventArgs=function(b,a,c){Sys.WebForms.PageLoadingEventArgs.initializeBase(this);this._panelsUpdating=b;this._panelsDeleting=a;this._dataItems=c||{}};Sys.WebForms.PageLoadingEventArgs.prototype={get_dataItems:function(){return this._dataItems},get_panelsDeleting:function(){return this._panelsDeleting},get_panelsUpdating:function(){return this._panelsUpdating}};Sys.WebForms.PageLoadingEventArgs.registerClass("Sys.WebForms.PageLoadingEventArgs",Sys.EventArgs);Sys._ScriptLoader=function(){this._scriptsToLoad=null;this._sessions=[];this._scriptLoadedDelegate=Function.createDelegate(this,this._scriptLoadedHandler)};Sys._ScriptLoader.prototype={dispose:function(){this._stopSession();this._loading=false;if(this._events)delete this._events;this._sessions=null;this._currentSession=null;this._scriptLoadedDelegate=null},loadScripts:function(d,b,c,a){var e={allScriptsLoadedCallback:b,scriptLoadFailedCallback:c,scriptLoadTimeoutCallback:a,scriptsToLoad:this._scriptsToLoad,scriptTimeout:d};this._scriptsToLoad=null;this._sessions[this._sessions.length]=e;if(!this._loading)this._nextSession()},queueCustomScriptTag:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,a)},queueScriptBlock:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{text:a})},queueScriptReference:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=[];Array.add(this._scriptsToLoad,{src:a})},_createScriptElement:function(c){var a=document.createElement("script");a.type="text/javascript";for(var b in c)a[b]=c[b];return a},_loadScriptsInternal:function(){var b=this._currentSession;if(b.scriptsToLoad&&b.scriptsToLoad.length>0){var c=Array.dequeue(b.scriptsToLoad),a=this._createScriptElement(c);if(a.text&&Sys.Browser.agent===Sys.Browser.Safari){a.innerHTML=a.text;delete a.text}if(typeof c.src==="string"){this._currentTask=new Sys._ScriptLoaderTask(a,this._scriptLoadedDelegate);this._currentTask.execute()}else{document.getElementsByTagName("head")[0].appendChild(a);Sys._ScriptLoaderTask._clearScript(a);this._loadScriptsInternal()}}else{this._stopSession();var d=b.allScriptsLoadedCallback;if(d)d(this);this._nextSession()}},_nextSession:function(){if(this._sessions.length===0){this._loading=false;this._currentSession=null;return}this._loading=true;var a=Array.dequeue(this._sessions);this._currentSession=a;if(a.scriptTimeout>0)this._timeoutCookie=window.setTimeout(Function.createDelegate(this,this._scriptLoadTimeoutHandler),a.scriptTimeout*1000);this._loadScriptsInternal()},_raiseError:function(){var b=this._currentSession.scriptLoadFailedCallback,a=this._currentTask.get_scriptElement();this._stopSession();if(b){b(this,a);this._nextSession()}else{this._loading=false;throw Sys._ScriptLoader._errorScriptLoadFailed(a.src)}},_scriptLoadedHandler:function(a,b){if(b){Array.add(Sys._ScriptLoader._getLoadedScripts(),a.src);this._currentTask.dispose();this._currentTask=null;this._loadScriptsInternal()}else this._raiseError()},_scriptLoadTimeoutHandler:function(){var a=this._currentSession.scriptLoadTimeoutCallback;this._stopSession();if(a)a(this);this._nextSession()},_stopSession:function(){if(this._timeoutCookie){window.clearTimeout(this._timeoutCookie);this._timeoutCookie=null}if(this._currentTask){this._currentTask.dispose();this._currentTask=null}}};Sys._ScriptLoader.registerClass("Sys._ScriptLoader",null,Sys.IDisposable);Sys._ScriptLoader.getInstance=function(){var a=Sys._ScriptLoader._activeInstance;if(!a)a=Sys._ScriptLoader._activeInstance=new Sys._ScriptLoader;return a};Sys._ScriptLoader.isScriptLoaded=function(b){var a=document.createElement("script");a.src=b;return Array.contains(Sys._ScriptLoader._getLoadedScripts(),a.src)};Sys._ScriptLoader.readLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){var c=Sys._ScriptLoader._referencedScripts=[],d=document.getElementsByTagName("script");for(var b=d.length-1;b>=0;b--){var e=d[b],a=e.src;if(a.length)if(!Array.contains(c,a))Array.add(c,a)}}};Sys._ScriptLoader._errorScriptLoadFailed=function(b){var a;a=Sys.Res.scriptLoadFailed;var d="Sys.ScriptLoadFailedException: "+String.format(a,b),c=Error.create(d,{name:"Sys.ScriptLoadFailedException","scriptUrl":b});c.popStackFrame();return c};Sys._ScriptLoader._getLoadedScripts=function(){if(!Sys._ScriptLoader._referencedScripts){Sys._ScriptLoader._referencedScripts=[];Sys._ScriptLoader.readLoadedScripts()}return Sys._ScriptLoader._referencedScripts};Sys.WebForms.PageRequestManager=function(){this._form=null;this._activeDefaultButton=null;this._activeDefaultButtonClicked=false;this._updatePanelIDs=null;this._updatePanelClientIDs=null;this._updatePanelHasChildrenAsTriggers=null;this._asyncPostBackControlIDs=null;this._asyncPostBackControlClientIDs=null;this._postBackControlIDs=null;this._postBackControlClientIDs=null;this._scriptManagerID=null;this._pageLoadedHandler=null;this._additionalInput=null;this._onsubmit=null;this._onSubmitStatements=[];this._originalDoPostBack=null;this._originalDoPostBackWithOptions=null;this._originalFireDefaultButton=null;this._originalDoCallback=null;this._isCrossPost=false;this._postBackSettings=null;this._request=null;this._onFormSubmitHandler=null;this._onFormElementClickHandler=null;this._onWindowUnloadHandler=null;this._asyncPostBackTimeout=null;this._controlIDToFocus=null;this._scrollPosition=null;this._processingRequest=false;this._scriptDisposes={};this._transientFields=["__VIEWSTATEENCRYPTED","__VIEWSTATEFIELDCOUNT"]};Sys.WebForms.PageRequestManager.prototype={_get_eventHandlerList:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},get_isInAsyncPostBack:function(){return this._request!==null},add_beginRequest:function(a){this._get_eventHandlerList().addHandler("beginRequest",a)},remove_beginRequest:function(a){this._get_eventHandlerList().removeHandler("beginRequest",a)},add_endRequest:function(a){this._get_eventHandlerList().addHandler("endRequest",a)},remove_endRequest:function(a){this._get_eventHandlerList().removeHandler("endRequest",a)},add_initializeRequest:function(a){this._get_eventHandlerList().addHandler("initializeRequest",a)},remove_initializeRequest:function(a){this._get_eventHandlerList().removeHandler("initializeRequest",a)},add_pageLoaded:function(a){this._get_eventHandlerList().addHandler("pageLoaded",a)},remove_pageLoaded:function(a){this._get_eventHandlerList().removeHandler("pageLoaded",a)},add_pageLoading:function(a){this._get_eventHandlerList().addHandler("pageLoading",a)},remove_pageLoading:function(a){this._get_eventHandlerList().removeHandler("pageLoading",a)},abortPostBack:function(){if(!this._processingRequest&&this._request){this._request.get_executor().abort();this._request=null}},beginAsyncPostBack:function(c,a,f,d,e){if(d&&typeof Page_ClientValidate==="function"&&!Page_ClientValidate(e||null))return;this._postBackSettings=this._createPostBackSettings(true,c,a);var b=this._form;b.__EVENTTARGET.value=a||"";b.__EVENTARGUMENT.value=f||"";this._isCrossPost=false;this._additionalInput=null;this._onFormSubmit()},_cancelPendingCallbacks:function(){for(var a=0,e=window.__pendingCallbacks.length;a<e;a++){var c=window.__pendingCallbacks[a];if(c){if(!c.async)window.__synchronousCallBackIndex=-1;window.__pendingCallbacks[a]=null;var d="__CALLBACKFRAME"+a,b=document.getElementById(d);if(b)b.parentNode.removeChild(b)}}},_commitControls:function(a,b){if(a){this._updatePanelIDs=a.updatePanelIDs;this._updatePanelClientIDs=a.updatePanelClientIDs;this._updatePanelHasChildrenAsTriggers=a.updatePanelHasChildrenAsTriggers;this._asyncPostBackControlIDs=a.asyncPostBackControlIDs;this._asyncPostBackControlClientIDs=a.asyncPostBackControlClientIDs;this._postBackControlIDs=a.postBackControlIDs;this._postBackControlClientIDs=a.postBackControlClientIDs}if(typeof b!=="undefined"&&b!==null)this._asyncPostBackTimeout=b*1000},_createHiddenField:function(c,d){var b,a=document.getElementById(c);if(a)if(!a._isContained)a.parentNode.removeChild(a);else b=a.parentNode;if(!b){b=document.createElement("span");b.style.cssText="display:none !important";this._form.appendChild(b)}b.innerHTML="<input type='hidden' />";a=b.childNodes[0];a._isContained=true;a.id=a.name=c;a.value=d},_createPageRequestManagerTimeoutError:function(){var b="Sys.WebForms.PageRequestManagerTimeoutException: "+Sys.WebForms.Res.PRM_TimeoutError,a=Error.create(b,{name:"Sys.WebForms.PageRequestManagerTimeoutException"});a.popStackFrame();return a},_createPageRequestManagerServerError:function(a,d){var c="Sys.WebForms.PageRequestManagerServerErrorException: "+(d||String.format(Sys.WebForms.Res.PRM_ServerError,a)),b=Error.create(c,{name:"Sys.WebForms.PageRequestManagerServerErrorException",httpStatusCode:a});b.popStackFrame();return b},_createPageRequestManagerParserError:function(b){var c="Sys.WebForms.PageRequestManagerParserErrorException: "+String.format(Sys.WebForms.Res.PRM_ParserError,b),a=Error.create(c,{name:"Sys.WebForms.PageRequestManagerParserErrorException"});a.popStackFrame();return a},_createPanelID:function(e,b){var c=b.asyncTarget,a=this._ensureUniqueIds(e||b.panelsToUpdate),d=a instanceof Array?a.join(","):a||this._scriptManagerID;if(c)d+="|"+c;return encodeURIComponent(this._scriptManagerID)+"="+encodeURIComponent(d)+"&"},_createPostBackSettings:function(d,a,c,b){return {async:d,asyncTarget:c,panelsToUpdate:a,sourceElement:b}},_convertToClientIDs:function(a,f,e,d){if(a)for(var b=0,h=a.length;b<h;b+=d?2:1){var c=a[b],g=(d?a[b+1]:"")||this._uniqueIDToClientID(c);Array.add(f,c);Array.add(e,g)}},dispose:function(){if(this._form){Sys.UI.DomEvent.removeHandler(this._form,"submit",this._onFormSubmitHandler);Sys.UI.DomEvent.removeHandler(this._form,"click",this._onFormElementClickHandler);Sys.UI.DomEvent.removeHandler(window,"unload",this._onWindowUnloadHandler);Sys.UI.DomEvent.removeHandler(window,"load",this._pageLoadedHandler)}if(this._originalDoPostBack){window.__doPostBack=this._originalDoPostBack;this._originalDoPostBack=null}if(this._originalDoPostBackWithOptions){window.WebForm_DoPostBackWithOptions=this._originalDoPostBackWithOptions;this._originalDoPostBackWithOptions=null}if(this._originalFireDefaultButton){window.WebForm_FireDefaultButton=this._originalFireDefaultButton;this._originalFireDefaultButton=null}if(this._originalDoCallback){window.WebForm_DoCallback=this._originalDoCallback;this._originalDoCallback=null}this._form=null;this._updatePanelIDs=null;this._updatePanelClientIDs=null;this._asyncPostBackControlIDs=null;this._asyncPostBackControlClientIDs=null;this._postBackControlIDs=null;this._postBackControlClientIDs=null;this._asyncPostBackTimeout=null;this._scrollPosition=null;this._activeElement=null},_doCallback:function(d,b,c,f,a,e){if(!this.get_isInAsyncPostBack())this._originalDoCallback(d,b,c,f,a,e)},_doPostBack:function(a,k){var f=window.event;if(!f){var d=arguments.callee?arguments.callee.caller:null;if(d){var j=30;while(d.arguments.callee.caller&&--j)d=d.arguments.callee.caller;f=j&&d.arguments.length?d.arguments[0]:null}}this._additionalInput=null;var h=this._form;if(a===null||typeof a==="undefined"||this._isCrossPost){this._postBackSettings=this._createPostBackSettings(false);this._isCrossPost=false}else{var c=this._masterPageUniqueID,l=this._uniqueIDToClientID(a),g=document.getElementById(l);if(!g&&c)if(a.indexOf(c+"$")===0)g=document.getElementById(l.substr(c.length+1));if(!g)if(Array.contains(this._asyncPostBackControlIDs,a))this._postBackSettings=this._createPostBackSettings(true,null,a);else if(Array.contains(this._postBackControlIDs,a))this._postBackSettings=this._createPostBackSettings(false);else{var e=this._findNearestElement(a);if(e)this._postBackSettings=this._getPostBackSettings(e,a);else{if(c){c+="$";if(a.indexOf(c)===0)e=this._findNearestElement(a.substr(c.length))}if(e)this._postBackSettings=this._getPostBackSettings(e,a);else{var b;try{b=f?f.target||f.srcElement:null}catch(n){}b=b||this._activeElement;var m=/__doPostBack\(|WebForm_DoPostBackWithOptions\(/;function i(b){b=b?b.toString():"";return m.test(b)&&b.indexOf("'"+a+"'")!==-1||b.indexOf('"'+a+'"')!==-1}if(b&&(b.name===a||i(b.href)||i(b.onclick)||i(b.onchange)))this._postBackSettings=this._getPostBackSettings(b,a);else this._postBackSettings=this._createPostBackSettings(false)}}}else this._postBackSettings=this._getPostBackSettings(g,a)}if(!this._postBackSettings.async){h.onsubmit=this._onsubmit;this._originalDoPostBack(a,k);h.onsubmit=null;return}h.__EVENTTARGET.value=a;h.__EVENTARGUMENT.value=k;this._onFormSubmit()},_doPostBackWithOptions:function(a){this._isCrossPost=a&&a.actionUrl;var d=true;if(a.validation)if(typeof Page_ClientValidate=="function")d=Page_ClientValidate(a.validationGroup);if(d){if(typeof a.actionUrl!="undefined"&&a.actionUrl!=null&&a.actionUrl.length>0)theForm.action=a.actionUrl;if(a.trackFocus){var c=theForm.elements["__LASTFOCUS"];if(typeof c!="undefined"&&c!=null)if(typeof document.activeElement=="undefined")c.value=a.eventTarget;else{var b=document.activeElement;if(typeof b!="undefined"&&b!=null)if(typeof b.id!="undefined"&&b.id!=null&&b.id.length>0)c.value=b.id;else if(typeof b.name!="undefined")c.value=b.name}}}if(a.clientSubmit)this._doPostBack(a.eventTarget,a.eventArgument)},_elementContains:function(b,a){while(a){if(a===b)return true;a=a.parentNode}return false},_endPostBack:function(a,d,f){if(this._request===d.get_webRequest()){this._processingRequest=false;this._additionalInput=null;this._request=null}var e=this._get_eventHandlerList().getHandler("endRequest"),b=false;if(e){var c=new Sys.WebForms.EndRequestEventArgs(a,f?f.dataItems:{},d);e(this,c);b=c.get_errorHandled()}if(a&&!b)throw a},_ensureUniqueIds:function(a){if(!a)return a;a=a instanceof Array?a:[a];var c=[];for(var b=0,f=a.length;b<f;b++){var e=a[b],d=Array.indexOf(this._updatePanelClientIDs,e);c.push(d>-1?this._updatePanelIDs[d]:e)}return c},_findNearestElement:function(a){while(a.length>0){var d=this._uniqueIDToClientID(a),c=document.getElementById(d);if(c)return c;var b=a.lastIndexOf("$");if(b===-1)return null;a=a.substring(0,b)}return null},_findText:function(b,a){var c=Math.max(0,a-20),d=Math.min(b.length,a+20);return b.substring(c,d)},_fireDefaultButton:function(a,d){if(a.keyCode===13){var c=a.srcElement||a.target;if(!c||c.tagName.toLowerCase()!=="textarea"){var b=document.getElementById(d);if(b&&typeof b.click!=="undefined"){this._activeDefaultButton=b;this._activeDefaultButtonClicked=false;try{b.click()}finally{this._activeDefaultButton=null}a.cancelBubble=true;if(typeof a.stopPropagation==="function")a.stopPropagation();return false}}}return true},_getPageLoadedEventArgs:function(n,c){var m=[],l=[],k=c?c.version4:false,d=c?c.updatePanelData:null,e,g,h,b;if(!d){e=this._updatePanelIDs;g=this._updatePanelClientIDs;h=null;b=null}else{e=d.updatePanelIDs;g=d.updatePanelClientIDs;h=d.childUpdatePanelIDs;b=d.panelsToRefreshIDs}var a,f,j,i;if(b)for(a=0,f=b.length;a<f;a+=k?2:1){j=b[a];i=(k?b[a+1]:"")||this._uniqueIDToClientID(j);Array.add(m,document.getElementById(i))}for(a=0,f=e.length;a<f;a++)if(n||Array.indexOf(h,e[a])!==-1)Array.add(l,document.getElementById(g[a]));return new Sys.WebForms.PageLoadedEventArgs(m,l,c?c.dataItems:{})},_getPageLoadingEventArgs:function(f){var j=[],i=[],c=f.updatePanelData,k=c.oldUpdatePanelIDs,l=c.oldUpdatePanelClientIDs,n=c.updatePanelIDs,m=c.childUpdatePanelIDs,d=c.panelsToRefreshIDs,a,e,b,g,h=f.version4;for(a=0,e=d.length;a<e;a+=h?2:1){b=d[a];g=(h?d[a+1]:"")||this._uniqueIDToClientID(b);Array.add(j,document.getElementById(g))}for(a=0,e=k.length;a<e;a++){b=k[a];if(Array.indexOf(d,b)===-1&&(Array.indexOf(n,b)===-1||Array.indexOf(m,b)>-1))Array.add(i,document.getElementById(l[a]))}return new Sys.WebForms.PageLoadingEventArgs(j,i,f.dataItems)},_getPostBackSettings:function(a,c){var d=a,b=null;while(a){if(a.id){if(!b&&Array.contains(this._asyncPostBackControlClientIDs,a.id))b=this._createPostBackSettings(true,null,c,d);else if(!b&&Array.contains(this._postBackControlClientIDs,a.id))return this._createPostBackSettings(false);else{var e=Array.indexOf(this._updatePanelClientIDs,a.id);if(e!==-1)if(this._updatePanelHasChildrenAsTriggers[e])return this._createPostBackSettings(true,[this._updatePanelIDs[e]],c,d);else return this._createPostBackSettings(true,null,c,d)}if(!b&&this._matchesParentIDInList(a.id,this._asyncPostBackControlClientIDs))b=this._createPostBackSettings(true,null,c,d);else if(!b&&this._matchesParentIDInList(a.id,this._postBackControlClientIDs))return this._createPostBackSettings(false)}a=a.parentNode}if(!b)return this._createPostBackSettings(false);else return b},_getScrollPosition:function(){var a=document.documentElement;if(a&&(this._validPosition(a.scrollLeft)||this._validPosition(a.scrollTop)))return {x:a.scrollLeft,y:a.scrollTop};else{a=document.body;if(a&&(this._validPosition(a.scrollLeft)||this._validPosition(a.scrollTop)))return {x:a.scrollLeft,y:a.scrollTop};else if(this._validPosition(window.pageXOffset)||this._validPosition(window.pageYOffset))return {x:window.pageXOffset,y:window.pageYOffset};else return {x:0,y:0}}},_initializeInternal:function(f,g,a,b,e,c,d){if(this._prmInitialized)throw Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);this._prmInitialized=true;this._masterPageUniqueID=d;this._scriptManagerID=f;this._form=Sys.UI.DomElement.resolveElement(g);this._onsubmit=this._form.onsubmit;this._form.onsubmit=null;this._onFormSubmitHandler=Function.createDelegate(this,this._onFormSubmit);this._onFormElementClickHandler=Function.createDelegate(this,this._onFormElementClick);this._onWindowUnloadHandler=Function.createDelegate(this,this._onWindowUnload);Sys.UI.DomEvent.addHandler(this._form,"submit",this._onFormSubmitHandler);Sys.UI.DomEvent.addHandler(this._form,"click",this._onFormElementClickHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._onWindowUnloadHandler);this._originalDoPostBack=window.__doPostBack;if(this._originalDoPostBack)window.__doPostBack=Function.createDelegate(this,this._doPostBack);this._originalDoPostBackWithOptions=window.WebForm_DoPostBackWithOptions;if(this._originalDoPostBackWithOptions)window.WebForm_DoPostBackWithOptions=Function.createDelegate(this,this._doPostBackWithOptions);this._originalFireDefaultButton=window.WebForm_FireDefaultButton;if(this._originalFireDefaultButton)window.WebForm_FireDefaultButton=Function.createDelegate(this,this._fireDefaultButton);this._originalDoCallback=window.WebForm_DoCallback;if(this._originalDoCallback)window.WebForm_DoCallback=Function.createDelegate(this,this._doCallback);this._pageLoadedHandler=Function.createDelegate(this,this._pageLoadedInitialLoad);Sys.UI.DomEvent.addHandler(window,"load",this._pageLoadedHandler);if(a)this._updateControls(a,b,e,c,true)},_matchesParentIDInList:function(c,b){for(var a=0,d=b.length;a<d;a++)if(c.startsWith(b[a]+"_"))return true;return false},_onFormElementActive:function(a,d,e){if(a.disabled)return;this._activeElement=a;this._postBackSettings=this._getPostBackSettings(a,a.name);if(a.name){var b=a.tagName.toUpperCase();if(b==="INPUT"){var c=a.type;if(c==="submit")this._additionalInput=encodeURIComponent(a.name)+"="+encodeURIComponent(a.value);else if(c==="image")this._additionalInput=encodeURIComponent(a.name)+".x="+d+"&"+encodeURIComponent(a.name)+".y="+e}else if(b==="BUTTON"&&a.name.length!==0&&a.type==="submit")this._additionalInput=encodeURIComponent(a.name)+"="+encodeURIComponent(a.value)}},_onFormElementClick:function(a){this._activeDefaultButtonClicked=a.target===this._activeDefaultButton;this._onFormElementActive(a.target,a.offsetX,a.offsetY)},_onFormSubmit:function(i){var f,u,h=true,v=this._isCrossPost;this._isCrossPost=false;if(this._onsubmit)h=this._onsubmit();if(h)for(f=0,u=this._onSubmitStatements.length;f<u;f++)if(!this._onSubmitStatements[f]()){h=false;break}if(!h){if(i)i.preventDefault();return}var o=this._form;if(v)return;if(this._activeDefaultButton&&!this._activeDefaultButtonClicked)this._onFormElementActive(this._activeDefaultButton,0,0);if(!this._postBackSettings||!this._postBackSettings.async)return;var a=new Sys.StringBuilder,x=o.elements.length,r=this._createPanelID(null,this._postBackSettings);a.append(r);for(f=0;f<x;f++){var e=o.elements[f],g=e.name;if(typeof g==="undefined"||g===null||g.length===0||g===this._scriptManagerID)continue;var n=e.tagName.toUpperCase();if(n==="INPUT"){var l=e.type;if(l==="text"||l==="password"||l==="hidden"||(l==="checkbox"||l==="radio")&&e.checked){a.append(encodeURIComponent(g));a.append("=");a.append(encodeURIComponent(e.value));a.append("&")}}else if(n==="SELECT"){var w=e.options.length;for(var p=0;p<w;p++){var s=e.options[p];if(s.selected){a.append(encodeURIComponent(g));a.append("=");a.append(encodeURIComponent(s.value));a.append("&")}}}else if(n==="TEXTAREA"){a.append(encodeURIComponent(g));a.append("=");a.append(encodeURIComponent(e.value));a.append("&")}}a.append("__ASYNCPOST=true&");if(this._additionalInput){a.append(this._additionalInput);this._additionalInput=null}var b=new Sys.Net.WebRequest,c=o.action;if(Sys.Browser.agent===Sys.Browser.InternetExplorer){var q=c.indexOf("#");if(q!==-1)c=c.substr(0,q);var m=c.indexOf("?");if(m!==-1){var t=c.substr(0,m);if(t.indexOf("%")===-1)c=encodeURI(t)+c.substr(m)}else if(c.indexOf("%")===-1)c=encodeURI(c)}b.set_url(c);b.get_headers()["X-MicrosoftAjax"]="Delta=true";b.get_headers()["Cache-Control"]="no-cache";b.set_timeout(this._asyncPostBackTimeout);b.add_completed(Function.createDelegate(this,this._onFormSubmitCompleted));b.set_body(a.toString());var j,d,k=this._get_eventHandlerList().getHandler("initializeRequest");if(k){j=this._postBackSettings.panelsToUpdate;d=new Sys.WebForms.InitializeRequestEventArgs(b,this._postBackSettings.sourceElement,j);k(this,d);h=!d.get_cancel()}if(!h){if(i)i.preventDefault();return}if(d&&d._updated){j=d.get_updatePanelsToUpdate();b.set_body(b.get_body().replace(r,this._createPanelID(j,this._postBackSettings)))}this._scrollPosition=this._getScrollPosition();this.abortPostBack();k=this._get_eventHandlerList().getHandler("beginRequest");if(k){d=new Sys.WebForms.BeginRequestEventArgs(b,this._postBackSettings.sourceElement,j||this._postBackSettings.panelsToUpdate);k(this,d)}if(this._originalDoCallback)this._cancelPendingCallbacks();this._request=b;this._processingRequest=false;b.invoke();if(i)i.preventDefault()},_onFormSubmitCompleted:function(c){this._processingRequest=true;if(c.get_timedOut()){this._endPostBack(this._createPageRequestManagerTimeoutError(),c,null);return}if(c.get_aborted()){this._endPostBack(null,c,null);return}if(!this._request||c.get_webRequest()!==this._request)return;if(c.get_statusCode()!==200){this._endPostBack(this._createPageRequestManagerServerError(c.get_statusCode()),c,null);return}var a=this._parseDelta(c);if(!a)return;var b,e;if(a.asyncPostBackControlIDsNode&&a.postBackControlIDsNode&&a.updatePanelIDsNode&&a.panelsToRefreshNode&&a.childUpdatePanelIDsNode){var r=this._updatePanelIDs,n=this._updatePanelClientIDs,i=a.childUpdatePanelIDsNode.content,p=i.length?i.split(","):[],m=this._splitNodeIntoArray(a.asyncPostBackControlIDsNode),o=this._splitNodeIntoArray(a.postBackControlIDsNode),q=this._splitNodeIntoArray(a.updatePanelIDsNode),g=this._splitNodeIntoArray(a.panelsToRefreshNode),h=a.version4;for(b=0,e=g.length;b<e;b+=h?2:1){var j=(h?g[b+1]:"")||this._uniqueIDToClientID(g[b]);if(!document.getElementById(j)){this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.PRM_MissingPanel,j)),c,a);return}}var f=this._processUpdatePanelArrays(q,m,o,h);f.oldUpdatePanelIDs=r;f.oldUpdatePanelClientIDs=n;f.childUpdatePanelIDs=p;f.panelsToRefreshIDs=g;a.updatePanelData=f}a.dataItems={};var d;for(b=0,e=a.dataItemNodes.length;b<e;b++){d=a.dataItemNodes[b];a.dataItems[d.id]=d.content}for(b=0,e=a.dataItemJsonNodes.length;b<e;b++){d=a.dataItemJsonNodes[b];a.dataItems[d.id]=Sys.Serialization.JavaScriptSerializer.deserialize(d.content)}var l=this._get_eventHandlerList().getHandler("pageLoading");if(l)l(this,this._getPageLoadingEventArgs(a));Sys._ScriptLoader.readLoadedScripts();Sys.Application.beginCreateComponents();var k=Sys._ScriptLoader.getInstance();this._queueScripts(k,a.scriptBlockNodes,true,false);this._processingRequest=true;k.loadScripts(0,Function.createDelegate(this,Function.createCallback(this._scriptIncludesLoadComplete,a)),Function.createDelegate(this,Function.createCallback(this._scriptIncludesLoadFailed,a)),null)},_onWindowUnload:function(){this.dispose()},_pageLoaded:function(a,c){var b=this._get_eventHandlerList().getHandler("pageLoaded");if(b)b(this,this._getPageLoadedEventArgs(a,c));if(!a)Sys.Application.raiseLoad()},_pageLoadedInitialLoad:function(){this._pageLoaded(true,null)},_parseDelta:function(h){var c=h.get_responseData(),d,i,E,F,D,b=0,e=null,j=[];while(b<c.length){d=c.indexOf("|",b);if(d===-1){e=this._findText(c,b);break}i=parseInt(c.substring(b,d),10);if(i%1!==0){e=this._findText(c,b);break}b=d+1;d=c.indexOf("|",b);if(d===-1){e=this._findText(c,b);break}E=c.substring(b,d);b=d+1;d=c.indexOf("|",b);if(d===-1){e=this._findText(c,b);break}F=c.substring(b,d);b=d+1;if(b+i>=c.length){e=this._findText(c,c.length);break}D=c.substr(b,i);b+=i;if(c.charAt(b)!=="|"){e=this._findText(c,b);break}b++;Array.add(j,{type:E,id:F,content:D})}if(e){this._endPostBack(this._createPageRequestManagerParserError(String.format(Sys.WebForms.Res.PRM_ParserErrorDetails,e)),h,null);return null}var x=[],v=[],p=[],w=[],s=[],C=[],A=[],z=[],u=[],r=[],l,o,t,m,n,q,y,g;for(var k=0,G=j.length;k<G;k++){var a=j[k];switch(a.type){case "#":g=a;break;case "updatePanel":Array.add(x,a);break;case "hiddenField":Array.add(v,a);break;case "arrayDeclaration":Array.add(p,a);break;case "scriptBlock":Array.add(w,a);break;case "scriptStartupBlock":Array.add(s,a);break;case "expando":Array.add(C,a);break;case "onSubmit":Array.add(A,a);break;case "asyncPostBackControlIDs":l=a;break;case "postBackControlIDs":o=a;break;case "updatePanelIDs":t=a;break;case "asyncPostBackTimeout":m=a;break;case "childUpdatePanelIDs":n=a;break;case "panelsToRefreshIDs":q=a;break;case "formAction":y=a;break;case "dataItem":Array.add(z,a);break;case "dataItemJson":Array.add(u,a);break;case "scriptDispose":Array.add(r,a);break;case "pageRedirect":if(g&&parseFloat(g.content)>=4)a.content=unescape(a.content);if(Sys.Browser.agent===Sys.Browser.InternetExplorer){var f=document.createElement("a");f.style.display="none";f.attachEvent("onclick",B);f.href=a.content;this._form.parentNode.insertBefore(f,this._form);f.click();f.detachEvent("onclick",B);this._form.parentNode.removeChild(f);function B(a){a.cancelBubble=true}}else window.location.href=a.content;return null;case "error":this._endPostBack(this._createPageRequestManagerServerError(Number.parseInvariant(a.id),a.content),h,null);return null;case "pageTitle":document.title=a.content;break;case "focus":this._controlIDToFocus=a.content;break;default:this._endPostBack(this._createPageRequestManagerParserError(String.format(Sys.WebForms.Res.PRM_UnknownToken,a.type)),h,null);return null}}return {version4:g?parseFloat(g.content)>=4:false,executor:h,updatePanelNodes:x,hiddenFieldNodes:v,arrayDeclarationNodes:p,scriptBlockNodes:w,scriptStartupNodes:s,expandoNodes:C,onSubmitNodes:A,dataItemNodes:z,dataItemJsonNodes:u,scriptDisposeNodes:r,asyncPostBackControlIDsNode:l,postBackControlIDsNode:o,updatePanelIDsNode:t,asyncPostBackTimeoutNode:m,childUpdatePanelIDsNode:n,panelsToRefreshNode:q,formActionNode:y}},_processUpdatePanelArrays:function(e,q,r,f){var d,c,b;if(e){var i=e.length,j=f?2:1;d=new Array(i/j);c=new Array(i/j);b=new Array(i/j);for(var g=0,h=0;g<i;g+=j,h++){var p,a=e[g],k=f?e[g+1]:"";p=a.charAt(0)==="t";a=a.substr(1);if(!k)k=this._uniqueIDToClientID(a);b[h]=p;d[h]=a;c[h]=k}}else{d=[];c=[];b=[]}var n=[],l=[];this._convertToClientIDs(q,n,l,f);var o=[],m=[];this._convertToClientIDs(r,o,m,f);return {updatePanelIDs:d,updatePanelClientIDs:c,updatePanelHasChildrenAsTriggers:b,asyncPostBackControlIDs:n,asyncPostBackControlClientIDs:l,postBackControlIDs:o,postBackControlClientIDs:m}},_queueScripts:function(scriptLoader,scriptBlockNodes,queueIncludes,queueBlocks){for(var i=0,l=scriptBlockNodes.length;i<l;i++){var scriptBlockType=scriptBlockNodes[i].id;switch(scriptBlockType){case "ScriptContentNoTags":if(!queueBlocks)continue;scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);break;case "ScriptContentWithTags":var scriptTagAttributes;eval("scriptTagAttributes = "+scriptBlockNodes[i].content);if(scriptTagAttributes.src){if(!queueIncludes||Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src))continue}else if(!queueBlocks)continue;scriptLoader.queueCustomScriptTag(scriptTagAttributes);break;case "ScriptPath":if(!queueIncludes||Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content))continue;scriptLoader.queueScriptReference(scriptBlockNodes[i].content)}}},_registerDisposeScript:function(a,b){if(!this._scriptDisposes[a])this._scriptDisposes[a]=[b];else Array.add(this._scriptDisposes[a],b)},_scriptIncludesLoadComplete:function(e,b){if(b.executor.get_webRequest()!==this._request)return;this._commitControls(b.updatePanelData,b.asyncPostBackTimeoutNode?b.asyncPostBackTimeoutNode.content:null);if(b.formActionNode)this._form.action=b.formActionNode.content;var a,d,c;for(a=0,d=b.updatePanelNodes.length;a<d;a++){c=b.updatePanelNodes[a];var j=document.getElementById(c.id);if(!j){this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.PRM_MissingPanel,c.id)),b.executor,b);return}this._updatePanel(j,c.content)}for(a=0,d=b.scriptDisposeNodes.length;a<d;a++){c=b.scriptDisposeNodes[a];this._registerDisposeScript(c.id,c.content)}for(a=0,d=this._transientFields.length;a<d;a++){var g=document.getElementById(this._transientFields[a]);if(g){var k=g._isContained?g.parentNode:g;k.parentNode.removeChild(k)}}for(a=0,d=b.hiddenFieldNodes.length;a<d;a++){c=b.hiddenFieldNodes[a];this._createHiddenField(c.id,c.content)}if(b.scriptsFailed)throw Sys._ScriptLoader._errorScriptLoadFailed(b.scriptsFailed.src,b.scriptsFailed.multipleCallbacks);this._queueScripts(e,b.scriptBlockNodes,false,true);var i="";for(a=0,d=b.arrayDeclarationNodes.length;a<d;a++){c=b.arrayDeclarationNodes[a];i+="Sys.WebForms.PageRequestManager._addArrayElement('"+c.id+"', "+c.content+");\r\n"}var h="";for(a=0,d=b.expandoNodes.length;a<d;a++){c=b.expandoNodes[a];h+=c.id+" = "+c.content+"\r\n"}if(i.length)e.queueScriptBlock(i);if(h.length)e.queueScriptBlock(h);this._queueScripts(e,b.scriptStartupNodes,true,true);var f="";for(a=0,d=b.onSubmitNodes.length;a<d;a++){if(a===0)f="Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements, function() {\r\n";f+=b.onSubmitNodes[a].content+"\r\n"}if(f.length){f+="\r\nreturn true;\r\n});\r\n";e.queueScriptBlock(f)}e.loadScripts(0,Function.createDelegate(this,Function.createCallback(this._scriptsLoadComplete,b)),null,null)},_scriptIncludesLoadFailed:function(d,c,b,a){a.scriptsFailed={src:c.src,multipleCallbacks:b};this._scriptIncludesLoadComplete(d,a)},_scriptsLoadComplete:function(f,c){var e=c.executor;if(window.__theFormPostData)window.__theFormPostData="";if(window.__theFormPostCollection)window.__theFormPostCollection=[];if(window.WebForm_InitCallback)window.WebForm_InitCallback();if(this._scrollPosition){if(window.scrollTo)window.scrollTo(this._scrollPosition.x,this._scrollPosition.y);this._scrollPosition=null}Sys.Application.endCreateComponents();this._pageLoaded(false,c);this._endPostBack(null,e,c);if(this._controlIDToFocus){var a,d;if(Sys.Browser.agent===Sys.Browser.InternetExplorer){var b=$get(this._controlIDToFocus);a=b;if(b&&!WebForm_CanFocus(b))a=WebForm_FindFirstFocusableChild(b);if(a&&typeof a.contentEditable!=="undefined"){d=a.contentEditable;a.contentEditable=false}else a=null}WebForm_AutoFocus(this._controlIDToFocus);if(a)a.contentEditable=d;this._controlIDToFocus=null}},_splitNodeIntoArray:function(b){var a=b.content,c=a.length?a.split(","):[];return c},_uniqueIDToClientID:function(a){return a.replace(/\$/g,"_")},_updateControls:function(d,a,c,b,e){this._commitControls(this._processUpdatePanelArrays(d,a,c,e),b)},_updatePanel:function(updatePanelElement,rendering){for(var updatePanelID in this._scriptDisposes)if(this._elementContains(updatePanelElement,document.getElementById(updatePanelID))){var disposeScripts=this._scriptDisposes[updatePanelID];for(var i=0,l=disposeScripts.length;i<l;i++)eval(disposeScripts[i]);delete this._scriptDisposes[updatePanelID]}Sys.Application.disposeElement(updatePanelElement,true);updatePanelElement.innerHTML=rendering},_validPosition:function(a){return typeof a!=="undefined"&&a!==null&&a!==0}};Sys.WebForms.PageRequestManager.getInstance=function(){var a=Sys.WebForms.PageRequestManager._instance;if(!a)a=Sys.WebForms.PageRequestManager._instance=new Sys.WebForms.PageRequestManager;return a};Sys.WebForms.PageRequestManager._addArrayElement=function(a){if(!window[a])window[a]=[];for(var b=1,c=arguments.length;b<c;b++)Array.add(window[a],arguments[b])};Sys.WebForms.PageRequestManager._initialize=function(){var a=Sys.WebForms.PageRequestManager.getInstance();a._initializeInternal.apply(a,arguments)};Sys.WebForms.PageRequestManager.registerClass("Sys.WebForms.PageRequestManager");Sys.UI._UpdateProgress=function(a){Sys.UI._UpdateProgress.initializeBase(this,[a]);this._displayAfter=500;this._dynamicLayout=true;this._associatedUpdatePanelId=null;this._beginRequestHandlerDelegate=null;this._startDelegate=null;this._endRequestHandlerDelegate=null;this._pageRequestManager=null;this._timerCookie=null};Sys.UI._UpdateProgress.prototype={get_displayAfter:function(){return this._displayAfter},set_displayAfter:function(a){this._displayAfter=a},get_dynamicLayout:function(){return this._dynamicLayout},set_dynamicLayout:function(a){this._dynamicLayout=a},get_associatedUpdatePanelId:function(){return this._associatedUpdatePanelId},set_associatedUpdatePanelId:function(a){this._associatedUpdatePanelId=a},get_role:function(){return "status"},_clearTimeout:function(){if(this._timerCookie){window.clearTimeout(this._timerCookie);this._timerCookie=null}},_getUniqueID:function(b){var a=Array.indexOf(this._pageRequestManager._updatePanelClientIDs,b);return a===-1?null:this._pageRequestManager._updatePanelIDs[a]},_handleBeginRequest:function(f,e){var b=e.get_postBackElement(),a=true,d=this._associatedUpdatePanelId;if(this._associatedUpdatePanelId){var c=e.get_updatePanelsToUpdate();if(c&&c.length)a=Array.contains(c,d)||Array.contains(c,this._getUniqueID(d));else a=false}while(!a&&b){if(b.id&&this._associatedUpdatePanelId===b.id)a=true;b=b.parentNode}if(a)this._timerCookie=window.setTimeout(this._startDelegate,this._displayAfter)},_startRequest:function(){if(this._pageRequestManager.get_isInAsyncPostBack()){var a=this.get_element();if(this._dynamicLayout)a.style.display="block";else a.style.visibility="visible";if(this.get_role()==="status")a.setAttribute("aria-hidden","false")}this._timerCookie=null},_handleEndRequest:function(){var a=this.get_element();if(this._dynamicLayout)a.style.display="none";else a.style.visibility="hidden";if(this.get_role()==="status")a.setAttribute("aria-hidden","true");this._clearTimeout()},dispose:function(){if(this._beginRequestHandlerDelegate!==null){this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDelegate);this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate);this._beginRequestHandlerDelegate=null;this._endRequestHandlerDelegate=null}this._clearTimeout();Sys.UI._UpdateProgress.callBaseMethod(this,"dispose")},initialize:function(){Sys.UI._UpdateProgress.callBaseMethod(this,"initialize");if(this.get_role()==="status")this.get_element().setAttribute("aria-hidden","true");this._beginRequestHandlerDelegate=Function.createDelegate(this,this._handleBeginRequest);this._endRequestHandlerDelegate=Function.createDelegate(this,this._handleEndRequest);this._startDelegate=Function.createDelegate(this,this._startRequest);if(Sys.WebForms&&Sys.WebForms.PageRequestManager)this._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();if(this._pageRequestManager!==null){this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelegate);this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate)}}};Sys.UI._UpdateProgress.registerClass("Sys.UI._UpdateProgress",Sys.UI.Control);
Type.registerNamespace('Sys.WebForms');Sys.WebForms.Res={"PRM_UnknownToken":"Unknown token: \u0027{0}\u0027.","PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. If it is being updated dynamically then it must be inside another UpdatePanel.","PRM_ServerError":"An unknown error occurred while processing the request on the server. The status code returned from the server was: {0}","PRM_ParserError":"The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.\r\nDetails: {0}","PRM_TimeoutError":"The server request timed out.","PRM_ParserErrorDetails":"Error parsing near \u0027{0}\u0027.","PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized more than once."};

//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// PreviewScript.js
Sys.Component.prototype.get_dataContext=function(){return this._dataContext||null};Sys.Component.prototype.set_dataContext=function(a){this._dataContext=a};Sys.UI.Control.prototype.get_dataContext=function(){var a=Sys.UI.Control.callBaseMethod(this,"get_dataContext");if(!a){var b=this.get_parent();if(b)a=b.get_dataContext()}return a};Sys.UI.Control.prototype.set_dataContext=Sys.Component.prototype.set_dataContext;Sys.UI.Behavior.prototype.get_dataContext=function(){var a=Sys.UI.Behavior.callBaseMethod(this,"get_dataContext");if(!a)if(this.control)a=this.control.get_dataContext();else{var c=this.get_element();if(c){var b=c.control;if(b)a=b.get_dataContext()}}return a};Sys.UI.Behavior.prototype.set_dataContext=Sys.Component.prototype.set_dataContext;function _loadMozillaCompatLayer(a){a.HTMLElement.prototype.__defineGetter__("innerText",function(){return this.textContent});a.HTMLElement.prototype.__defineSetter__("innerText",function(a){if(a)this.innerHTML=c(a);else this.innerHTML=""});function c(e){var a=new Sys.StringBuilder,f=e.length,d;for(var c=0;c<f;c++){var b=e.charAt(c);switch(b){case "<":a.append("&lt;");break;case ">":a.append("&gt;");break;case '"':a.append("&quot;");break;case "&":a.append("&amp;");break;case " ":if(d==" ")a.append("&nbsp;");else a.append(" ");break;case "\r":break;case "\n":a.appendLine();a.appendLine("<br />");break;default:a.append(b)}d=b}return a.toString()}function b(d,g,a){a=a?a:d;var f=new XPathEvaluator,c=f.evaluate(g,a,d.createNSResolver(d.documentElement),XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),e=new Array(c.snapshotLength);for(var b=0;b<c.snapshotLength;b++)e[b]=c.snapshotItem(b);return e}function d(f,d,e){d+="[1]";var a=b(f,d,e);if(a.length!=0)for(var c=0;c<a.length;c++)if(a[c])return a[c];return null}a.XMLDocument.prototype.selectNodes=function(c,a){return b(this,c,a)};a.XMLDocument.prototype.selectSingleNode=function(b,a){return d(this,b,a)};a.XMLDocument.prototype.transformNode=function(c){var a=new XSLTProcessor;a.importStylesheet(c);var d=document.implementation.createDocument("","",null),b=a.transformToDocument(this);return b.xml};Node.prototype.selectNodes=function(a){var b=this.ownerDocument;return b.selectNodes(a,this)};Node.prototype.selectSingleNode=function(a){var b=this.ownerDocument;return b.selectSingleNode(a,this)};Node.prototype.__defineGetter__("baseName",function(){return this.localName});Node.prototype.__defineGetter__("text",function(){return this.textContent});Node.prototype.__defineSetter__("text",function(a){this.textContent=a});Node.prototype.__defineGetter__("xml",function(){return (new XMLSerializer).serializeToString(this)});DocumentFragment.prototype.getElementById=function(e){var d=[],c=this.childNodes,a,b;for(b=0;b<c.length;b++){a=c[b];if(a.nodeType==1)Array.enqueue(d,a)}while(d.length){a=Array.dequeue(d);if(a.id==e)return a;c=a.childNodes;if(c.length!=0)for(b=0;b<c.length;b++){a=c[b];if(a.nodeType==1)Array.enqueue(d,a)}}return null};DocumentFragment.prototype.createElement=function(a){return document.createElement(a)}}function _loadTypeDescriptorCompatLayer(){Sys.Preview.TypeDescriptor.prototype._addEvent=Sys.Preview.TypeDescriptor.prototype.addEvent;Sys.Preview.TypeDescriptor.prototype._addProperty=Sys.Preview.TypeDescriptor.prototype.addProperty;Sys.Preview.TypeDescriptor.prototype.addEvent=function(a){this._addEvent(a);var b=a.toLowerCase();if(a!=b){this._addEvent(b);this._getEvents()[b].name=a}};Sys.Preview.TypeDescriptor.prototype.addProperty=function(c){var e=this._addProperty.apply(this,arguments),a=c.toLowerCase();if(c!==a){var b=[];Array.add(b,a);for(var d=1;d<arguments.length;d++)Array.add(b,arguments[d]);this._addProperty.apply(this,b);this._getProperties()[a].name=c}return e}}if(Sys.Browser.agent===Sys.Browser.Firefox)_loadMozillaCompatLayer(window);Type.registerNamespace("Sys.Preview");Sys.Preview.IAction=function(){throw Error.notImplemented()};Sys.Preview.IAction.prototype={execute:function(){throw Error.notImplemented()},setOwner:function(){throw Error.notImplemented()}};Sys.Preview.IAction.registerInterface("Sys.Preview.IAction");Sys.Preview.Attributes=new function(){this.defineAttribute=function(a){this[a]=a}};Sys.Preview.TypeDescriptor=function(){var b={},d={},c={},a={};this._getAttributes=function(){return a};this._getEvents=function(){return d};this._getMethods=function(){return c};this._getProperties=function(){return b}};Sys.Preview.TypeDescriptor.registerClass("Sys.Preview.TypeDescriptor");Sys.Preview.TypeDescriptor.prototype.addAttribute=function(b,a){this._getAttributes()[b]=a};Sys.Preview.TypeDescriptor.prototype.addEvent=function(a){return this._getEvents()[a]={name:a}};Sys.Preview.TypeDescriptor.prototype.addMethod=function(a,b){return this._getMethods()[a]={name:a,parameters:b}};Sys.Preview.TypeDescriptor.prototype.addProperty=function(d,e,b,g,f){if(e===Sys.UI.DomElement)throw Error.argumentType("propertyType",Sys.UI.DomElement,Object,"Use isDomElement with a null type for element properties.\ne.g., for descriptors use { name: 'foo', isDomElement: true, type: null }");b=!!b;var c;if(f){c={};for(var a=4;a<arguments.length;a+=2){var h=arguments[a],i=arguments[a+1];c[h]=i}}return this._getProperties()[d]={name:d,type:e,"readOnly":b,"isDomElement":g,attributes:c}};Sys.Preview.TypeDescriptor.createParameter=function(a,b,c,d){return {name:a,type:b,"isDomElement":!!c,"isInteger":!!d}};Sys.Preview.TypeDescriptor.getTypeDescriptor=function(c){var a=Object.getType(c),b=a._descriptor;if(!b&&!a._descriptorChecked){if(Sys.Preview.ITypeDescriptorProvider.isImplementedBy(c))b=c.getDescriptor();else b=Sys.Preview.TypeDescriptor.generateDescriptor(a);a._descriptor=b;a._descriptorChecked=true}return b};Sys.Preview.TypeDescriptor.generateBaseDescriptor=function(b){var a=b.getBaseType();return Sys.Preview.TypeDescriptor.generateDescriptor(a)};Sys.Preview.TypeDescriptor.generateDescriptor=function(c){var b=null,a=c;while(a){if(a.descriptor){if(!b)b=new Sys.Preview.TypeDescriptor;Sys.Preview.TypeDescriptor.append(b,a.descriptor)}a=a.getBaseType()}return b};Sys.Preview.TypeDescriptor.append=function(c,a){if(a.properties){var f=a.properties.length;for(var b=0;b<f;b++){var d=a.properties[b],l=d.name,h=d.attributes,r=!!d.readOnly,o=!!d.isDomElement,p=!!d.isInteger;if(!c._getProperties()[l]){var e=[l,d.type,r,o];if(typeof h==="array")for(var j=0,s=h.length;j<s;j++){var n=h[j];e[e.length]=n.name;e[e.length]=n.value}var q=c.addProperty.apply(c,e);q.isInteger=p}}}if(a.events){var f=a.events.length;for(var b=0;b<f;b++){var m=a.events[b].name;if(!c._getEvents()[m])c.addEvent(m)}}if(a.methods){var f=a.methods.length;for(var b=0;b<f;b++){var i=a.methods[b].name;if(!c._getMethods()[i]){var g=a.methods[b].params;if(!g)g=a.methods[b].parameters;if(g)c.addMethod(i,g);else c.addMethod(i)}}}if(a.attributes){var f=a.attributes.length;for(var b=0;b<f;b++){var k=a.attributes[b].name;if(!c._getAttributes()[k])c.addAttribute(k,a.attributes[b].value)}}};Sys.Preview.TypeDescriptor.unload=function(){};Sys.Preview.TypeDescriptor.getAttribute=function(b,a){var c=Sys.Preview.TypeDescriptor.getTypeDescriptor(b);return c._getAttributes()[a]};Sys.Preview.TypeDescriptor.getProperty=function(b,e,a){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(b))return b.getProperty(e,a);var f=Sys.Preview.TypeDescriptor.getTypeDescriptor(b);if(!f){var c=b[e];if(c&&a)c=a.indexOf(".")===-1?c[a]:Sys.Preview.TypeDescriptor._evaluatePath(c,a);return c}var g=f._getProperties()[e],h=b["get_"+g.name],d=h.call(b);if(a)d=a.indexOf(".")===-1?d[a]:Sys.Preview.TypeDescriptor._evaluatePath(d,a);return d};Sys.Preview.TypeDescriptor.setProperty=function(a,e,b,c){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(a)){a.setProperty(e,b,c);return}var g=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!g){if(!c)a[e]=b;else{a=a[e];if(c.indexOf(".")===-1)a[c]=b;else Sys.Preview.TypeDescriptor._setPath(a,c,b)}return}var d=g._getProperties()[e];if(c){var h=a["get_"+d.name],f=h.call(a);if(c.indexOf(".")===-1)f[c]=b;else Sys.Preview.TypeDescriptor._setPath(f,c,b)}else{var i=a["set_"+d.name];b=Sys.Preview.TypeDescriptor._evaluateValue(d.type,d.isDomElement,d.isInteger,b);i.call(a,b)}};Sys.Preview.TypeDescriptor.invokeMethod=function(a,g,e){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(a))return a.invokeMethod(g,e);var j=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!j)return a[g].call(a);var c=j._getMethods()[g],i=a[c.name];if(!e||!c.parameters||!c.parameters.length)return i.call(a);else{var h=[];for(var f=0;f<c.parameters.length;f++){var b=c.parameters[f],d=e[b.name];if(typeof d==="undefined")d=e[b.name.toLowerCase()];d=Sys.Preview.TypeDescriptor._evaluateValue(b.type,b.isDomElement,b.isInteger,d);h[f]=d}return i.apply(a,h)}};Sys.Preview.TypeDescriptor.getPropertyType=function(a,d,e){if(Sys.Preview.ICustomTypeDescriptor.isImplementedBy(a))return Object;if(e)return Object;var b=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!b)return Object;var c=b._getProperties()[d];return c.type||null};Sys.Preview.TypeDescriptor._evaluatePath=function(e,f){var d,c=f.split("."),a=e;for(var b=0,g=c.length;b<g;b++){d=c[b];a=a[d];if(typeof a==="undefined"||a===null)return null}return a};Sys.Preview.TypeDescriptor._evaluateValue=function(b,e,d,a){if(!b)return a;var c=typeof a;if(c==="undefined"||a===null)return a;if(e){if(c==="string")a=Sys.UI.DomElement.getElementById(a)}else if(b===Object||b===Sys.Component||b.inheritsFrom(Sys.Component)){if(c==="string")a=Sys.Application.findComponent(a)}else if(b!==String&&c==="string")if(Type.isEnum(b))a=b.parse(a,true);else if(a===""&&b===Number)a=0;else{a=(b.parseInvariant||b.parse)(a);if(b===Number&&d)a=Math.floor(a)}else if(b===String&&c!=="string")a=a.toString();else if(b===Number&&d)a=Math.floor(a);return a};Sys.Preview.TypeDescriptor._setPath=function(e,g,f){var a=e,b=g.split("."),d;for(var c=0;c<b.length-1;c++){d=b[c];a=a[d];if(!a)break}if(a)a[b[b.length-1]]=f};if(Sys.Browser.agent===Sys.Browser.Safari)_loadTypeDescriptorCompatLayer(window);Sys.Preview.MarkupContext=function(c,d,a,b){this._document=c;this._global=d;this._parentContext=a;this._dataContext=b||null;this._objects={};this._pendingReferences=[];this._pendingEndUpdates=[]};Sys.Preview.MarkupContext.prototype={_dataContextHidden:false,_opened:false,get_dataContext:function(){if(this._dataContextHidden)return null;return this._dataContext},get_isGlobal:function(){return this._global},addComponent:function(a,c){var b=a.get_id();if(b)this._addComponentByID(b,a,c)},removeComponent:function(a){var b=a.get_id();if(b)this._removeComponentByID(b);if(this._global&&Sys.Component.isInstanceOfType(a))Sys.Application.removeComponent(object)},findComponent:function(c,a){if(a)return Sys.Application.findComponent(c,a);else{var b=this._objects[c];if(!b){a=this._parentContext||Sys.Application;b=a.findComponent(c)}return b}},getComponents:function(){var a=[],b=this._objects;for(var c in b)a[a.length]=b[c];return a},_addComponentByID:function(c,a,b){this._objects[c]=a;if(!b&&this._global&&Sys.Component.isInstanceOfType(a))Sys.Application.addComponent(a)},addEndUpdate:function(a){Array.add(this._pendingEndUpdates,a)},addReference:function(c,a,b){Array.add(this._pendingReferences,{o:c,p:a,r:b})},close:function(){this._opened=false;this._dataContext=null;var a;for(a=0;a<this._pendingReferences.length;a++){var b=this._pendingReferences[a],c=b.o,e=b.p,d=b.r,f=this.findComponent(d),g=c["set_"+e.name];g.call(c,f)}this._pendingReferences=null;for(a=0;a<this._pendingEndUpdates.length;a++)this._pendingEndUpdates[a].endUpdate();this._pendingEndUpdates=null},dispose:function(){if(!this._global)for(var a in this._objects){if(Sys.IDisposable.isImplementedBy(this._objects[a]))this._objects[a].dispose();this._objects[a]=null}this._document=null;this._parentContext=null;this._dataContext=null;this._objects=null;this._pendingReferences=null;this._pendingEndUpdates=null},findElement:function(b){if(this._opened){var a=Sys.UI.DomElement.getElementById(b,this._document);if(!a&&this._parentContext)a=Sys.UI.DomElement.getElementById(b,this._parentContext);return a}return null},hideDataContext:function(){if(!this._dataContextHidden){this._dataContextHidden=true;return true}return false},open:function(){this._pendingReferences=[];this._pendingEndUpdates=[];this._opened=true},restoreDataContext:function(){this._dataContextHidden=false}};Sys.Preview.MarkupContext.registerClass("Sys.Preview.MarkupContext",null,Sys.IContainer);Sys.Preview.MarkupContext.createGlobalContext=function(){return new Sys.Preview.MarkupContext(document,true)};Sys.Preview.MarkupContext.createLocalContext=function(a,b,c){return new Sys.Preview.MarkupContext(a,false,b,c)};Sys.Preview.MarkupParser=new function(){};Sys.Preview.MarkupParser._defaultNamespaceURI="http://schemas.microsoft.com/xml-script/2005";Sys.Preview.MarkupParser._cachedNamespaceURILists={};Sys.Preview.MarkupParser.getNodeName=function(a){return a.localName||a.baseName};Sys.Preview.MarkupParser.initializeObject=function(a,I,f){var z=Sys.Preview.TypeDescriptor.getTypeDescriptor(a);if(!z)return null;var B=false;if(a.beginUpdate&&a.endUpdate&&a!==Sys.Application){B=true;a.beginUpdate()}var v,g,i,r,e,n,c,b,h,o,t,H,s,C=z._getProperties(),G=z._getEvents(),j=I.attributes;if(j)for(g=j.length-1;g>=0;g--){i=j[g];r=i.nodeName;if(r==="id"&&Sys.UI.Control.isInstanceOfType(a))continue;e=C[r];if(e){c=e.type;b=i.nodeValue;if(c&&(c===Object||c===Sys.Component||c.inheritsFrom(Sys.Component)))f.addReference(a,e,b);else{if(e.isDomElement)b=f.findElement(b);else if(c===Array)b=Array.parse("["+b+"]");else if(c&&c!==String)if(Type.isEnum(c))b=c.parse(b,true);else if(b===""&&c===Number)b=0;else b=(c.parseInvariant||c.parse)(b);n=e.name;t=a["set_"+n];t.call(a,b)}}else{h=G[r];if(h){var E=Function.parse(i.nodeValue);if(E){o=a["add_"+h.name];if(o)o.apply(a,[E])}}}}var q=I.childNodes;if(q&&q.length!=0)for(v=q.length-1;v>=0;v--){var d=q[v];if(d.nodeType!=1)continue;s=Sys.Preview.MarkupParser.getNodeName(d);e=C[s];if(e){n=e.name;c=e.type;if(e.readOnly){H=a["get_"+n];var m=H.call(a);if(c===Array){if(d.childNodes.length){var u=Sys.Preview.MarkupParser.parseNodes(d.childNodes,f);for(var k=0;k<u.length;k++){var l=u[k];if(typeof m.add==="function")m.add(l);else{Array.add(m,l);if(typeof l.setOwner==="function")l.setOwner(a)}}}}else if(c===Object){j=d.attributes;for(g=j.length-1;g>=0;g--){i=j[g];m[i.nodeName]=i.nodeValue}}else Sys.Preview.MarkupParser.initializeObject(m,d,f)}else{b=null;if(c==String)b=d.text;else if(d.childNodes.length!=0){var w;for(var p=0;p<d.childNodes.length;p++){if(d.childNodes[p].nodeType!=1)continue;w=d.childNodes[p];break}if(w)b=Sys.Preview.MarkupParser.parseNode(w,f)}if(b){t=a["set_"+n];t.call(a,b)}}}else{h=G[s];if(h){var x=Sys.Preview.MarkupParser.parseNodes(d.childNodes,f);if(x.length){o=a["add_"+h.name];if(o)for(var A=0;A<x.length;A++){var F=x[A];F.set_eventName(h.name);F.set_eventSource(a)}}}else{var y=null,D=s.toUpperCase();if(D==="BINDINGS")y=Sys.Preview.BindingBase;else if(D==="BEHAVIORS")y=Sys.UI.Behavior;if(y)if(d.childNodes.length){var u=Sys.Preview.MarkupParser.parseNodes(d.childNodes,f);for(var k=0;k<u.length;k++){var l=u[k];if(typeof l.setOwner==="function")l.setOwner(a)}}}}}if(B)f.addEndUpdate(a);return a};Sys.Preview.MarkupParser.parseNode=function(e,f){var d=null,b=Sys.Preview.MarkupParser._getTagType(e);if(b){var a=b.parseFromMarkup;if(!a){var c=b.getBaseType();while(c){a=c.parseFromMarkup;if(a)break;c=c.getBaseType()}b.parseFromMarkup=a}if(a)d=a.call(null,b,e,f)}return d};Sys.Preview.MarkupParser.parseNodes=function(e,f){var d=[];for(var a=0;a<e.length;a++){var c=e[a];if(c.nodeType!==1)continue;var b=Sys.Preview.MarkupParser.parseNode(c,f);if(b)Array.add(d,b)}return d};Sys.Preview.MarkupParser.processDocument=function(i){var h=[],d=document.getElementsByTagName("script");for(var c=0;c<d.length;c++)if(d[c].type=="text/xml-script"){var j=d[c],a=j.innerHTML;if(a.startsWith("<!--")){var k=a.indexOf("<",1),f=a.lastIndexOf(">");f=a.lastIndexOf(">",f-1);a=a.substring(k,f+1)}if(a.length==0)continue;var e;if(Sys.Net.XMLDOM)e=new Sys.Net.XMLDOM(a);else e=new XMLDOM(a);var b=null,g=e.getElementsByTagName("page");if(g.length)b=g[0];if(b&&Sys.Preview.MarkupParser.getNodeName(b)==="page")Array.add(h,b)}Sys.Preview.MarkupParser.processDocumentScripts(i,h)};Sys.Preview.MarkupParser.processDocumentScripts=function(d,j){d.open();for(var g=0;g<j.length;g++){var c=[],k=j[g],h=k.childNodes;for(var f=h.length-1;f>=0;f--){var b=h[f];if(b.nodeType!==1)continue;var a=Sys.Preview.MarkupParser.getNodeName(b);if(a)a=a.toLowerCase();if(a==="components")for(var e=0;e<b.childNodes.length;e++){var i=b.childNodes[e];if(i.nodeType!==1)continue;Array.add(c,i)}}if(c.length)Sys.Preview.MarkupParser.parseNodes(c,d)}d.close()};Sys.Preview.MarkupParser._getDefaultNamespaces=function(){if(!Sys.Preview.MarkupParser._defaultNamespaces){var a=[Sys,Sys.UI,Sys.Net,Sys.Preview,Sys.Preview.UI,Sys.Preview.Net,Sys.Preview.Data,Sys.Preview.UI.Data,Sys.Preview.Services.Components];if(Sys.Preview.UI.Effects)Array.add(a,Sys.Preview.UI.Effects);Sys.Preview.MarkupParser._defaultNamespaces=a}return Sys.Preview.MarkupParser._defaultNamespaces};Sys.Preview.MarkupParser._processNamespaceURI=function(namespaceURI){if(!namespaceURI||namespaceURI===Sys.Preview.MarkupParser._defaultNamespaceURI)return Sys.Preview.MarkupParser._getDefaultNamespaces();var start=namespaceURI.slice(0,12).toLowerCase();if(start==="javascript:"){namespaceURI=namespaceURI.slice(11);if(!namespaceURI.length)return []}var nspaceList=namespaceURI.split(",");list=[];for(var i=0;i<nspaceList.length;i++){var nspaceName=nspaceList[i];if(nspaceName.startsWith(" "))nspaceName=nspaceName.trimStart();if(nspaceName.endsWith(" "))nspaceName=nspaceName.trimEnd();if(!nspaceName.length)continue;var nspace=null;try{nspace=eval(nspaceName)}catch(a){}if(nspace)Array.add(list,nspace)}return list};Sys.Preview.MarkupParser._getTagType=function(f){var e=Sys.Preview.MarkupParser.getNodeName(f),b=f.namespaceURI||Sys.Preview.MarkupParser._defaultNamespaceURI,a=Sys.Preview.MarkupParser._cachedNamespaceURILists[b];if(typeof a==="undefined"){a=Sys.Preview.MarkupParser._processNamespaceURI(b);Sys.Preview.MarkupParser._cachedNamespaceURILists[b]=a}var d=e.toUpperCase();for(var c=0;c<a.length;c++){var h=a[c],g=Type.parse(e,h);if(typeof g==="function")return g}if(d==="APPLICATION")return Sys._Application;if(d==="WEBREQUESTMANAGER")return Sys.Net._WebRequestManager;return null};Sys.Preview.ICustomTypeDescriptor=function(){throw Error.notImplemented()};Sys.Preview.ICustomTypeDescriptor.prototype={getProperty:function(){throw Error.notImplemented()},setProperty:function(){throw Error.notImplemented()},invokeMethod:function(){throw Error.notImplemented()}};Sys.Preview.ICustomTypeDescriptor.registerInterface("Sys.Preview.ICustomTypeDescriptor");Sys.Preview.ITypeDescriptorProvider=function(){throw Error.notImplemented()};Sys.Preview.ITypeDescriptorProvider.prototype={getDescriptor:function(){throw Error.notImplemented()}};Sys.Preview.ITypeDescriptorProvider.registerInterface("Sys.Preview.ITypeDescriptorProvider");Sys.Preview.INotifyCollectionChanged=function(){throw Error.notImplemented()};Sys.Preview.INotifyCollectionChanged.prototype={add_collectionChanged:function(){throw Error.notImplemented()},remove_collectionChanged:function(){throw Error.notImplemented()}};Sys.Preview.INotifyCollectionChanged.registerInterface("Sys.Preview.INotifyCollectionChanged");Sys.Preview.NotifyCollectionChangedAction=function(){throw Error.invalidOperation()};Sys.Preview.NotifyCollectionChangedAction.prototype={Add:0,Remove:1,Reset:2};Sys.Preview.NotifyCollectionChangedAction.registerEnum("Sys.Preview.NotifyCollectionChangedAction");Sys.Preview.CollectionChangedEventArgs=function(b,a){Sys.Preview.CollectionChangedEventArgs.initializeBase(this);this._action=b;this._changedItem=a};Sys.Preview.CollectionChangedEventArgs.prototype={get_action:function(){return this._action},get_changedItem:function(){return this._changedItem}};Sys.Preview.CollectionChangedEventArgs.descriptor={properties:[{name:"action",type:Sys.Preview.NotifyCollectionChangedAction,readOnly:true},{name:"changedItem",type:Object,readOnly:true}]};Sys.Preview.CollectionChangedEventArgs.registerClass("Sys.Preview.CollectionChangedEventArgs",Sys.EventArgs);Sys.Preview.BindingDirection=function(){throw Error.invalidOperation()};Sys.Preview.BindingDirection.prototype={In:0,Out:1,InOut:2};Sys.Preview.BindingDirection.registerEnum("Sys.Preview.BindingDirection");Sys.Preview.BindingEventArgs=function(d,c,b,a){Sys.Preview.BindingEventArgs.initializeBase(this);this._value=d;this._direction=c;this._targetPropertyType=b;this._transformerArgument=a};Sys.Preview.BindingEventArgs.prototype={get_direction:function(){return this._direction},get_targetPropertyType:function(){return this._targetPropertyType},get_transformerArgument:function(){return this._transformerArgument},get_value:function(){return this._value},set_value:function(a){this._value=a}};Sys.Preview.BindingEventArgs.descriptor={properties:[{name:"direction",type:Sys.Preview.BindingDirection,readOnly:true},{name:"targetPropertyType",type:Type,readOnly:true},{name:"transformerArgument",readOnly:true},{name:"value"}]};Sys.Preview.BindingEventArgs.registerClass("Sys.Preview.BindingEventArgs",Sys.CancelEventArgs);Sys.Preview.BindingBase=function(a){Sys.Preview.BindingBase.initializeBase(this);if(a)this._target=a};Sys.Preview.BindingBase.prototype={_target:null,_property:null,_propertyKey:null,_dataContext:null,_dataPath:null,_dataPathParts:null,_transformerArgument:null,_automatic:true,_bindingExecuting:false,_source:null,get_automatic:function(){return this._automatic},set_automatic:function(a){if(!this._source)this._automatic=a},get_dataContext:function(){return this._dataContext},set_dataContext:function(a){if(!this._source)this._dataContext=a},get_dataPath:function(){return this._dataPath},set_dataPath:function(a){if(!this._source)this._dataPath=a},get_target:function(){return this._target},set_target:function(a){this._target=a},get_property:function(){return this._property},set_property:function(a){if(!this._source)this._property=a},get_propertyKey:function(){return this._propertyKey},set_propertyKey:function(a){if(!this._source)this._propertyKey=a},get_transformerArgument:function(){return this._transformerArgument},set_transformerArgument:function(a){this._transformerArgument=a},add_transform:function(a){this.get_events().addHandler("transform",a)},remove_transform:function(a){this.get_events().removeHandler("transform",a)},dispose:function(){this._dataContext=null;this._source=null;this._target=null;Sys.Preview.BindingBase.callBaseMethod(this,"dispose")},evaluate:function(a){if(this._bindingExecuting)return;this._bindingExecuting=true;if(a===Sys.Preview.BindingDirection.In)this.evaluateIn();else this.evaluateOut();this._bindingExecuting=false},evaluateIn:function(){var c=Sys.Preview.TypeDescriptor.getPropertyType(this._target,this._property,this._propertyKey),a=this._getSourceValue(c),d=false,e=this.get_events().getHandler("transform");if(e){var b=new Sys.Preview.BindingEventArgs(a,Sys.Preview.BindingDirection.In,c,this._transformerArgument);e(this,b);d=b.get_cancel();a=b.get_value()}if(!d)Sys.Preview.TypeDescriptor.setProperty(this._target,this._property,a,this._propertyKey)},evaluateOut:function(){},initialize:function(){Sys.Preview.BindingBase.callBaseMethod(this,"initialize");this._source=this._dataContext;if(!this._source)this._source=this._target.get_dataContext();if(this._dataPath&&this._dataPath.indexOf(".")>0)this._dataPathParts=this._dataPath.split(".")},_evaluateDataPath:function(){var a=this._source;for(var b=0;b<this._dataPathParts.length-1;b++){a=Sys.Preview.TypeDescriptor.getProperty(a,this._dataPathParts[b]);if(!a)return null}return a},_get_dataPathParts:function(){return this._dataPathParts},_getSource:function(){return this._source},_getSourceValue:function(){if(this._dataPath&&this._dataPath.length){var a=this._source,b=this._dataPath;if(this._dataPathParts){a=this._evaluateDataPath();if(a===null)return null;b=this._dataPathParts[this._dataPathParts.length-1]}return Sys.Preview.TypeDescriptor.getProperty(a,b)}if(this._source&&Sys.Preview.ICustomTypeDescriptor.isImplementedBy(this._source))return this._source.getProperty("");return this._source},_getTargetValue:function(d){var a=Sys.Preview.TypeDescriptor.getProperty(this._target,this._property,this._propertyKey),c=this.get_events().getHandler("transform");if(c){var b=new Sys.Preview.BindingEventArgs(a,Sys.Preview.BindingDirection.Out,d,this._transformerArgument);c(this,b);var e=b.get_cancel();if(!e)a=b.get_value();else a=null}return a},setOwner:function(a){this.set_target(a)}};Sys.Preview.BindingBase.descriptor={properties:[{name:"target",type:Object},{name:"automatic",type:Boolean},{name:"dataContext",type:Object},{name:"dataPath",type:String},{name:"property",type:String},{name:"propertyKey"},{name:"transformerArgument",type:String}],methods:[{name:"evaluateIn"}],events:[{name:"transform"}]};Sys.Preview.BindingBase.registerClass("Sys.Preview.BindingBase",Sys.Component,Sys.IDisposable);Sys.Preview.BindingBase.parseFromMarkup=function(h,b,f){var d=new h,a,c=b.attributes.getNamedItem("transform");if(c){var g=c.nodeValue;a=Sys.Preview.BindingBase.Transformers[g]}if(a){d.add_transform(a);b.attributes.removeNamedItem("transform")}var e=Sys.Preview.MarkupParser.initializeObject(d,b,f);if(a)b.attributes.setNamedItem(c);if(e){f.addComponent(e);return e}else d.dispose();return null};Sys.Preview.BindingBase.Transformers={};Sys.Preview.BindingBase.Transformers.Invert=function(b,a){a.set_value(!a.get_value())};Sys.Preview.BindingBase.Transformers.ToString=function(f,c){var d=c.get_value(),b="",a=c.get_transformerArgument(),e=a&&a.length!==0?a.indexOf("{0}"):-1;if(e!=-1)b=String.format(a,d);else if(d)b=d.toString();else b=a;c.set_value(b)};Sys.Preview.BindingBase.Transformers.ToLocaleString=function(f,d){var b=d.get_value(),c="",a=d.get_transformerArgument(),e=a&&a.length!==0?a.indexOf("{0}"):-1;if(e!==-1)c=String.format(a,b.toLocalString?b.toLocalString():b.toString());else if(b)c=b.toLocaleString();else c=a;d.set_value(c)};Sys.Preview.BindingBase.Transformers.Add=function(e,c){var b=c.get_value();if(typeof b!=="number")if(b==="")b=0;else b=Number.parseInvariant(b);var a=c.get_transformerArgument();if(!a)a=1;if(typeof a!=="number")if(b==="")a=0;else a=Number.parseInvariant(a);if(c.get_direction()===Sys.Preview.BindingDirection.Out)a=-a;var d=b+a;if(c.get_targetPropertyType()!=="number")d=d.toString();c.set_value(d)};Sys.Preview.BindingBase.Transformers.Multiply=function(e,c){var b=c.get_value();if(typeof b!=="number")if(b==="")b=0;else b=Number.parseInvariant(b);var a=c.get_transformerArgument();if(!a)a=1;if(typeof a!=="number")if(a==="")a=0;else a=Number.parseInvariant(a);var d;if(c.get_direction()===Sys.Preview.BindingDirection.Out)d=b/a;else d=b*a;if(c.get_targetPropertyType()!=="number")d=d.toString();c.set_value(d)};Sys.Preview.BindingBase.Transformers.Compare=function(d,b){var a=b.get_value(),c=b.get_transformerArgument();if(c===null)a=a?true:false;else a=a===c;b.set_value(a)};Sys.Preview.BindingBase.Transformers.CompareInverted=function(d,b){var a=b.get_value(),c=b.get_transformerArgument();if(c===null)a=a?false:true;else a=a!==c;b.set_value(a)};Sys.Preview.BindingBase.Transformers.RSSTransform=function(h,f){function b(b,c){var a=b.selectSingleNode(c);if(a)return a.nodeValue;return null}var c=f.get_value();if(!c)return;var e=new Sys.Preview.Data.DataTable([new Sys.Preview.Data.DataColumn("title",String,null,false,true),new Sys.Preview.Data.DataColumn("description",String,null,false,true),new Sys.Preview.Data.DataColumn("link",String,null,false,true),new Sys.Preview.Data.DataColumn("author",String,null,false,true),new Sys.Preview.Data.DataColumn("category",String,null,false,true),new Sys.Preview.Data.DataColumn("comments",String,null,false,true),new Sys.Preview.Data.DataColumn("guid",String,null,true,true),new Sys.Preview.Data.DataColumn("pubDate",String,null,false,true),new Sys.Preview.Data.DataColumn("source",String,null,false,true)]);for(var d=0;d<c.length;d++){var a=c[d];if(!a||a.nodeType!=1)continue;var g={title:b(a,"./title/text()"),description:b(a,"./description/text()"),link:b(a,"./link/text()"),author:b(a,"./author/text()"),category:b(a,"./category/text()"),comments:b(a,"./comments/text()"),guid:b(a,"./guid/text()"),pubDate:b(a,"./pubDate/text()"),source:b(a,"./source/text()")};e.add(g)}f.set_value(e)};Sys.Preview.Binding=function(a){Sys.Preview.Binding.initializeBase(this,[a])};Sys.Preview.Binding.prototype={_targetNotificationHandler:null,_sourceNotificationHandler:null,_direction:Sys.Preview.BindingDirection.In,get_direction:function(){return this._direction},set_direction:function(a){if(!this._getSource())this._direction=a},dispose:function(){var b=this.get_target(),a=this._getSource();if(this._targetNotificationHandler){b.remove_propertyChanged(this._targetNotificationHandler);this._targetNotificationHandler=null}if(this._sourceNotificationHandler){a.remove_propertyChanged(this._sourceNotificationHandler);this._sourceNotificationHandler=null}if(this._targetDisposingHandler){b.remove_disposing(this._targetDisposingHandler);this._targetDisposingHandler=null}if(this._sourceDisposingHandler){a.remove_disposing(this._sourceDisposingHandler);this._sourceDisposingHandler=null}Sys.Preview.Binding.callBaseMethod(this,"dispose")},evaluateOut:function(){var a,b,c=this._get_dataPathParts();if(c){a=this._evaluateDataPath();b=c[c.length-1];if(!a)return}else{a=this._getSource();b=this.get_dataPath()}var e=Sys.Preview.TypeDescriptor.getPropertyType(a,b),d=this._getTargetValue(e);if(d!==null)Sys.Preview.TypeDescriptor.setProperty(a,b,d)},initialize:function(){Sys.Preview.Binding.callBaseMethod(this,"initialize");if(this.get_automatic()){if(this._direction!==Sys.Preview.BindingDirection.In){var b=this.get_target();if(Sys.INotifyPropertyChange.isImplementedBy(b)){this._targetNotificationHandler=Function.createDelegate(this,this._onTargetPropertyChanged);b.add_propertyChanged(this._targetNotificationHandler)}if(Sys.INotifyDisposing.isImplementedBy(b)){this._targetDisposingHandler=Function.createDelegate(this,this._onDisposing);b.add_disposing(this._targetDisposingHandler)}}if(this._direction!==Sys.Preview.BindingDirection.Out){var a=this._getSource();if(Sys.INotifyPropertyChange.isImplementedBy(a)){this._sourceNotificationHandler=Function.createDelegate(this,this._onSourcePropertyChanged);a.add_propertyChanged(this._sourceNotificationHandler)}if(Sys.INotifyDisposing.isImplementedBy(a)){this._sourceDisposingHandler=Function.createDelegate(this,this._onDisposing);a.add_disposing(this._sourceDisposingHandler)}this.evaluate(Sys.Preview.BindingDirection.In)}}},_onSourcePropertyChanged:function(e,d){var a=this.get_dataPath(),b=this._get_dataPathParts();if(b)a=b[0];var c=d.get_propertyName();if(!c||c===a)this.evaluate(Sys.Preview.BindingDirection.In)},_onTargetPropertyChanged:function(c,b){var a=b.get_propertyName();if(!a||a===this.get_property())this.evaluate(Sys.Preview.BindingDirection.Out)},_onDisposing:function(){this.dispose()}};Sys.Preview.Binding.descriptor={properties:[{name:"direction",type:Sys.Preview.BindingDirection}],methods:[{name:"evaluateOut"}]};Sys.Preview.Binding.registerClass("Sys.Preview.Binding",Sys.Preview.BindingBase);Sys.Preview.XPathBinding=function(){Sys.Preview.XPathBinding.initializeBase(this)};Sys.Preview.XPathBinding.prototype={_xpath:null,get_xpath:function(){return this._xpath},set_xpath:function(a){if(!this._getSource())this._xpath=a},initialize:function(){Sys.Preview.XPathBinding.callBaseMethod(this,"initialize");if(this.get_automatic())this.evaluate(Sys.Preview.BindingDirection.In)},_getSourceValue:function(f){var b=Sys.Preview.XPathBinding.callBaseMethod(this,"_getSourceValue");if(!b)return null;if(Array.isInstanceOfType(f)){var d=b.selectNodes(this._xpath),e=[];for(var c=0;c<d.length;c++){var a=d[c];if(!a||a.nodeType!==1)continue;Array.add(e,a)}return e}else{var a=b.selectSingleNode(this._xpath);if(a)return a.nodeValue;return null}}};Sys.Preview.XPathBinding.descriptor={properties:[{name:"xpath",type:String}]};Sys.Preview.XPathBinding.registerClass("Sys.Preview.XPathBinding",Sys.Preview.BindingBase);Sys.Preview.Action=function(){Sys.Preview.Action.initializeBase(this)};Sys.Preview.Action.prototype={_eventSource:null,_eventName:null,_eventArgs:null,_result:null,_target:null,_bindings:null,get_eventSource:function(){return this._eventSource},set_eventSource:function(a){if(!this.get_isInitialized())this._eventSource=a},get_eventName:function(){return this._eventName},set_eventName:function(a){if(!this.get_isInitialized())this._eventName=a},get_target:function(){return this._target},set_target:function(a){this._target=a},get_dataContext:function(){return this},get_eventArgs:function(){return this._eventArgs},get_result:function(){return this._result},get_sender:function(){return this._eventSource},get_bindings:function(){if(!this._bindings){this._bindings=Sys.Component.createCollection(this);this._bindings.add_collectionChanged(Function.createDelegate(this,this._bindingChanged))}return this._bindings},_bindingChanged:function(b,a){if(a.get_action()===Sys.Preview.NotifyCollectionChangedAction.Add)a.get_changedItem().set_automatic(false)},dispose:function(){if(this._sourceHandler){this._eventSource["remove_"+this._eventName](this._sourceHandler);this._sourceHandler=null}if(this._sourceDisposingHandler){this._eventSource.remove_disposing(this._sourceDisposingHandler);this._sourceDisposingHandler=null}if(this._targetDisposingHandler){this._target.remove_disposing(this._targetDisposingHandler);this._targetDisposingHandler=null}this._target=null;this._eventSource=null;Sys.Preview.Action.callBaseMethod(this,"dispose")},performAction:function(){throw Error.notImplemented()},execute:function(f,e){this._eventArgs=e;var d=this.get_bindings(),a,b;if(d){var c;for(c=0;c<d.length;c++){a=d[c];b=a?Object.getType(a):null;if(b&&(b===Sys.Preview.Binding||Sys.Preview.Binding.inheritsFrom(b))){if(a.get_direction()!==Sys.Preview.BindingDirection.Out)a.evaluateIn()}else a.evaluateIn()}}this._result=this.performAction();if(d)for(c=0;c<d.length;c++){a=d[c];b=a?Object.getType(a):null;if(b&&(b===Sys.Preview.Binding||Sys.Preview.Binding.inheritsFrom(b))){if(a.get_direction()!==Sys.Preview.BindingDirection.In)a.evaluateOut()}else a.evaluateOut()}this._eventArgs=null;this._result=null},initialize:function(){if(this._eventSource){var a=Sys.Preview.TypeDescriptor.getTypeDescriptor(this._eventSource);if(a){if(Sys.INotifyDisposing.isImplementedBy(this._eventSource)){this._sourceDisposeHandler=Function.createDelegate(this,this._sourceDisposing);this._eventSource.add_disposing(this._sourceDisposeHandler)}var b=a._getEvents()[this.get_eventName()];this._sourceHandler=Function.createDelegate(this,this.execute);this._eventName=b.name;this._eventSource["add_"+this._eventName](this._sourceHandler)}}if(this._target&&Sys.INotifyDisposing.isImplementedBy(this._target)){this._targetDisposeHandler=Function.createDelegate(this,this._targetDisposing);this._target.add_disposing(this._targetDisposeHandler)}Sys.Preview.Action.callBaseMethod(this,"initialize")},setOwner:function(a){if(!this.get_isInitialized())this._eventSource=a},_sourceDisposing:function(){this.dispose()},_targetDisposing:function(){this.dispose()}};Sys.Preview.Action.descriptor={properties:[{name:"eventSource",type:Object},{name:"eventName",type:String},{name:"bindings",type:Array,readOnly:true},{name:"eventArgs",type:Sys.EventArgs,readOnly:true},{name:"result",type:Object,readOnly:true},{name:"sender",type:Object,readOnly:true},{name:"target",type:Object}]};Sys.Preview.Action.registerClass("Sys.Preview.Action",Sys.Component,Sys.Preview.IAction);Sys.Preview.Action.parseFromMarkup=function(e,d,b){var c=new e,a=Sys.Preview.MarkupParser.initializeObject(c,d,b);if(a){b.addComponent(a);return a}else c.dispose();return null};Sys.Preview.InvokeMethodAction=function(){Sys.Preview.InvokeMethodAction.initializeBase(this)};Sys.Preview.InvokeMethodAction.prototype={_method:null,_parameters:null,get_method:function(){return this._method},set_method:function(a){this._method=a},get_parameters:function(){if(!this._parameters)this._parameters={};return this._parameters},performAction:function(){return Sys.Preview.TypeDescriptor.invokeMethod(this.get_target(),this._method,this._parameters)}};Sys.Preview.InvokeMethodAction.descriptor={properties:[{name:"method",type:String},{name:"parameters",type:Object,readOnly:true}]};Sys.Preview.InvokeMethodAction.registerClass("Sys.Preview.InvokeMethodAction",Sys.Preview.Action);Sys.Preview.SetPropertyAction=function(){Sys.Preview.SetPropertyAction.initializeBase(this)};Sys.Preview.SetPropertyAction.prototype={_property:null,_propertyKey:null,_value:null,get_property:function(){return this._property},set_property:function(a){this._property=a},get_propertyKey:function(){return this._propertyKey},set_propertyKey:function(a){this._propertyKey=a},get_value:function(){return this._value},set_value:function(a){this._value=a},performAction:function(){Sys.Preview.TypeDescriptor.setProperty(this.get_target(),this._property,this._value,this._propertyKey);return null}};Sys.Preview.SetPropertyAction.descriptor={properties:[{name:"property",type:String},{name:"propertyKey"},{name:"value",type:String}]};Sys.Preview.SetPropertyAction.registerClass("Sys.Preview.SetPropertyAction",Sys.Preview.Action);Sys.Preview.PostBackAction=function(){Sys.Preview.PostBackAction.initializeBase(this)};Sys.Preview.PostBackAction.prototype={_eventArgument:null,get_target:function(){return this._target},set_target:function(a){this._target=a},get_eventArgument:function(){return this._eventArgument},set_eventArgument:function(a){this._eventArgument=a},performAction:function(){__doPostBack(this.get_target(),this.get_eventArgument());return null}};Sys.Preview.PostBackAction.descriptor={properties:[{name:"eventArgument",type:String},{name:"target",type:String}]};Sys.Preview.PostBackAction.registerClass("Sys.Preview.PostBackAction",Sys.Preview.Action);Sys.Preview.Counter=function(){Sys.Preview.Counter.initializeBase(this)};Sys.Preview.Counter.prototype={_value:0,_lowerBound:Number.NaN,_upperBound:Number.NaN,get_canDecrement:function(){return isNaN(this._lowerBound)||this._value>this._lowerBound},get_canIncrement:function(){return isNaN(this._upperBound)||this._value<this._upperBound},get_lowerBound:function(){return this._lowerBound},set_lowerBound:function(a){if(isNaN(a)&&isNaN(this._lowerBound)||a===this._lowerBound)return;var b=this.get_canDecrement();this._lowerBound=a;this.raisePropertyChanged("lowerBound");if(b!==this.get_canDecrement())this.raisePropertyChanged("canDecrement")},get_upperBound:function(){return this._upperBound},set_upperBound:function(a){if(isNaN(a)&&isNaN(this._upperBound)||a===this._upperBound)return;var b=this.get_canIncrement();this._upperBound=a;this.raisePropertyChanged("upperBound");if(b!==this.get_canIncrement())this.raisePropertyChanged("canIncrement")},get_value:function(){return this._value},set_value:function(a){if((isNaN(this._lowerBound)||a>=this._lowerBound)&&(isNaN(this._upperBound)||a<=this._upperBound)&&this._value!==a){var b=this.get_canDecrement(),c=this.get_canIncrement();this._value=a;this.raisePropertyChanged("value");if(b!==this.get_canDecrement())this.raisePropertyChanged("canDecrement");if(c!==this.get_canIncrement())this.raisePropertyChanged("canIncrement")}},decrement:function(){this.set_value(this._value-1)},increment:function(){this.set_value(this._value+1)}};Sys.Preview.Counter.descriptor={properties:[{name:"value",type:Number},{name:"lowerBound",type:Number},{name:"upperBound",type:Number},{name:"canDecrement",type:Boolean,readOnly:true},{name:"canIncrement",type:Boolean,readOnly:true}],methods:[{name:"increment"},{name:"decrement"}]};Sys.Preview.Counter.registerClass("Sys.Preview.Counter",Sys.Component);Sys.Preview.Timer=function(){Sys.Preview.Timer.initializeBase(this);this._interval=1000;this._enabled=false;this._timer=null};Sys.Preview.Timer.prototype={get_interval:function(){return this._interval},set_interval:function(a){if(this._interval!==a){this._interval=a;this.raisePropertyChanged("interval");if(!this.get_isUpdating()&&this._timer!==null)this.restartTimer()}},get_enabled:function(){return this._enabled},set_enabled:function(a){if(a!==this.get_enabled()){this._enabled=a;this.raisePropertyChanged("enabled");if(!this.get_isUpdating())if(a)this._startTimer();else this._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.Preview.Timer.callBaseMethod(this,"dispose")},updated:function(){Sys.Preview.Timer.callBaseMethod(this,"updated");if(this._enabled)this.restartTimer()},_timerCallback:function(){var a=this.get_events().getHandler("tick");if(a)a(this,Sys.EventArgs.Empty)},restartTimer:function(){this._stopTimer();this._startTimer()},_startTimer:function(){this._timer=window.setInterval(Function.createDelegate(this,this._timerCallback),this._interval)},_stopTimer:function(){window.clearInterval(this._timer);this._timer=null}};Sys.Preview.Timer.descriptor={properties:[{name:"interval",type:Number},{name:"enabled",type:Boolean}],events:[{name:"tick"}]};Sys.Preview.Timer.registerClass("Sys.Preview.Timer",Sys.Component);Sys.Preview.ITask=function(){throw Error.notImplemented()};Sys.Preview.ITask.prototype={execute:function(){throw Error.notImplemented()}};Sys.Preview.ITask.registerInterface("Sys.Preview.ITask");Sys.Preview.Reference=function(){};Sys.Preview.Reference.prototype={_component:null,_onload:null,get_component:function(){return this._component},set_component:function(a){this._component=a},get_onscriptload:function(){return this._onload},set_onscriptload:function(a){this._onload=a},dispose:function(){this._component=null}};Sys.Preview.Reference.descriptor={properties:[{name:"component",type:Object},{name:"onscriptload",type:String}]};Sys.Preview.Reference.registerClass("Sys.Preview.Reference",null,Sys.IDisposable);Sys.Preview.Reference.parseFromMarkup=function(e,d,c){var a=new Sys.Preview.Reference,b=Sys.Preview.MarkupParser.initializeObject(a,d,c);if(b)return b;a.dispose();return null};Sys.Preview._TaskManager=function(){Sys.Application.registerDisposableObject(this);this._tasks=[]};Sys.Preview._TaskManager.prototype={_timeoutCookie:null,_timeoutHandler:null,addTask:function(a){Array.enqueue(this._tasks,a);this._startTimeout()},dispose:function(){if(this._timeoutCookie)window.clearTimeout(this._timeoutCookie);if(this._tasks&&this._tasks.length)for(var a=this._tasks.length-1;a>=0;a--)this._tasks[a].dispose();this._tasks=null;this._timeoutHandler=null;Sys.Application.unregisterDisposableObject(this)},_onTimeout:function(){this._timeoutCookie=0;var a=Array.dequeue(this._tasks);if(!a.execute())Array.enqueue(this._tasks,a);if(this._tasks.length)this._startTimeout()},_startTimeout:function(){if(!this._timeoutCookie){if(!this._timeoutHandler)this._timeoutHandler=Function.createDelegate(this,this._onTimeout);this._timeoutCookie=window.setTimeout(this._timeoutHandler,0)}}};Sys.Preview._TaskManager.registerClass("Sys.Preview._TaskManager",null,Sys.IDisposable);Sys.Preview.TaskManager=new Sys.Preview._TaskManager;Type.registerNamespace("Sys.Preview.Net");Sys.Preview.Net.ServiceMethodRequest=function(){Sys.Preview.Net.ServiceMethodRequest.initializeBase(this)};Sys.Preview.Net.ServiceMethodRequest.prototype={_url:null,_methodName:null,_parameters:null,_userContext:null,_result:null,_request:null,_timeoutInterval:0,_useGet:true,get_url:function(){return this._url},set_url:function(a){this._url=a},get_methodName:function(){return this._methodName},set_methodName:function(a){this._methodName=a},get_useGet:function(){return this._useGet},set_useGet:function(a){this._useGet=a},get_parameters:function(){if(this._parameters===null)this._parameters={};return this._parameters},get_result:function(){return this._result},get_timeoutInterval:function(){return this._timeoutInterval},set_timeoutInterval:function(a){this._timeoutInterval=a},add_completed:function(a){this.get_events().addHandler("completed",a)},remove_completed:function(a){this.get_events().removeHandler("completed",a)},add_timeout:function(a){this.get_events().addHandler("timeout",a)},remove_timeout:function(a){this.get_events().removeHandler("timeout",a)},add_error:function(a){this.get_events().addHandler("error",a)},remove_error:function(a){this.get_events().removeHandler("error",a)},invoke:function(a){if(this._request!==null)return false;var d={parameters:this.get_parameters(),loadMethod:""};this._request=Sys.Net.WebServiceProxy.invoke(this._url,this._methodName,this._useGet,d,b,c,this,this._timeoutInterval);function b(d,b){b._request=null;b._userContext=a;b._result=d;var c=b.get_events().getHandler("completed");if(c)c(b,Sys.EventArgs.Empty)}function c(c,b){b._request=null;b._userContext=a;b._result=c;var e=false;if(c.get_errorStatus)e=c.get_errorStatus()===2;else if(c.get_timedOut)e=c.get_timedOut();var d;if(e)d=b.get_events().getHandler("timeout");else d=b.get_events().getHandler("error");if(d)d(b,Sys.EventArgs.Empty)}return true}};Sys.Preview.Net.ServiceMethodRequest.descriptor={properties:[{name:"url",type:String},{name:"methodName",type:String},{name:"parameters",type:Object,readOnly:true},{name:"result",type:Object,readOnly:true},{name:"timeoutInterval",type:Number},{name:"useGet",type:Boolean}],methods:[{name:"invoke",parameters:[{name:"userContext"}]}],events:[{name:"completed"},{name:"timeout"},{name:"error"}]};Sys.Preview.Net.ServiceMethodRequest.registerClass("Sys.Preview.Net.ServiceMethodRequest",Sys.Component);Sys.Net._WebRequestManager.descriptor={properties:[{name:"defaultTimeout",type:Number},{name:"defaultExecutorType",type:String}]};Sys.Net._WebRequestManager.parseFromMarkup=function(c,b,a){if(!a.get_isGlobal())return null;Sys.Preview.MarkupParser.initializeObject(Sys.Net.WebRequestManager,b,a);return Sys.Net.WebRequestManager};Type.registerNamespace("Sys.Preview.Data");Sys.Preview.Data.IData=function(){throw Error.notImplemented()};Sys.Preview.Data.IData.prototype={add:function(){throw Error.notImplemented()},clear:function(){throw Error.notImplemented()},get_length:function(){throw Error.notImplemented()},getRow:function(){throw Error.notImplemented()},remove:function(){throw Error.notImplemented()}};Sys.Preview.Data.IData.registerInterface("Sys.Preview.Data.IData");Sys.Preview.Data.DataRowState=function(){throw Error.invalidOperation()};Sys.Preview.Data.DataRowState.prototype={Unchanged:0,Added:1,Deleted:2,Detached:3,Modified:4};Sys.Preview.Data.DataRowState.registerEnum("Sys.Preview.Data.DataRowState");Sys.Preview.Data.SortDirection=function(){throw Error.invalidOperation()};Sys.Preview.Data.SortDirection.prototype={Ascending:0,Descending:1};Sys.Preview.Data.SortDirection.registerEnum("Sys.Preview.Data.SortDirection");Sys.Preview.Data.ServiceType=function(){throw Error.invalidOperation()};Sys.Preview.Data.ServiceType.prototype={DataService:0,Handler:1};Sys.Preview.Data.ServiceType.registerEnum("Sys.Preview.Data.ServiceType");Sys.Preview.Data.DataColumn=function(b,d,a,e,c){this._columnName=b;this._dataType=d;this._defaultValue=a;this._readOnly=c;this._key=e};Sys.Preview.Data.DataColumn.prototype={get_columnName:function(){return this._columnName},get_dataType:function(){return this._dataType},get_defaultValue:function(){return this._defaultValue},get_isKey:function(){return this._key},get_readOnly:function(){return !!this._readOnly},dispose:function(){this._columnName=null;this._dataType=null;this._defaultValue=null}};Sys.Preview.Data.DataColumn.parseFromJson=function(json){return new Sys.Preview.Data.DataColumn(json.name,typeof(json.dataType==="string")?eval(json.dataType):json.dataType,json.defaultValue,json.isKey,json.readOnly)};Sys.Preview.Data.DataColumn.descriptor={properties:[{name:"columnName",type:String,readOnly:true},{name:"dataType",type:Sys.Type,readOnly:true},{name:"defaultValue",readOnly:true},{name:"isKey",type:Boolean,readOnly:true},{name:"readOnly",type:Boolean,readOnly:true}]};Sys.Preview.Data.DataColumn.registerClass("Sys.Preview.Data.DataColumn",null,Sys.IDisposable);Sys.Preview.Data.DataRow=function(b,a,c){this._owner=a;this._row=b;this._index=c};Sys.Preview.Data.DataRow.prototype={_state:Sys.Preview.Data.DataRowState.Unchanged,_selected:false,_events:null,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){if(this._disposed)return;this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){if(this._disposed)return;this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},get_isDirty:function(){return typeof this._row._original==="object"},get_index:function(){return this._index},_set_index:function(a){this._index=a},get_rowObject:function(){return typeof this._row._rowObject!=="undefined"?this._row._rowObject:this._row},get_selected:function(){return this._selected},set_selected:function(a){if(this._selected!==a){this._selected=a;this._onPropertyChanged("$selected")}},get_state:function(){return this._state},_set_state:function(a){this._state=a},get_table:function(){return this._owner},_set_table:function(a){this._owner=a},dispose:function(){delete this._events;this._row=null;this._owner=null;this._disposed=true},getProperty:function(a,b){if(!a)return typeof this._row._rowObject!=="undefined"?this._row._rowObject:this._row;switch(a){case "$isDirty":return this.get_isDirty();case "$index":return this._index;case "$selected":return this.get_selected()}return Sys.Preview.TypeDescriptor.getProperty(this._row,a,b)},setProperty:function(b,c,f){if(b==="$selected"){this.set_selected(c);return}if(this._row[b]===c)return;var e=this.get_isDirty();if(!e&&this._owner&&this.get_state()===Sys.Preview.Data.DataRowState.Unchanged){var d={};for(var a in this._row)if(a.charAt(0)!=="_"&&typeof this._row[a]!=="function")d[a]=this._row[a];this._row._original=d;this._set_state(Sys.Preview.Data.DataRowState.Modified)}Sys.Preview.TypeDescriptor.setProperty(this._row,b,c,f);this._onPropertyChanged(b);if(!e)this._onPropertyChanged("$isDirty");this._owner.raiseRowChanged(this._row)},invokeMethod:function(){}};Sys.Preview.Data.DataRow.descriptor={properties:[{name:"$isDirty",type:Boolean,readOnly:true},{name:"$index",type:Number,readOnly:true},{name:"$selected",type:Boolean}],events:[{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataRow.registerClass("Sys.Preview.Data.DataRow",null,Sys.Preview.ICustomTypeDescriptor,Sys.INotifyPropertyChange,Sys.IDisposable);Sys.Preview.Data.DataRowView=function(a,b){this._row=a;this._index=b};Sys.Preview.Data.DataRowView.prototype={_rowPropertyChanged:null,_events:null,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},get_dataIndex:function(){return this._row.get_index()},get_index:function(){return this._index},_set_index:function(a){this._index=a},get_isDirty:function(){return this._row.get_isDirty()},_get_row:function(){return this._row},get_rowObject:function(){return this._row.get_rowObject()},get_selected:function(){return this._row.get_selected()},set_selected:function(a){this._row.set_selected(a)},get_table:function(){return this._row.get_table()},dispose:function(){if(this._row&&this._rowPropertyChanged)this._row.remove_propertyChanged(this._rowPropertyChanged);delete this._events;this._row=null},initialize:function(){this._rowPropertyChanged=Function.createDelegate(this,this._onRowPropertyChanged);this._row.add_propertyChanged(this._rowPropertyChanged)},_onRowPropertyChanged:function(b,a){this._onPropertyChanged(a.get_propertyName())},getProperty:function(a,b){if(a==="$index")return this._index;if(a==="$dataIndex")return this._row.get_index();return this._row.getProperty(a,b)},setProperty:function(b,a,c){this._row.setProperty(b,a,c)},invokeMethod:function(){}};Sys.Preview.Data.DataRowView.descriptor={properties:[{name:"$dataIndex",type:Number,readOnly:true},{name:"$isDirty",type:Boolean,readOnly:true},{name:"$index",type:Number,readOnly:true},{name:"$selected",type:Boolean}],events:[{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataRowView.registerClass("Sys.Preview.Data.DataRowView",null,Sys.Preview.ICustomTypeDescriptor,Sys.INotifyPropertyChange,Sys.IDisposable);Sys.Preview.Data.DataRowCollection=function(a,b){this._rows=a;this._dataTable=b};Sys.Preview.Data.DataRowCollection.prototype={_indexToRow:null,_tableCollectionChanged:null,_suspendNotifications:false,_events:null,get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},add_collectionChanged:function(a){this.get_events().addHandler("collectionChanged",a)},remove_collectionChanged:function(a){this.get_events().removeHandler("collectionChanged",a)},_onCollectionChanged:function(c,b){var a=this.get_events().getHandler("collectionChanged");if(a)a(this,new Sys.Preview.CollectionChangedEventArgs(c,b))},_get_dataTable:function(){return this._dataTable},get_length:function(){return this._rows.length},add:function(c){var a=this._dataTable.add(c),b=new Sys.Preview.Data.DataRowView(a,this._rows.length);b.initialize();if(typeof this._rows.add==="function")this._rows.add(b);else Array.add(this._rows,b);if(this._indexToRow)this._indexToRow[a.get_dataIndex()]=a},clear:function(){this._suspendNotifications=true;for(var a=this._rows.length-1;a>=0;a--)this._dataTable.remove(this._rows[a]._get_row());this._rows=[];this._indexToRow=null;this._suspendNotifications=false;this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Reset,null)},getRow:function(a){return this._rows[a]},getItem:function(a){return this.getRow(a)},remove:function(a){this._dataTable.remove(a._get_row())},dispose:function(){if(this._dataTable&&this._tableCollectionChanged){this._dataTable.remove_collectionChanged(this._tableCollectionChanged);this._tableCollectionChanged=null}delete this._events;this._rows=null;this._dataTable=null},initialize:function(){if(this._dataTable.add_collectionChanged){this._tableCollectionChanged=Function.createDelegate(this,this.onTableCollectionChanged);this._dataTable.add_collectionChanged(this._tableCollectionChanged)}},ensureLookupTable:function(){if(!this._indexToRow){this._indexToRow=[];for(var a=this._rows.length-1;a>=0;a--){var b=this._rows[a];this._indexToRow[b.get_dataIndex()]=b}}},onTableCollectionChanged:function(d,c){if(this._suspendNotifications)return;switch(c.get_action()){case Sys.Preview.NotifyCollectionChangedAction.Reset:this._rows=[];this._indexToRow=null;this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Reset,b);return;case Sys.Preview.NotifyCollectionChangedAction.Remove:var b=c.get_changedItem();this.ensureLookupTable();var a=b.get_index();if(this._indexToRow[a]){if(typeof this._rows.remove==="function")this._rows.remove(this._indexToRow[a]);else Array.remove(this._rows,this._indexToRow[a]);delete this._indexToRow[a];this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Remove,b)}return}}};Sys.Preview.Data.DataRowCollection.descriptor={properties:[{name:"length",type:Number,readOnly:true}],methods:[{name:"add"},{name:"clear"},{name:"remove"}],events:[{name:"collectionChanged",readOnly:true},{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataRowCollection.registerClass("Sys.Preview.Data.DataRowCollection",null,Sys.Preview.Data.IData,Sys.INotifyPropertyChange,Sys.Preview.INotifyCollectionChanged,Sys.IDisposable);Sys.Preview.Data.DataTable=function(b,a){this._array=Array.isInstanceOfType(a)?a:[];this._columns=Array.isInstanceOfType(b)?b:[];this._rows=[];this._deletedRows=[];this._newRows=[];this._updatedRows=[];this._columnDictionary={};this._keys=null;this._events=null};Sys.Preview.Data.DataTable.prototype={get_events:function(){if(!this._events)this._events=new Sys.EventHandlerList;return this._events},add_propertyChanged:function(a){if(this._disposed)return;this.get_events().addHandler("propertyChanged",a)},remove_propertyChanged:function(a){if(this._disposed)return;this.get_events().removeHandler("propertyChanged",a)},_onPropertyChanged:function(b){if(this._disposed)return;var a=this.get_events().getHandler("propertyChanged");if(a)a(this,new Sys.PropertyChangedEventArgs(b))},add_collectionChanged:function(a){if(this._disposed)return;this.get_events().addHandler("collectionChanged",a)},remove_collectionChanged:function(a){if(this._disposed)return;this.get_events().removeHandler("collectionChanged",a)},_onCollectionChanged:function(c,b){if(this._disposed)return;var a=this.get_events().getHandler("collectionChanged");if(a)a(this,new Sys.Preview.CollectionChangedEventArgs(c,b))},get_columns:function(){return this._columns},get_keyNames:function(){if(this._disposed)return null;if(!this._keys){this._keys=[];var c=this._columns.length;for(var a=0;a<c;a++){var b=this._columns[a];if(b.get_isKey())Array.add(this._keys,b.get_columnName())}}return this._keys},get_isDirty:function(){if(this._disposed)return false;return this._deletedRows.length!==0||this._newRows.length!==0||this._updatedRows.length!==0},get_length:function(){if(this._disposed)return 0;return this._array.length},add:function(a){if(this._disposed)return null;var b;if(Sys.Preview.Data.DataRow.isInstanceOfType(a)){b=a;b._set_table(this);a=a.get_rowObject()}else b=new Sys.Preview.Data.DataRow(a,this);var e=this._array.length;b._set_index(e);var c=this.get_columns();if(c)for(var f=c.length-1;f>=0;f--){var d=c[f];if(typeof a[d.get_columnName()]==="undefined")a[d.get_columnName()]=d.get_defaultValue()}var g=this.get_isDirty();this._array[e]=a;this._rows[e]=b;Array.add(this._newRows,a);b._set_state(Sys.Preview.Data.DataRowState.Added);this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Add,b);this._onPropertyChanged("length");if(!g)this._onPropertyChanged("isDirty");return b},clear:function(){if(this.get_length()>0){var c=this.get_isDirty();for(var a=this._array.length-1;a>=0;a--){var b=this._array[a];if(b&&!Array.contains(this._newRows,b)){Array.add(this._deletedRows,b);this._rows[a]._set_state(Sys.Preview.Data.DataRowState.Deleted)}}this._rows=[];this._array=[];this._newRows=[];this._updatedRows=[];this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Reset,null);this._onPropertyChanged("length");if(!c)this._onPropertyChanged("isDirty")}},createRow:function(c){if(this._disposed)return null;var g={},f={};for(var b=this._columns.length-1;b>=0;b--){var e=this._columns[b],d=e.get_columnName(),a=f;if(c)a=Sys.Preview.TypeDescriptor.getProperty(c,d);if(a===f||typeof a==="undefined")a=e.get_defaultValue();g[d]=a}var h=new Sys.Preview.Data.DataRow(g,this,-1);h._set_state(Sys.Preview.Data.DataRowState.Detached);return h},getChanges:function(){if(this._disposed)return null;return {updated:this._updatedRows,inserted:this._newRows,deleted:this._deletedRows}},getColumn:function(b){if(this._disposed)return null;var d=this._columnDictionary[b];if(d)return d;for(var c=this._columns.length-1;c>=0;c--){var a=this._columns[c];if(a.get_columnName()===b){this._columnDictionary[b]=a;return a}}return null},getRow:function(b){if(this._disposed)return null;var c=this._rows[b];if(!c){var a=this._array[b];if(a){c=Sys.Preview.Data.DataRow.isInstanceOfType(a)?a:new Sys.Preview.Data.DataRow(a,this,b);this._rows[b]=c}}return c},getItem:function(a){return this.getRow(a)},remove:function(b){if(this._disposed)return;if(Sys.Preview.Data.DataRow.isInstanceOfType(b))b=b.get_rowObject();var d=this.get_isDirty(),a=Array.indexOf(this._array,b),c=this.getItem(a);if(typeof this._array.removeAt==="function")this._array.removeAt(a);else Array.removeAt(this._array,a);Array.removeAt(this._rows,a);a=Array.indexOf(this._newRows,b);if(a!==-1)Array.removeAt(this._newRows,a);else Array.add(this._deletedRows,b);c._set_state(Sys.Preview.Data.DataRowState.Deleted);this._onCollectionChanged(Sys.Preview.NotifyCollectionChangedAction.Remove,c);this._onPropertyChanged("length");if(d!==this.get_isDirty())this._onPropertyChanged("isDirty")},dispose:function(){delete this._events;this._disposed=true;var a,b;if(this._rows)for(a=this._rows.length-1;a>=0;a--){b=this._rows[a];if(b)this._rows[a].dispose()}if(this._deletedRows)for(a=this._deletedRows.length-1;a>=0;a--){b=this._deletedRows[a];if(b&&b.dispose)b.dispose()}if(this._newRows)for(a=this._newRows.length-1;a>=0;a--){b=this._newRows[a];if(b&&b.dispose)b.dispose()}if(this._updatedRows)for(a=this._updatedRows.length-1;a>=0;a--){b=this._updatedRows[a];if(b&&b.dispose)b.dispose()}this._rows=null;this._deletedRows=null;this._newRows=null;this._updatedRows=null;this._columns=null;this._array=null;this._keys=null},raiseRowChanged:function(a){if(this._disposed)return;if(Array.indexOf(this._updatedRows,a)===-1&&Array.indexOf(this._newRows,a)===-1){var b=this.get_isDirty();Array.add(this._updatedRows,a);if(!b)this._onPropertyChanged("isDirty")}}};Sys.Preview.Data.DataTable.parseFromJson=function(a){var b=null;if(a.columns){b=[];for(var c=0;c<a.columns.length;c++)Array.add(b,Sys.Preview.Data.DataColumn.parseFromJson(a.columns[c]))}return new Sys.Preview.Data.DataTable(b,a.rows)};Sys.Preview.Data.DataTable.descriptor={properties:[{name:"columns",type:Array,readOnly:true},{name:"keyNames",type:Array,readOnly:true},{name:"length",type:Number,readOnly:true},{name:"isDirty",type:Boolean,readOnly:true}],methods:[{name:"add"},{name:"clear"},{name:"remove"}],events:[{name:"collectionChanged",readOnly:true},{name:"propertyChanged",readOnly:true}]};Sys.Preview.Data.DataTable.registerClass("Sys.Preview.Data.DataTable",null,Sys.Preview.Data.IData,Sys.INotifyPropertyChange,Sys.Preview.INotifyCollectionChanged,Sys.IDisposable);Sys.Preview.Data.DataView=function(){Sys.Preview.Data.DataView.initializeBase(this)};Sys.Preview.Data.DataView.prototype={_data:null,_filteredTable:null,_filteredRows:null,_paginatedRows:null,_pageSize:0,_pageIndex:0,_sorted:false,_sortColumn:"",_sortDirection:Sys.Preview.Data.SortDirection.Ascending,_filters:null,_dataChangedDelegate:null,_compareRowsDelegate:null,_updating:false,get_data:function(){return this._data},set_data:function(a){if(!this._dataChangedDelegate)this._dataChangedDelegate=Function.createDelegate(this,this.onDataChanged);this._filteredTable=null;if(this._data&&this._data.remove_collectionChanged)this._data.remove_collectionChanged(this._dataChangedDelegate);this._data=a;if(this._data&&this._data.add_collectionChanged)this._data.add_collectionChanged(this._dataChangedDelegate);this.raisePropertyChanged("data");this.raisePropertyChanged("filteredData")},get_filteredData:function(){this.ensureFilteredData();return this._filteredTable},get_filters:function(){if(!this._filters){this._filters=Sys.Component.createCollection(this);if(!this._dataChangedDelegate)this._dataChangedDelegate=Function.createDelegate(this,this.onDataChanged);this._filters.add_collectionChanged(this._dataChangedDelegate)}return this._filters},get_hasNextPage:function(){this.ensureFilteredData();return this.get_pageIndex()<this.get_pageCount()-1},get_hasPreviousPage:function(){if(!this._data)return false;return this.get_pageIndex()>0},get_length:function(){this.ensureFilteredData();return this._filteredTable?this._filteredTable.length?this._filteredTable.length:this._filteredTable.get_length():0},get_pageCount:function(){if(this._pageSize===0)return 1;this.ensureFilteredData();if(!this._filteredRows)return 1;return Math.floor((this._filteredRows.length-1)/this._pageSize)+1},get_pageIndex:function(){return this._pageIndex},set_pageIndex:function(a,c){var b=this.get_pageCount();if(a>=b)a=b>0?b-1:0;if(a!==this._pageIndex){var d=this.prepareChange();this._pageIndex=a;this._paginatedRows=null;this.triggerChangeEvents(d,false);if(!c)this.raisePropertyChanged("filteredData")}},get_pageSize:function(){return this._pageSize},set_pageSize:function(a){if(this._pageSize!==a){var b=this.prepareChange();this._pageSize=a;this._paginatedRows=null;this.triggerChangeEvents(b,true);this.raisePropertyChanged("filteredData")}},get_sortColumn:function(){return this._sortColumn},set_sortColumn:function(a){this.sort(a,this._sortDirection)},get_sortDirection:function(){return this._sortDirection},set_sortDirection:function(a){this.sort(this._sortColumn,a)},dispose:function(){this._disposed=true;if(this._filters){this._filters.dispose();this._filters=null}if(this._data&&this._dataChangedDelegate){if(this._data.removeCollectionChanged)this._data.remove_collectionChanged(this._dataChangedDelegate);this._dataChangedDelegate=null;this._data=null}Sys.Preview.Data.DataView.callBaseMethod(this,"dispose")},getItem:function(a){return this._filteredTable?this._filteredTable[a]:null},initialize:function(){Sys.Preview.Data.DataView.callBaseMethod(this,"initialize");if(this._filters)for(var a=0;a<this._filters.length;a++)this._filters[a].initialize(this)},sort:function(d,a){var b=d!==this._sortColumn,c=a!==this._sortDirection;if(b||c){this._sortColumn=d;this._sortDirection=a;if(b)this.raisePropertyChanged("sortColumn");if(c)this.raisePropertyChanged("sortDirection");this._sorted=false;this.set_pageIndex(0,true);this.raisePropertyChanged("filteredData")}},_raiseFilterChanged:function(){this._dataChangedDelegate(this,Sys.EventArgs.Empty)},compareRows:function(c,d){var a=this.get_sortColumn(),b=this.get_sortDirection();if(c.getProperty(a)===d.getProperty(a))return 0;if(c.getProperty(a)<d.getProperty(a))return b===Sys.Preview.Data.SortDirection.Ascending?-1:1;return b===Sys.Preview.Data.SortDirection.Ascending?1:-1},onDataChanged:function(d,b){if(this._disposed)return;if(b!==Sys.EventArgs.Empty){var c=b.get_changedItem(),a=this.get_filters();if(c&&!this.isValidAfterFiltering.call(c,a,a.length))return}this._filteredTable=null;this.raisePropertyChanged("filteredData")},ensureFilteredData:function(){if(this._updating||!this._data)return;this._updating=true;var i=this.prepareChange();if(typeof this._data.length==="number"&&this._data.length===0){this._filteredRows=[];this._paginatedRows=[];this._filteredTable=new Sys.Preview.Data.DataRowCollection([],this._data);this._filteredTable.initialize();this._sorted=true}else{if(!this._filteredTable){this._filteredRows=[];this._paginatedRows=null;this._filteredTable=null;var e=this.get_filters(),g=e.length,h=this._data.get_length?this._data.get_length():typeof this._data.length!=="undefined"?this._data.length:0;for(var a=0;a<h;a++){var b=this._data.getItem?this._data.getItem(a):this._data[a];if(!Sys.Preview.Data.DataRow.isInstanceOfType(b))b=new Sys.Preview.Data.DataRow(b,null,a);if(this.isValidAfterFiltering.call(this,b,e,g)){var f=new Sys.Preview.Data.DataRowView(b,a);f.initialize();Array.add(this._filteredRows,f)}}}if(!this._sorted&&this._sortColumn&&this._filteredRows.length!==0){if(!this._compareRowsDelegate)this._compareRowsDelegate=Function.createDelegate(this,this.compareRows);this._filteredRows.sort(this._compareRowsDelegate);for(var a=this._filteredRows.length-1;a>=0;a--)this._filteredRows[a]._set_index(a);this._sorted=true;this._paginatedRows=null;this._filteredTable=null}if(this._pageSize>0&&!this._paginatedRows){this._paginatedRows=[];this._filteredTable=null;var d=this._filteredRows.length,c=this._pageSize*this._pageIndex;if(d&&c>=d){this._pageIndex=Math.floor(d/this._pageSize)-1;c=this._pageSize*this._pageIndex}var j=c+this._pageSize;for(var a=c;a<j&&a<d;a++){this._filteredRows[a]._set_index(a);Array.add(this._paginatedRows,this._filteredRows[a])}}else this._paginatedRows=this._filteredRows;if(!this._filteredTable){this._filteredTable=new Sys.Preview.Data.DataRowCollection(this._paginatedRows,this._data);this._filteredTable.initialize()}}this.triggerChangeEvents(i,true);this._updating=false},isValidAfterFiltering:function(d,c,b){for(var a=0;a<b;a++)if(!c[a].filter(d))return false;return true},triggerChangeEvents:function(b,d){var c,a=this.get_pageIndex();if(d){if(this.get_pageCount()!==b.pageCount)this.raisePropertyChanged("pageCount");if(this.get_length()!==b.length)this.raisePropertyChanged("length");c=this.get_pageCount();if(a>=c){a=c>0?c-1:0;this.set_pageIndex(a)}}else c=b.pageCount;if(a!==b.pageIndex)this.raisePropertyChanged("pageIndex");if(a<c-1!==b.hasNextPage)this.raisePropertyChanged("hasNextPage");if(a>0!==b.hasPreviousPage)this.raisePropertyChanged("hasPreviousPage")},prepareChange:function(){return {pageCount:this.get_pageCount(),pageIndex:this.get_pageIndex(),length:this.get_length(),hasNextPage:this.get_hasNextPage(),hasPreviousPage:this.get_hasPreviousPage()}}};Sys.Preview.Data.DataView.descriptor={properties:[{name:"data",type:Sys.Preview.Data.DataTable},{name:"filteredData",type:Sys.Preview.Data.DataTable,readOnly:true},{name:"filters",type:Array,readOnly:true},{name:"hasNextPage",type:Boolean,readOnly:true},{name:"hasPreviousPage",type:Boolean,readOnly:true},{name:"length",type:Number,readOnly:true},{name:"pageCount",type:Number,readOnly:true},{name:"pageIndex",type:Number},{name:"pageSize",type:Number},{name:"sortColumn",type:String},{name:"sortDirection",type:Sys.Preview.Data.SortDirection}],methods:[{name:"sort",params:[{name:"sortColumn",type:String},{name:"sortDirection",type:Sys.Preview.Data.SortDirection}]}]};Sys.Preview.Data.DataView.registerClass("Sys.Preview.Data.DataView",Sys.Component);Sys.Preview.Data.DataFilter=function(){Sys.Preview.Data.DataFilter.initializeBase(this)};Sys.Preview.Data.DataFilter.prototype={filter:function(){throw Error.notImplemented()},get_dataContext:function(){var a=Sys.Preview.Data.DataFilter.callBaseMethod(this,"get_dataContext");if(!a)if(this.owner)a=this.owner.get_dataContext();return a},dispose:function(){this.owner=null;Sys.Preview.Data.DataFilter.callBaseMethod(this,"dispose")},raisePropertyChanged:function(a){Sys.Preview.Data.DataFilter.callBaseMethod(this,"raisePropertyChanged",[a]);if(this.owner)this.owner._raiseFilterChanged(this)},setOwner:function(a){this.owner=a}};Sys.Preview.Data.DataFilter.registerClass("Sys.Preview.Data.DataFilter",Sys.Component);Sys.Preview.Data.PropertyFilter=function(){Sys.Preview.Data.PropertyFilter.initializeBase(this)};Sys.Preview.Data.PropertyFilter.prototype={_property:null,_value:null,get_property:function(){return this._property},set_property:function(a){this._property=a;this.raisePropertyChanged("property")},get_value:function(){return this._value},set_value:function(a){this._value=a;this.raisePropertyChanged("value")},filter:function(a){return Sys.Preview.TypeDescriptor.getProperty(a,this._property)===this._value}};Sys.Preview.Data.PropertyFilter.descriptor={properties:[{name:"property",type:String},{name:"value"}]};Sys.Preview.Data.PropertyFilter.registerClass("Sys.Preview.Data.PropertyFilter",Sys.Preview.Data.DataFilter);Sys.Preview.Data.DataSource=function(){Sys.Preview.Data.DataSource.initializeBase(this);this._parameters={}};Sys.Preview.Data.DataSource.prototype={_data:null,_initialData:null,_autoLoad:false,_serviceURL:"",_loadMethod:"",_serviceType:Sys.Preview.Data.ServiceType.DataService,_isReady:true,_dataChangedDelegate:null,_request:null,_timeout:0,add_dataAvailable:function(a){this.get_events().addHandler("dataAvailable",a)},remove_dataAvailable:function(a){this.get_events().removeHandler("dataAvailable",a)},_onDataAvailable:function(){var a=this.get_events().getHandler("dataAvailable");if(a)a(this,Sys.EventArgs.Empty)},get_autoLoad:function(){return this._autoLoad},set_autoLoad:function(a){this._autoLoad=a},get_data:function(){return this._data},set_data:function(a){if(a&&Object.getTypeName(a)==="Object")a=Sys.Preview.Data.DataTable.parseFromJson(a);var b=this.get_isDirtyAndReady(),d=this.get_isReady(),c=this.get_rowCount();if(this._data&&this._dataChangedDelegate)this._data.remove_propertyChanged(this._dataChangedDelegate);if(a instanceof Array)a=new Sys.Preview.Data.DataTable([],a);this._data=a;if(this._data){if(!this._dataChangedDelegate)this._dataChangedDelegate=Function.createDelegate(this,this.onDataPropertyChanged);this._data.add_propertyChanged(this._dataChangedDelegate)}this.raisePropertyChanged("data");if(b!==this.get_isDirtyAndReady())this.raisePropertyChanged("isDirtyAndReady");if(d!==this.get_isReady())this.raisePropertyChanged("isReady");if(c!==this.get_rowCount())this.raisePropertyChanged("rowCount")},get_initialData:function(){return this._initialData},set_initialData:function(a){if(!this._data)if(this.get_isInitialized()){var b=null;if(a&&a.length)b=Sys.Serialization.JavaScriptSerializer.deserialize(a);this.set_data(b)}else this._initialData=a},get_isDirtyAndReady:function(){return this._isReady&&this._data&&this._data.get_isDirty()},get_isReady:function(){return this._isReady},_set_isReady:function(a){if(this._isReady!==a){var b=this.get_isDirtyAndReady();this._isReady=a;this.raisePropertyChanged("isReady");if(this.get_isDirtyAndReady()!==b)this.raisePropertyChanged("isDirtyAndReady")}},get_loadMethod:function(){return this._loadMethod},set_loadMethod:function(a){this._loadMethod=a},get_parameters:function(){return this._parameters},get_serviceURL:function(){return this._serviceURL},set_serviceURL:function(a){this._serviceURL=a},get_serviceType:function(){return this._serviceType},set_serviceType:function(a){this._serviceType=a},get_rowCount:function(){if(this._data)return this._data.get_length();return 0},dispose:function(){if(this._data)this._data.dispose();this._data=null;Sys.Preview.Data.DataSource.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.Data.DataSource.callBaseMethod(this,"initialize");if(this._autoLoad||this._initialData)this.load()},onDataPropertyChanged:function(b,a){switch(a.get_propertyName()){case "isDirty":this.raisePropertyChanged("isDirtyAndReady");break;case "length":this.raisePropertyChanged("rowCount")}},onRequestComplete:function(a){this.onLoadComplete(a.get_object())},onLoadComplete:function(rawData,userContext,methodName){var oldDirtyAndReady=this.get_isDirtyAndReady();this.set_data(eval(rawData));this._isReady=true;this.raisePropertyChanged("isReady");if(this.get_isDirtyAndReady()!==oldDirtyAndReady)this.raisePropertyChanged("isDirtyAndReady");this._onDataAvailable()},ready:function(){this._set_isReady(true)},load:function(){if(this._initialData){this.set_data(Sys.Serialization.JavaScriptSerializer.deserialize(this._initialData));this._initialData=null;return}this._set_isReady(false);if(this._serviceType===Sys.Preview.Data.ServiceType.DataService){var e="GetData",f={parameters:this._parameters,loadMethod:this._loadMethod},b=Function.createDelegate(this,this.onLoadComplete),d=Function.createDelegate(this,this.ready);this._request=Sys.Net.WebServiceProxy.invoke(this._serviceURL,e,false,f,b,d,this,this._timeout)}else{var b=Function.createDelegate(this,this.onRequestComplete),c=Function.createDelegate(this,this.ready),g=Sys.Net.WebRequest._createUrl(this._serviceURL,this._parameters),a=new Sys.Net.WebRequest;a.set_url(g);a.add_completed(function(a,e){if(a.get_responseAvailable()){var d=a.get_statusCode();if(d>=200||d<300)b(a,e);else c()}});a.invoke()}},save:function(){if(this._data&&this._data.get_isDirty()){var b=this._data.getChanges();this._set_isReady(false);if(this._serviceType===Sys.Preview.Data.ServiceType.DataService){var d="SaveData",e={changeList:b,parameters:this._parameters,loadMethod:this._loadMethod},a=Function.createDelegate(this,this.onLoadComplete),c=Function.createDelegate(this,this.ready);this._request=Sys.Net.WebServiceProxy.invoke(this._serviceURL,d,false,e,a,c,this,this._timeout)};}}};Sys.Preview.Data.DataSource.descriptor={properties:[{name:"data",type:Object},{name:"autoLoad",type:Boolean},{name:"initialData",type:String},{name:"isDirtyAndReady",type:Boolean,readOnly:true},{name:"isReady",type:Boolean,readOnly:true},{name:"loadMethod",type:String},{name:"rowCount",type:Number,readOnly:true},{name:"serviceURL",type:String},{name:"parameters",type:Object,readOnly:true},{name:"serviceType",type:Sys.Preview.Data.ServiceType}],methods:[{name:"load"},{name:"save"}],events:[{name:"dataAvailable",readOnly:true}]};Sys.Preview.Data.DataSource.registerClass("Sys.Preview.Data.DataSource",Sys.Component);Sys.Preview.Data.XMLDataSource=function(){Sys.Preview.Data.XMLDataSource.initializeBase(this)};Sys.Preview.Data.XMLDataSource.prototype={_document:null,_initialDocument:null,_data:null,_xpath:"",_serviceURL:null,_parameters:null,_isReady:false,_autoLoad:false,add_documentAvailable:function(a){this.get_events().addHandler("documentAvailable",a)},remove_documentAvailable:function(a){this.get_events().removeHandler("documentAvailable",a)},_onDocumentAvailable:function(){var a=this.get_events().getHandler("documentAvailable");if(a)a(this,Sys.EventArgs.Empty)},get_autoLoad:function(){return this._autoLoad},set_autoLoad:function(a){this._autoLoad=a},get_document:function(){return this._document},get_data:function(){return this._data},get_initialDocument:function(){return this._initialDocument},set_initialDocument:function(b){if(!this._document){var a;if(Sys.Net.XMLDOM)a=new Sys.Net.XMLDOM(b.trim());else a=new XMLDOM(b.trim());if(this.get_isInitialized())this._setDocument(a);else this._initialDocument=a}},get_isReady:function(){return this._isReady},get_parameters:function(){if(this._parameters===null)this._parameters={};return this._parameters},get_serviceURL:function(){return this._serviceURL},set_serviceURL:function(a){this._serviceURL=a},get_xpath:function(){return this._xpath},set_xpath:function(a){if(this._xpath!==a){this._xpath=a;if(this._document)this._updateData()}},dispose:function(){this._document=null;this._initialDocument=null;this._data=null;Sys.Preview.Data.XMLDataSource.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.Data.XMLDataSource.callBaseMethod(this,"initialize");if(this._autoLoad)this.load()},load:function(){if(this._initialDocument){var a=this._initialDocument;this._initialDocument=null;this._setDocument(a);this._updateReady(true)}else this._invokeService()},_invokeService:function(){var c=Function.createDelegate(this,this._serviceCompleted),b=Function.createDelegate(this,this._serviceTimeout),d=Sys.Net.WebRequest._createUrl(this._serviceURL,this.get_parameters()),a=new Sys.Net.WebRequest;a.set_url(d);a.add_completed(function(a,e){if(a.get_responseAvailable()){var d=a.get_statusCode();if(d>=200||d<300)c(a,e);else b()}});a.invoke();this._updateReady(false)},_serviceCompleted:function(a){if(a.get_statusCode()===200)this._setDocument(a.get_xml());this._updateReady(true)},_serviceTimeout:function(){this._updateReady(true)},_setDocument:function(a){this._document=a;this._updateData();this.raisePropertyChanged("document");this._onDocumentAvailable()},_updateData:function(){var a=this._xpath;if(!a||!a.length)a="*/*";var d=this._document.selectNodes(a),e=[];for(var c=0;c<d.length;c++){var b=d[c];if(!b||b.nodeType!==1)continue;Array.add(e,b)}this._data=e;this.raisePropertyChanged("data")},_updateReady:function(a){this._isReady=a;this.raisePropertyChanged("isReady")}};Sys.Preview.Data.XMLDataSource.descriptor={properties:[{name:"autoLoad",type:Boolean},{name:"data",type:Object,readOnly:true},{name:"document",type:Object,readOnly:true},{name:"initialDocument",type:String},{name:"isReady",type:Boolean,readOnly:true},{name:"parameters",type:Object,readOnly:true},{name:"serviceURL",type:String},{name:"xpath",type:String}],events:[{name:"documentAvailable",readOnly:true}],methods:[{name:"load"}]};Sys.Preview.Data.XMLDataSource.registerClass("Sys.Preview.Data.XMLDataSource",Sys.Component);Type.registerNamespace("Sys.Preview.UI");Sys.Preview.UI.DialogResult=function(){throw Error.invalidOperation()};Sys.Preview.UI.DialogResult.prototype={OK:0,Cancel:1};Sys.Preview.UI.DialogResult.registerEnum("Sys.Preview.UI.DialogResult");Sys.Preview.UI.Color=function(c,b,a){Sys.Preview.UI.Color.initializeBase(this);this._r=c;this._g=b;this._b=a};Sys.Preview.UI.Color.prototype={get_blue:function(){return this._b},get_green:function(){return this._g},get_red:function(){return this._r},toString:function(){var c=this._r.toString(16);if(this._r<16)c="0"+c;var a=this._g.toString(16);if(this._g<16)a="0"+a;var b=this._b.toString(16);if(this._b<16)b="0"+b;return "#"+c+a+b}};Sys.Preview.UI.Color.registerClass("Sys.Preview.UI.Color");Sys.Preview.UI.Color.parse=function(a){if(a&&a.length===7&&a.startsWith("#")){var d=parseInt("0x"+a.substr(1,2)),b=parseInt("0x"+a.substr(3,2)),c=parseInt("0x"+a.substr(5,2));return new Sys.Preview.UI.Color(d,b,c)}return null};Sys.Preview.Attributes.defineAttribute("ValueProperty");Sys.Preview.UI.CommandEventArgs=function(a,b){Sys.Preview.UI.CommandEventArgs.initializeBase(this);this._commandName=a;this._argument=b};Sys.Preview.UI.CommandEventArgs.prototype={get_argument:function(){return this._argument},get_commandName:function(){return this._commandName}};Sys.Preview.UI.CommandEventArgs.descriptor={properties:[{name:"argument",type:String,readOnly:true},{name:"commandName",type:String,readOnly:true}]};Sys.Preview.UI.CommandEventArgs.registerClass("Sys.Preview.UI.CommandEventArgs",Sys.EventArgs);Sys.Preview.UI.IValidationTarget=function(){};Sys.Preview.UI.IValidationTarget.prototype={validated:null,get_isInvalid:function(){throw Error.notImplemented()},get_validationMessage:function(){throw Error.notImplemented()},validate:function(){throw Error.notImplemented()}};Sys.Preview.UI.IValidationTarget.registerInterface("Sys.Preview.UI.IValidationTarget");Sys.Preview.UI.Validator=function(){Sys.Preview.UI.Validator.initializeBase(this)};Sys.Preview.UI.Validator.prototype={_errorMessage:null,_isInvalid:false,get_dataContext:function(){var a=Sys.Component.callBaseMethod(this,"get_dataContext");if(!a)if(this.control)a=this.control.get_dataContext();return a},get_errorMessage:function(){return this._errorMessage},set_errorMessage:function(a){this._errorMessage=a},get_isInvalid:function(){return this._isInvalid},dispose:function(){this.control=null;Sys.Preview.UI.Validator.callBaseMethod(this,"dispose")},performValidation:function(a){this._isInvalid=!this.validate(a)},setOwner:function(a){this.control=a},validate:function(){throw Error.notImplemented()}};Sys.Preview.UI.Validator.descriptor={properties:[{name:"errorMessage",type:String},{name:"isInvalid",type:Boolean}]};Sys.Preview.UI.Validator.registerClass("Sys.Preview.UI.Validator",Sys.Component);Sys.Preview.UI.ValidationGroup=function(){Sys.Preview.UI.ValidationGroup.initializeBase(this);this._associatedControls=[]};Sys.Preview.UI.ValidationGroup.prototype={_valid:true,_validated:false,_validatedHandler:null,get_associatedControls:function(){return this._associatedControls},get_isValid:function(){if(!this._validated){this.validate();this._validated=true}return this._valid},dispose:function(){if(this._associatedControls){for(var a=0;a<this._associatedControls.length;a++){this._associatedControls[a].get_component().remove_validated(this._validatedHandler);this._associatedControls[a].dispose()}this._validatedHandler=null;this._associatedControls=null}Sys.Preview.UI.ValidationGroup.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.ValidationGroup.callBaseMethod(this,"initialize");this._validatedHandler=Function.createDelegate(this,this._onControlValidated);for(var a=0;a<this._associatedControls.length;a++)this._associatedControls[a].get_component().add_validated(this._validatedHandler)},validate:function(){var b=true;if(this._associatedControls&&this._associatedControls.length)for(var a=0;a<this._associatedControls.length;a++)if(this._associatedControls[a].get_component().get_isInvalid()){b=false;break}this._valid=b},_onControlValidated:function(){var a=this._valid;this.validate();if(this._valid!==a)this.raisePropertyChanged("isValid")}};Sys.Preview.UI.ValidationGroup.descriptor={properties:[{name:"isValid",type:Boolean,readOnly:true},{name:"associatedControls",type:Array,readOnly:true}]};Sys.Preview.UI.ValidationGroup.registerClass("Sys.Preview.UI.ValidationGroup",Sys.Component);Sys.Preview.UI.InputControl=function(a){Sys.Preview.UI.InputControl.initializeBase(this,[a])};Sys.Preview.UI.InputControl.prototype={_valuePropertyName:null,_validators:null,_invalid:false,_validated:false,_validationMessage:null,add_validated:function(a){this.get_events().addHandler("validated",a)},remove_validated:function(a){if(this._disposed)return;this.get_events().removeHandler("validated",a)},_onValidated:function(){var a=this.get_events().getHandler("validated");if(a)a(this,Sys.EventArgs.Empty)},get_isInvalid:function(){if(!this._validated){this.validate(false);this._validated=true}return this._invalid},get_validationMessage:function(){return this.get_isInvalid()?this._validationMessage:""},get_validators:function(){if(!this._validators)this._validators=Sys.Component.createCollection(this);return this._validators},dispose:function(){if(this._validators){this._validators.dispose();this._validators=null}this._disposed=true;Sys.Preview.UI.InputControl.callBaseMethod(this,"dispose")},raisePropertyChanged:function(a){if(this._validators&&this._validators.length){if(!this._valuePropertyName)this._valuePropertyName=Sys.Preview.TypeDescriptor.getAttribute(this,Sys.Preview.Attributes.ValueProperty);if(this._valuePropertyName===a)if(!this.validate(true))return}Sys.Preview.UI.InputControl.callBaseMethod(this,"raisePropertyChanged",[a])},validate:function(d){if(!this._validators||!this._validators.length)return true;if(!this._valuePropertyName)this._valuePropertyName=Sys.Preview.TypeDescriptor.getAttribute(this,Sys.Preview.Attributes.ValueProperty);var e=Sys.Preview.TypeDescriptor.getProperty(this,this._valuePropertyName),a=null;for(var c=0;c<this._validators.length;c++){var b=this._validators[c];b.performValidation(e);if(b.get_isInvalid()){a=b;this._validationMessage=a.get_errorMessage();this._invalid=true;break}}if(!a)this._invalid=false;if(d)this._onValidated();return !this._invalid}};Sys.Preview.UI.InputControl.descriptor={properties:[{name:"isInvalid",type:Boolean,readOnly:true},{name:"validationMessage",type:String,readOnly:true},{name:"validators",type:Array,readOnly:true}]};Sys.Preview.UI.InputControl.registerClass("Sys.Preview.UI.InputControl",Sys.UI.Control,Sys.Preview.UI.IValidationTarget);Sys.Preview.UI.MessageBoxStyle=function(){throw Error.invalidOperation()};Sys.Preview.UI.MessageBoxStyle.prototype={OK:0,OKCancel:1};Sys.Preview.UI.MessageBoxStyle.registerEnum("Sys.Preview.UI.MessageBoxStyle");Sys.Preview.UI.Window=function(){throw Error.invalidOperation()};Sys.Preview.UI.Window.messageBox=function(c,a){if(!a)a=Sys.Preview.UI.MessageBoxStyle.OK;var b=Sys.Preview.UI.DialogResult.OK;switch(a){case Sys.Preview.UI.MessageBoxStyle.OK:window.alert(c);break;case Sys.Preview.UI.MessageBoxStyle.OKCancel:if(window.confirm(c)===false)b=Sys.Preview.UI.DialogResult.Cancel}return b};Sys.Preview.UI.Window.inputBox=function(b,a){if(!a)a="";return window.prompt(b,a)};Sys.Preview.UI.ITemplate=function(){throw Error.notImplemented()};Sys.Preview.UI.ITemplate.prototype={createInstance:function(){throw Error.notImplemented()},initialize:function(){throw Error.notImplemented()}};Sys.Preview.UI.ITemplate.registerInterface("Sys.Preview.UI.ITemplate");Sys.Preview.UI.ITemplate.disposeInstance=function(a){if(a.markupContext){a.markupContext.dispose();a.markupContext=null}};Sys.Preview.UI.TemplateInstance=function(){this.instanceElement=null;this.callbackResult=null};Sys.Preview.UI.Template=function(b,c,a){Sys.Preview.UI.Template.initializeBase(this);this._layoutElement=b;this._scriptNode=c;this._parentMarkupContext=a};Sys.Preview.UI.Template.prototype={createInstance:function(e,g,c,f){var a=new Sys.Preview.UI.TemplateInstance;a.instanceElement=this._layoutElement.cloneNode(true);var d=document.createDocumentFragment();d.appendChild(a.instanceElement);var b=Sys.Preview.MarkupContext.createLocalContext(d,this._parentMarkupContext,g);b.open();Sys.Preview.MarkupParser.parseNodes(this._scriptNode.childNodes,b);if(c)a.callbackResult=c(a.instanceElement,b,f);a.instanceElement.markupContext=b;e.appendChild(a.instanceElement);b.close();return a},dispose:function(){this._layoutElement=null;this._scriptNode=null;this._parentMarkupContext=null},initialize:function(){if(this._layoutElement.parentNode)this._layoutElement.parentNode.removeChild(this._layoutElement)}};Sys.Preview.UI.Template.registerClass("Sys.Preview.UI.Template",null,Sys.Preview.UI.ITemplate,Sys.IDisposable);Sys.Preview.UI.Template.parseFromMarkup=function(f,b,a){var c=b.attributes.getNamedItem("layoutElement"),d=c.nodeValue,e=a.findElement(d);return new Sys.Preview.UI.Template(e,b,a)};Sys.Preview.UI.PositioningMode=function(){throw Error.invalidOperation()};Sys.Preview.UI.PositioningMode.prototype={Absolute:0,Center:1,BottomLeft:2,BottomRight:3,TopLeft:4,TopRight:5};Sys.Preview.UI.PositioningMode.registerEnum("Sys.Preview.UI.PositioningMode");Sys.Preview.UI.ClickBehavior=function(a){Sys.Preview.UI.ClickBehavior.initializeBase(this,[a])};Sys.Preview.UI.ClickBehavior.prototype={_clickHandler:null,add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},dispose:function(){if(this._clickHandler)Sys.UI.DomEvent.removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.ClickBehavior.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.ClickBehavior.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);Sys.UI.DomEvent.addHandler(this.get_element(),"click",this._clickHandler)},_onClick:function(){var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty)}};Sys.Preview.UI.ClickBehavior.descriptor={events:[{name:"click"}]};Sys.Preview.UI.ClickBehavior.registerClass("Sys.Preview.UI.ClickBehavior",Sys.UI.Behavior);Sys.Preview.UI.Label=function(a){Sys.Preview.UI.Label.initializeBase(this,[a])};Sys.Preview.UI.Label.prototype={_htmlEncode:false,get_htmlEncode:function(){return this._htmlEncode},set_htmlEncode:function(a){this._htmlEncode=a},get_text:function(){var a=this.get_element();if(this._htmlEncode)return a.innerText;else return a.innerHTML},set_text:function(a){if(!a)a="";var b=this.get_element();if(this._htmlEncode){if(b.innerText!==a){b.innerText=a;this.raisePropertyChanged("text")}}else if(b.innerHTML!==a){b.innerHTML=a;this.raisePropertyChanged("text")}}};Sys.Preview.UI.Label.descriptor={properties:[{name:"htmlEncode",type:Boolean},{name:"text",type:String}]};Sys.Preview.UI.Label.registerClass("Sys.Preview.UI.Label",Sys.UI.Control);Sys.Preview.UI.Image=function(a){Sys.Preview.UI.Image.initializeBase(this,[a])};Sys.Preview.UI.Image.prototype={get_alternateText:function(){return this.get_element().alt},set_alternateText:function(a){this.get_element().alt=a},get_height:function(){return this.get_element().height},set_height:function(a){this.get_element().height=a},get_imageURL:function(){return this.get_element().src},set_imageURL:function(a){this.get_element().src=a},get_width:function(){return this.get_element().width},set_width:function(a){this.get_element().width=a}};Sys.Preview.UI.Image.descriptor={properties:[{name:"alternateText",type:String},{name:"height"},{name:"imageURL",type:String},{name:"width"}]};Sys.Preview.UI.Image.registerClass("Sys.Preview.UI.Image",Sys.UI.Control);if(Sys.Browser.agent===Sys.Browser.Safari){Sys.Preview.UI.Image_=function(a){Sys.Preview.UI.Image_.initializeBase(this,[a])};Sys.Preview.UI.Image_.registerClass("Sys.Preview.UI.Image_",Sys.Preview.UI.Image)}Sys.Preview.UI.HyperLink=function(a){Sys.Preview.UI.HyperLink.initializeBase(this,[a])};Sys.Preview.UI.HyperLink.prototype={_clickHandler:null,get_navigateURL:function(){return this.get_element().href},set_navigateURL:function(a){this.get_element().href=a?a:""},initialize:function(){Sys.Preview.UI.HyperLink.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);Sys.UI.DomEvent.addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){if(this._clickHandler)Sys.UI.DomEvent.removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.HyperLink.callBaseMethod(this,"dispose")},add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},_onClick:function(){var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty)}};Sys.Preview.UI.HyperLink.descriptor={properties:[{name:"navigateURL",type:String}],events:[{name:"click"}]};Sys.Preview.UI.HyperLink.registerClass("Sys.Preview.UI.HyperLink",Sys.Preview.UI.Label);Sys.Preview.UI.Button=function(a){Sys.Preview.UI.Button.initializeBase(this,[a])};Sys.Preview.UI.Button.prototype={_command:null,_arg:null,_clickHandler:null,get_argument:function(){return this._arg},set_argument:function(a){if(this._arg!==a){this._arg=a;this.raisePropertyChanged("argument")}},get_command:function(){return this._command},set_command:function(a){if(this._command!==a){this._command=a;this.raisePropertyChanged("command")}},initialize:function(){Sys.Preview.UI.Button.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);Sys.UI.DomEvent.addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){if(this._clickHandler)Sys.UI.DomEvent.removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.Button.callBaseMethod(this,"dispose")},add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},_onClick:function(){var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty);if(this._command)this.raiseBubbleEvent(this,new Sys.Preview.UI.CommandEventArgs(this._command,this._arg))}};Sys.Preview.UI.Button.descriptor={properties:[{name:"command",type:String},{name:"argument",type:String}],events:[{name:"click"}]};Sys.Preview.UI.Button.registerClass("Sys.Preview.UI.Button",Sys.UI.Control);Sys.Preview.UI.CheckBox=function(a){Sys.Preview.UI.CheckBox.initializeBase(this,[a])};Sys.Preview.UI.CheckBox.prototype={_clickHandler:null,get_checked:function(){return !!this.get_element().checked},set_checked:function(a){a=!!a;if(a!==this.get_checked()){this.get_element().checked=a;this.raisePropertyChanged("checked")}},initialize:function(){Sys.Preview.UI.CheckBox.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this._onClick);Sys.UI.DomEvent.addHandler(this.get_element(),"click",this._clickHandler)},dispose:function(){if(this._clickHandler)Sys.UI.DomEvent.removeHandler(this.get_element(),"click",this._clickHandler);Sys.Preview.UI.CheckBox.callBaseMethod(this,"dispose")},add_click:function(a){this.get_events().addHandler("click",a)},remove_click:function(a){this.get_events().removeHandler("click",a)},_onClick:function(){this.raisePropertyChanged("checked");var a=this.get_events().getHandler("click");if(a)a(this,Sys.EventArgs.Empty)}};Sys.Preview.UI.CheckBox.descriptor={properties:[{name:"checked"}],events:[{name:"click"}]};Sys.Preview.UI.CheckBox.registerClass("Sys.Preview.UI.CheckBox",Sys.UI.Control);Sys.Preview.UI.TextBox=function(a){Sys.Preview.UI.TextBox.initializeBase(this,[a])};Sys.Preview.UI.TextBox.prototype={_text:null,_changeHandler:null,_keyPressHandler:null,get_text:function(){return this.get_element().value},set_text:function(a){var b=this.get_element();if(!a)a="";if(b.value!==a){b.value=a;this.raisePropertyChanged("text")}},dispose:function(){if(this._changeHandler){Sys.UI.DomEvent.removeHandler(this.get_element(),"change",this._changeHandler);this._changeHandler=null}if(this._keyPressHandler){Sys.UI.DomEvent.removeHandler(this.get_element(),"keypress",this._keyPressHandler);this._keyPressHandler=null}Sys.Preview.UI.TextBox.callBaseMethod(this,"dispose")},_onChange:function(){var a=this.get_element().value;if(a!==this._text){this._text=a;this.raisePropertyChanged("text")}},_onKeyPress:function(a){var c=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(c===Sys.UI.Key.enter){var b=this.get_element().value;if(b!==this._text){this._text=b;this.raisePropertyChanged("text")}}},initialize:function(){Sys.Preview.UI.TextBox.callBaseMethod(this,"initialize");var a=this.get_element();this._text=a.value;this._changeHandler=Function.createDelegate(this,this._onChange);Sys.UI.DomEvent.addHandler(a,"change",this._changeHandler);this._keyPressHandler=Function.createDelegate(this,this._onKeyPress);Sys.UI.DomEvent.addHandler(a,"keypress",this._keyPressHandler)}};Sys.Preview.UI.TextBox.descriptor={properties:[{name:"text",type:String}],attributes:[{name:Sys.Preview.Attributes.ValueProperty,value:"text"}]};Sys.Preview.UI.TextBox.registerClass("Sys.Preview.UI.TextBox",Sys.Preview.UI.InputControl);Sys.Preview.UI.Selector=function(a){Sys.Preview.UI.Selector.initializeBase(this,[a]);this._dataChangedDelegate=Function.createDelegate(this,this.dataBind)};Sys.Preview.UI.Selector.prototype={_selectionChangedHandler:null,_data:null,_textProperty:null,_valueProperty:null,_firstItemText:null,add_selectionChanged:function(a){this.get_events().addHandler("selectionChanged",a)},remove_selectionChanged:function(a){this.get_events().removeHandler("selectionChanged",a)},_onSelectionChanged:function(){this.raisePropertyChanged("selectedValue");var a=this.get_events().getHandler("selectionChanged");if(a)a(this,Sys.EventArgs.Empty)},get_data:function(){return this._data},set_data:function(a){if(this._data&&Sys.Preview.INotifyCollectionChanged.isImplementedBy(this._data))this._data.remove_collectionChanged(this._dataChangedDelegate);this._data=a;if(this._data){if(!Sys.Preview.Data.DataTable.isInstanceOfType(this._data))if(this._data instanceof Array)this._data=new Sys.Preview.Data.DataTable([],this._data);else if(typeof this._data==="object")this._data=Sys.Preview.Data.DataTable.parseFromJson(this._data);this._data.add_collectionChanged(this._dataChangedDelegate)}this.dataBind();this.raisePropertyChanged("data")},get_firstItemText:function(){return this._firstItemText},set_firstItemText:function(a){if(this._firstItemText!=a){this._firstItemText=a;this.raisePropertyChanged("firstItemText");this.dataBind()}},get_selectedValue:function(){return this.get_element().value},set_selectedValue:function(a){this.get_element().value=a},get_textProperty:function(){return this._textProperty},set_textProperty:function(a){this._textProperty=a;this.raisePropertyChanged("textProperty")},get_valueProperty:function(){return this._valueProperty},set_valueProperty:function(a){this._valueProperty=a;this.raisePropertyChanged("valueProperty")},dataBind:function(){var b=this.get_element().options,d=[],a;for(a=b.length-1;a>=0;a--){if(b[a].selected)Array.add(d,b[a].value);b[a]=null}var c;if(this._firstItemText&&this._firstItemText.length!=0){c=new Option(this._firstItemText,"");b[this.get_element().length]=c}if(this._data){var f=this._data.get_length();for(a=0;a<f;a++){var e=this._data.getItem(a);c=new Option(Sys.Preview.TypeDescriptor.getProperty(e,this._textProperty),Sys.Preview.TypeDescriptor.getProperty(e,this._valueProperty));c.selected=Array.contains(d,c.value);b[this.get_element().length]=c}}},dispose:function(){if(this._selectionChangedHandler){Sys.UI.DomEvent.removeHandler(this.get_element(),"change",this._selectionChangedHandler);this._selectionChangedHandler=null}Sys.Preview.UI.Selector.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.Selector.callBaseMethod(this,"initialize");this._selectionChangedHandler=Function.createDelegate(this,this._onSelectionChanged);Sys.UI.DomEvent.addHandler(this.get_element(),"change",this._selectionChangedHandler)}};Sys.Preview.UI.Selector.descriptor={properties:[{name:"data",type:Sys.Preview.Data.DataTable},{name:"firstItemText",type:String},{name:"selectedValue",type:String},{name:"textProperty",type:String},{name:"valueProperty",type:String}],events:[{name:"selectionChanged",readOnly:true}]};Sys.Preview.UI.Selector.registerClass("Sys.Preview.UI.Selector",Sys.UI.Control);Sys.Preview.UI.RequiredFieldValidator=function(){Sys.Preview.UI.RequiredFieldValidator.initializeBase(this)};Sys.Preview.UI.RequiredFieldValidator.prototype={validate:function(a){if(!a)return false;if(String.isInstanceOfType(a))if(a.length===0)return false;return true}};Sys.Preview.UI.RequiredFieldValidator.registerClass("Sys.Preview.UI.RequiredFieldValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.TypeValidator=function(){Sys.Preview.UI.TypeValidator.initializeBase(this)};Sys.Preview.UI.TypeValidator.prototype={_type:null,get_type:function(){return this._type},set_type:function(a){this._type=a},validate:function(b){if(typeof this._type!=="function")return false;if(this._type===String)return true;var d=this._type.parseLocale||this._type.parseInvariant||this.type.parse;if(typeof d!=="function")return false;var a=true;if(b&&b.length)try{var c=d(b);if(isNaN(c)||c===null)a=false}catch(e){a=false}return a}};Sys.Preview.UI.TypeValidator.descriptor={properties:[{name:"type",type:Type}]};Sys.Preview.UI.TypeValidator.registerClass("Sys.Preview.UI.TypeValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.RangeValidator=function(){Sys.Preview.UI.RangeValidator.initializeBase(this)};Sys.Preview.UI.RangeValidator.prototype={_lowerBound:null,_upperBound:null,get_lowerBound:function(){return this._lowerBound},set_lowerBound:function(a){this._lowerBound=a},get_upperBound:function(){return this._upperBound},set_upperBound:function(a){this._upperBound=a},validate:function(a){if(a&&a.length)return a<=this._upperBound&&a>=this._lowerBound;return true}};Sys.Preview.UI.RangeValidator.descriptor={properties:[{name:"lowerBound",type:Number},{name:"upperBound",type:Number}]};Sys.Preview.UI.RangeValidator.registerClass("Sys.Preview.UI.RangeValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.RegexValidator=function(){Sys.Preview.UI.RegexValidator.initializeBase(this)};Sys.Preview.UI.RegexValidator.prototype={_regex:null,get_regex:function(){return this._regex},set_regex:function(a){if(typeof a==="string")this._regex=new RegExp(a.replace(/^\/|\/$/g,""));else this._regex=a},validate:function(a){if(this._regex&&a&&a.length){var b=this._regex.exec(a);return b&&b[0]===a}return true}};Sys.Preview.UI.RegexValidator.descriptor={properties:[{name:"regex",type:String}]};Sys.Preview.UI.RegexValidator.registerClass("Sys.Preview.UI.RegexValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.CustomValidationEventArgs=function(a){Sys.Preview.UI.CustomValidationEventArgs.initializeBase(this);this._value=a};Sys.Preview.UI.CustomValidationEventArgs.prototype={_isValid:true,get_value:function(){return this._value},get_isValid:function(){return this._isValid},set_isValid:function(a){this._isValid=a}};Sys.Preview.UI.CustomValidationEventArgs.descriptor={properties:[{name:"isValid",type:Boolean},{name:"value",readOnly:true}]};Sys.Preview.UI.CustomValidationEventArgs.registerClass("Sys.Preview.UI.CustomValidationEventArgs",Sys.EventArgs);Sys.Preview.UI.CustomValidator=function(){Sys.Preview.UI.CustomValidator.initializeBase(this)};Sys.Preview.UI.CustomValidator.prototype={add_validateValue:function(a){this.get_events().addHandler("validateValue",a)},remove_validateValue:function(a){this.get_events().removeHandler("validateValue",a)},validate:function(a){if(a&&a.length){var c=new Sys.Preview.UI.CustomValidationEventArgs(a),b=this.get_events().getHandler("validateValue");if(b)b(this,c);return c.get_isValid()}return true}};Sys.Preview.UI.CustomValidator.descriptor={events:[{name:"validateValue"}]};Sys.Preview.UI.CustomValidator.registerClass("Sys.Preview.UI.CustomValidator",Sys.Preview.UI.Validator);Sys.Preview.UI.ValidationErrorLabel=function(a){Sys.Preview.UI.ValidationErrorLabel.initializeBase(this,[a])};Sys.Preview.UI.ValidationErrorLabel.prototype={_associatedControl:null,_validatedHandler:null,get_associatedControl:function(){return this._associatedControl},set_associatedControl:function(a){if(this._associatedControl&&this._validatedHandler)this._associatedControl.remove_validated(this._validatedHandler);if(Sys.Preview.UI.IValidationTarget.isImplementedBy(a))this._associatedControl=a;if(this._associatedControl){if(!this._validatedHandler)this._validatedHandler=Function.createDelegate(this,this._onControlValidated);this._associatedControl.add_validated(this._validatedHandler)}},dispose:function(){if(this._associatedControl){if(this._validatedHandler){this._associatedControl.remove_validated(this._validatedHandler);this._validatedHandler=null}this._associatedControl=null}Sys.Preview.UI.ValidationErrorLabel.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.ValidationErrorLabel.callBaseMethod(this,"initialize");this.set_visible(false)},_onControlValidated:function(){var a=this._associatedControl.get_isInvalid(),b="";if(a)b=this._associatedControl.get_validationMessage();this.set_visible(a);this.get_element().title=b}};Sys.Preview.UI.ValidationErrorLabel.descriptor={properties:[{name:"associatedControl",type:Object}]};Sys.Preview.UI.ValidationErrorLabel.registerClass("Sys.Preview.UI.ValidationErrorLabel",Sys.Preview.UI.Label);Type.registerNamespace("Sys.Preview.Services.Components");Sys.Preview.Services.Components.Profile=function(){Sys.Preview.Services.Components.Profile.initializeBase(this)};Sys.Preview.Services.Components.Profile.prototype={_isDirty:false,_autoSave:false,get_autoSave:function(){return this._autoSave},set_autoSave:function(a){this._autoSave=a},get_isDirty:function(){return this._isDirty},get_path:function(){return Sys.Services.ProfileService.get_path()},set_path:function(a){Sys.Services.ProfileService.set_path(a)},add_loadComplete:function(a){this.get_events().addHandler("loadComplete",a)},remove_loadComplete:function(a){this.get_events().removeHandler("loadComplete",a)},add_saveComplete:function(a){this.get_events().addHandler("saveComplete",a)},remove_saveComplete:function(a){this.get_events().removeHandler("saveComplete",a)},getProperty:function(c,d){var b=Sys.Services.ProfileService.properties;if(d){var a=b[c];return a?a[d]||null:null}return b[c]||null},initialize:function(){Sys.Preview.Services.Components.Profile.callBaseMethod(this,"initialize");var a=true;for(var b in Sys.Services.ProfileService.properties){a=false;break}if(a)this.load()},invokeMethod:function(a,b){if(a==="save")this.save.apply(this,b);else if(a==="load")this.load.apply(this,b)},load:function(a){if(!this.loadCallback)this.loadCallback=Function.createDelegate(this,this._loadComplete);Sys.Services.ProfileService.load(a,this.loadCallback)},save:function(a){if(!this.saveCallback)this.saveCallback=Function.createDelegate(this,this._saveComplete);Sys.Services.ProfileService.save(a,this.saveCallback)},setProperty:function(g,f,e){var d=Sys.Services.ProfileService.properties,c=null,a=g;if(e){var b=d[a];if(!b){b=new Sys.Services.ProfileGroup;d[a]=b}a=a+"."+e;b[e]=f;c=this._isDirty;this._isDirty=true;this.raisePropertyChanged(a)}else{d[a]=f;c=this._isDirty;this._isDirty=true;this.raisePropertyChanged(a)}if(c===false)this.raisePropertyChanged("isDirty");if(this._autoSave&&this._isDirty)this.save([a])},_loadComplete:function(){this._isDirty=false;var a=this.get_events().getHandler("loadComplete");if(a)a(this,Sys.EventArgs.Empty)},_saveComplete:function(){this._isDirty=false;this.raisePropertyChanged("isDirty");var a=this.get_events().getHandler("saveComplete");if(a)a(this,Sys.EventArgs.Empty)},_saveIfDirty:function(){if(this._isDirty)this.save()}};Sys.Preview.Services.Components.Profile.descriptor={properties:[{name:"autoSave",type:Boolean},{name:"path",type:String},{name:"isDirty",type:Boolean,readOnly:true}],methods:[{name:"load"},{name:"save"}],events:[{name:"loadComplete"},{name:"saveComplete"}]};Sys.Preview.Services.Components.Profile.registerClass("Sys.Preview.Services.Components.Profile",Sys.Component,Sys.Preview.ICustomTypeDescriptor);Sys.Preview.Services.Components.Profile.parseFromMarkup=function(e,a,c){if(!c.get_isGlobal())return null;var b=null,d=a.attributes.getNamedItem("id");if(d){b=d.nodeValue;a.attributes.removeNamedItem("id")}Sys.Preview.MarkupParser.initializeObject(Sys.Preview.Services.Components.Profile.instance,a,c);if(b&&b.length){c._addComponentByID(b,Sys.Preview.Services.Components.Profile.instance,true);a.attributes.setNamedItem(d)}return Sys.Preview.Services.Components.Profile.instance};Sys.Preview.Services.Components.Profile.instance=new Sys.Preview.Services.Components.Profile;Type.registerNamespace("Sys.Preview.UI.Data");Sys.Preview.UI.Data.DataControl=function(a){Sys.Preview.UI.Data.DataControl.initializeBase(this,[a]);this._dataIndex=0};Sys.Preview.UI.Data.DataControl.prototype={_data:null,_suspendChangeNotifications:false,_dataChangedDelegate:null,prepareChange:function(){return {dataIndex:this.get_dataIndex(),canMoveNext:this.get_canMoveNext(),canMovePrevious:this.get_canMovePrevious()}},triggerChangeEvents:function(a){var d=this.get_dataIndex();if(a.dataIndex!==d){this.raisePropertyChanged("dataIndex");this.raisePropertyChanged("dataItem");a.dataIndex=d}var c=this.get_canMoveNext();if(a.canMoveNext!==c){this.raisePropertyChanged("canMoveNext");a.canMoveNext=c}var b=this.get_canMovePrevious();if(a.canMovePrevious!==b){this.raisePropertyChanged("canMovePrevious");a.canMovePrevious=b}},get_canMoveNext:function(){if(!this._data)return false;return this._dataIndex<this.get_length()-1},get_canMovePrevious:function(){if(!this._data)return false;return this._dataIndex>0},get_data:function(){return this._data},set_data:function(b){var a=this.prepareChange();if(this._data&&Sys.Preview.INotifyCollectionChanged.isImplementedBy(this._data)){this._data.remove_collectionChanged(this._dataChangedDelegate);this._dataChangedDelegate=null}this._data=b;if(this._data&&Sys.Preview.INotifyCollectionChanged.isImplementedBy(this._data)){this._dataChangedDelegate=Function.createDelegate(this,this.onDataChanged);this._data.add_collectionChanged(this._dataChangedDelegate)}if(this._dataIndex>=this.get_length())this.set_dataIndex(0);if(!this.get_isUpdating())this.render();this.raisePropertyChanged("data");this.triggerChangeEvents(a)},get_dataContext:function(){return this.get_dataItem()},get_dataIndex:function(){return this._dataIndex},set_dataIndex:function(a){if(this._dataIndex!==a){var b=this.prepareChange();this._dataIndex=a;if(!this._suspendChangeNotifications)this.triggerChangeEvents(b)}},get_dataItem:function(){if(this._data&&this._dataIndex>=0){if(Sys.Preview.Data.IData.isImplementedBy(this._data))return this._data.getItem(this._dataIndex);if(this._data instanceof Array)return this._data[this._dataIndex]}return null},get_length:function(){if(!this._data)return 0;if(Sys.Preview.Data.IData.isImplementedBy(this._data))return this._data.get_length();if(this._data instanceof Array)return this._data.length;return 0},addItem:function(){if(this._data){var a=this.prepareChange();if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.add({});else if(this._data instanceof Array)if(typeof this._data.add==="function")this._data.add({});else Array.add(this._data,{});this.set_dataIndex(this.get_length()-1);this.triggerChangeEvents(a)}},deleteCurrentItem:function(){if(this._data){var b=this.prepareChange();this._suspendChangeNotifications=true;var a=this.get_dataItem();if(this.get_dataIndex()===this.get_length()-1)this.set_dataIndex(Math.max(0,this.get_length()-2));if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.remove(a);else if(this._data instanceof Array)if(typeof this._data.remove==="function")this._data.remove(a);else Array.remove(this._data,a);this._suspendChangeNotifications=false;this.triggerChangeEvents(b)}},getItem:function(a){if(this._data){if(Sys.Preview.Data.IData.isImplementedBy(this._data))return this._data.getItem(a);if(this._data instanceof Array)return this._data[a]}return null},moveNext:function(){if(this._data){var b=this.prepareChange(),a=this.get_dataIndex()+1;if(a<this.get_length())this.set_dataIndex(a);this.triggerChangeEvents(b)}},movePrevious:function(){if(this._data){var b=this.prepareChange(),a=this.get_dataIndex()-1;if(a>=0)this.set_dataIndex(a);this.triggerChangeEvents(b)}},onBubbleEvent:function(d,c){if(c.get_commandName()==="select"){var a=c.get_argument();if(!a&&a!==0){var b=d.get_dataContext();if(b)a=b.get_index()}if(a&&String.isInstanceOfType(a))a=Number.parseInvariant(a);if(a||a===0){this.set_dataIndex(a);return true}}return false},onDataChanged:function(){this.render()}};Sys.Preview.UI.Data.DataControl.descriptor={properties:[{name:"canMoveNext",type:Boolean,readOnly:true},{name:"canMovePrevious",type:Boolean,readOnly:true},{name:"data",type:Sys.Preview.Data.DataTable},{name:"dataIndex",type:Number},{name:"dataItem",type:Object,readOnly:true},{name:"length",type:Number,readOnly:true}],methods:[{name:"addItem"},{name:"deleteCurrentItem"},{name:"moveNext"},{name:"movePrevious"}]};Sys.Preview.UI.Data.DataControl.registerClass("Sys.Preview.UI.Data.DataControl",Sys.UI.Control);Sys.Preview.UI.Data.DataNavigator=function(a){Sys.Preview.UI.Data.DataNavigator.initializeBase(this,[a])};Sys.Preview.UI.Data.DataNavigator.prototype={_data:null,get_dataView:function(){return this._data},set_dataView:function(a){this._data=a;this.raisePropertyChanged("dataView")},get_dataContext:function(){return this.get_dataView()},onBubbleEvent:function(e,b){if(!this._data)return false;var d=b.get_commandName().toLowerCase();switch(d){case "page":var a=b.get_argument();if(a&&String.isInstanceOfType(a))a=Number.parseInvariant(a);if(a||a===0){this._data.set_pageIndex(a);return true}break;case "nextpage":this._data.set_pageIndex(this._data.get_pageIndex()+1);return true;case "previouspage":var c=this._data.get_pageIndex()-1;if(c>=0)this._data.set_pageIndex(c);return true;case "firstpage":this._data.set_pageIndex(0);return true;case "lastpage":this._data.set_pageIndex(this._data.get_pageCount()-1);return true}return false}};Sys.Preview.UI.Data.DataNavigator.descriptor={properties:[{name:"dataView",type:Object}]};Sys.Preview.UI.Data.DataNavigator.registerClass("Sys.Preview.UI.Data.DataNavigator",Sys.UI.Control);Sys.Preview.UI.Data.ItemView=function(a){Sys.Preview.UI.Data.ItemView.initializeBase(this,[a])};Sys.Preview.UI.Data.ItemView.prototype={_itemTemplate:null,_emptyTemplate:null,_keyDownHandler:null,_layoutTemplateElement:null,set_dataIndex:function(a){if(this.get_dataIndex()!==a){Sys.Preview.UI.Data.ItemView.callBaseMethod(this,"set_dataIndex",[a]);if(!this.get_isUpdating())this.render()}},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){if(this._emptyTemplate)this._emptyTemplate.dispose();this._emptyTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("emptyTemplate")},get_itemTemplate:function(){return this._itemTemplate},set_itemTemplate:function(a){if(this._itemTemplate)this._itemTemplate.dispose();this._itemTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("itemTemplate")},dispose:function(){var a=this.get_element();if(a){if(this._keyDownHandler)Sys.UI.DomEvent.removeHandler(a,"keydown",this._keyDownHandler);if(a.childNodes.length){a.markupContext=null;Sys.Preview.UI.ITemplate.disposeInstance(a.firstChild)}}if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null}if(this._emptyTemplate){this._emptyTemplate.dispose();this._emptyTemplate=null}this._layoutTemplateElement=null;Sys.Preview.UI.Data.ItemView.callBaseMethod(this,"dispose")},initialize:function(){this._keyDownHandler=Function.createDelegate(this,this._onKeyDown);Sys.Preview.UI.Data.ItemView.callBaseMethod(this,"initialize");Sys.UI.DomEvent.addHandler(this.get_element(),"keydown",this._keyDownHandler);if(this._itemTemplate)this._itemTemplate.initialize();if(this._emptyTemplate)this._emptyTemplate.initialize();this.render()},_onKeyDown:function(a){if(a.target===this.get_element()){var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b===Sys.UI.Key.up||b===Sys.UI.Key.left){this.movePrevious();a.preventDefault()}else if(b===Sys.UI.Key.down||b===Sys.UI.Key.right){this.moveNext();a.preventDefault()}}},render:function(){var b=this.get_element();if(b.childNodes.length)if(this._layoutTemplateElement)Sys.Preview.UI.ITemplate.disposeInstance(this._layoutTemplateElement);b.innerHTML="";var a,d=this.get_data();if(d&&d.get_length())a=this._itemTemplate;else a=this._emptyTemplate;if(a){var c=a.createInstance(b,this.get_dataContext()).instanceElement;b.markupContext=c.markupContext;this._layoutTemplateElement=c}},findObject:function(b){var a,c=this.get_element();if(c.markupContext)a=c.markupContext.findComponent(b);if(!a){var d=this.get_parent();if(d)a=d.findObject(b);else a=Sys.Application.findComponent(b)}return a}};Sys.Preview.UI.Data.ItemView.descriptor={properties:[{name:"itemTemplate",type:Sys.Preview.UI.ITemplate},{name:"emptyTemplate",type:Sys.Preview.UI.ITemplate}]};Sys.Preview.UI.Data.ItemView.registerClass("Sys.Preview.UI.Data.ItemView",Sys.Preview.UI.Data.DataControl,Sys.IContainer);Sys.Preview.UI.Data.ListViewRenderTask=function(k,l,i,b,d,h,c,j,a,g,f,e){this._listView=k;this._data=l;this._itemTemplate=i;this._itemTemplateParent=b;this._separatorTemplate=d;this._itemElements=h;this._separatorElements=c;this._itemClass=j;this._alternatingItemClass=a;this._separatorClass=g;this._itemFocusHandler=f;this._itemClickHandler=e;this._currentIndex=0};Sys.Preview.UI.Data.ListViewRenderTask.prototype={dispose:function(){this._listView=null;this._data=null;this._itemTemplate=null;this._itemTemplateParent=null;this._separatorTemplate=null;this._itemElements=null;this._separatorElements=null;this._itemClass=null;this._alternatingItemClass=null;this._separatorClass=null;this._itemFocusHandler=null;this._itemClickHandler=null},execute:function(){var c=Array.isInstanceOfType(this._data),b=c?this._data.length:this._data?this._data.get_length?this._data.get_length():0:0,f=b-1,e=Math.min(b,this._currentIndex+5);for(;this._currentIndex<e;this._currentIndex++){var g=c?this._data[this._currentIndex]:this._data.getItem(this._currentIndex);if(this._itemTemplate){var a=this._itemTemplate.createInstance(this._itemTemplateParent,g).instanceElement;if(this._itemClass)if(this._currentIndex%2===1&&this._alternatingItemClass)a.className=this._alternatingItemClass;else a.className=this._itemClass;this._itemElements[this._currentIndex]=a;a.tabIndex=-1;a.dataIndex=this._currentIndex;Sys.UI.DomEvent.addHandler(a,"focus",this._itemFocusHandler);Sys.UI.DomEvent.addHandler(a,"click",this._itemClickHandler)}if(this._separatorTemplate&&this._currentIndex!==f&&this._itemTemplateParent){var d=this._separatorTemplate.createInstance(this._itemTemplateParent).instanceElement;if(this._separatorClass)d.className=this._separatorClass;this._separatorElements[this._currentIndex]=d}}if(this._currentIndex===b){this._listView._renderTaskComplete(this);return true}else return false}};Sys.Preview.UI.Data.ListViewRenderTask.registerClass("Sys.Preview.UI.Data.ListViewRenderTask",null,Sys.Preview.ITask,Sys.IDisposable);Sys.Preview.UI.Data.ListView=function(a){Sys.Preview.UI.Data.ListView.initializeBase(this,[a]);this._itemElements=[];this._separatorElements=[]};Sys.Preview.UI.Data.ListView.prototype={_itemClass:null,_alternatingItemClass:null,_separatorClass:null,_selectedItemClass:null,_focusHandler:null,_keyDownHandler:null,_itemFocusHandler:null,_itemClickHandler:null,_focusIndex:null,_layoutTemplate:null,_itemTemplate:null,_separatorTemplate:null,_emptyTemplate:null,_itemTemplateParentElementId:null,_layoutTemplateElement:null,_pendingTasks:0,get_alternatingItemCssClass:function(){return this._alternatingItemClass},set_alternatingItemCssClass:function(a){if(a!==this._alternatingItemClass){this._alternatingItemClass=a;this.render();this.raisePropertyChanged("alternatingItemCssClass")}},set_dataIndex:function(b){var c=this.get_dataIndex();if(c!==b){var a=this.getItemElement(c);if(a&&this._selectedItemClass)Sys.UI.DomElement.removeCssClass(a,this._selectedItemClass);Sys.Preview.UI.Data.ListView.callBaseMethod(this,"set_dataIndex",[b]);a=this.getItemElement(b);if(a&&this._selectedItemClass)Sys.UI.DomElement.addCssClass(a,this._selectedItemClass)}},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){if(this._emptyTemplate)this._emptyTemplate.dispose();this._emptyTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("emptyTemplate")},get_itemCssClass:function(){return this._itemClass},set_itemCssClass:function(a){if(a!==this._itemClass){this._itemClass=a;this.render();this.raisePropertyChanged("itemCssClass")}},get_itemTemplate:function(){return this._itemTemplate},set_itemTemplate:function(a){if(this._itemTemplate)this._itemTemplate.dispose();this._itemTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("itemTemplate")},get_itemTemplateParentElementId:function(){return this._itemTemplateParentElementId},set_itemTemplateParentElementId:function(a){this._itemTemplateParentElementId=a;this.raisePropertyChanged("itemTemplateParentElementId")},get_layoutTemplate:function(){return this._layoutTemplate},set_layoutTemplate:function(a){if(this._layoutTemplate)this._layoutTemplate.dispose();this._layoutTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("layoutTemplate")},get_selectedItemCssClass:function(){return this._selectedItemClass},set_selectedItemCssClass:function(a){if(a!==this._selectedItemClass){this._selectedItemClass=a;this.render();this.raisePropertyChanged("selectedItemCssClass")}},get_separatorCssClass:function(){return this._separatorClass},set_separatorCssClass:function(a){if(a!==this._separatorClass){this._separatorClass=a;this.render();this.raisePropertyChanged("separatorCssClass")}},get_separatorTemplate:function(){return this._separatorTemplate},set_separatorTemplate:function(a){if(this._separatorTemplate)this._separatorTemplate.dispose();this._separatorTemplate=a;if(!this.get_isUpdating())this.render();this.raisePropertyChanged("separatorTemplate")},getItemElement:function(a){return this._itemElements[a]},add_renderComplete:function(a){this.get_events().addHandler("renderComplete",a)},remove_renderComplete:function(a){this.get_events().removeHandler("renderComplete",a)},initialize:function(){var a=this.get_element();this._focusHandler=Function.createDelegate(this,this._onGotFocus);this._keyDownHandler=Function.createDelegate(this,this._onKeyDown);this._itemFocusHandler=Function.createDelegate(this,this._onItemFocus);this._itemClickHandler=Function.createDelegate(this,this._onItemClick);Sys.Preview.UI.Data.ListView.callBaseMethod(this,"initialize");Sys.UI.DomEvent.addHandler(a,"keydown",this._keyDownHandler);Sys.UI.DomEvent.addHandler(a,"focus",this._focusHandler);if(this._itemTemplate)this._itemTemplate.initialize();if(this._separatorTemplate)this._separatorTemplate.initialize();if(this._emptyTemplate)this._emptyTemplate.initialize();if(this._layoutTemplate)this._layoutTemplate.initialize();if(!a.tabIndex)a.tabIndex=0;this.render()},dispose:function(){if(this._disposed)return;var b=this.get_element();if(b){if(this._focusHandler)Sys.UI.DomEvent.removeHandler(b,"focus",this._focusHandler);if(this._keyDownHandler)Sys.UI.DomEvent.removeHandler(b,"keydown",this._keyDownHandler)}if(this._itemElements)for(var a=this._itemElements.length-1;a>=0;a--){if(this._itemFocusHandler)Sys.UI.DomEvent.removeHandler(this._itemElements[a],"focus",this._itemFocusHandler);if(this._itemClickHandler)Sys.UI.DomEvent.removeHandler(this._itemElements[a],"click",this._itemClickHandler)}if(this._layoutTemplate){this._layoutTemplate.dispose();this._layoutTemplate=null}if(this._itemTemplate){this._itemTemplate.dispose();this._itemTemplate=null}if(this._separatorTemplate){this._separatorTemplate.dispose();this._separatorTemplate=null}if(this._emptyTemplate){this._emptyTemplate.dispose();this._emptyTemplate=null}this._itemElements=null;this._separatorElements=null;this._layoutTemplateElement=null;this._disposed=true;Sys.Preview.UI.Data.ListView.callBaseMethod(this,"dispose")},_onGotFocus:function(a){if(a.target===this.get_element())this.setFocus(this,this.getItemElement(this.get_dataIndex()))},_onKeyDown:function(a){if(a.target===this.getItemElement(this._focusIndex)){var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b===Sys.UI.Key.up||b===Sys.UI.Key.left){if(this._focusIndex>0){this.setFocus(this,this.getItemElement(this._focusIndex-1));a.preventDefault()}}else if(b===Sys.UI.Key.down||b===Sys.UI.Key.right){if(this._focusIndex<this.get_length()-1){this.setFocus(this,this.getItemElement(this._focusIndex+1));a.preventDefault()}}else if(b===Sys.UI.Key.enter||b===Sys.UI.Key.space)if(this._focusIndex!==-1){this.set_dataIndex(this._focusIndex);a.preventDefaut()}}},_onItemFocus:function(a){if(typeof a.target.dataIndex!=="undefined")this._focusIndex=a.target.dataIndex},_onItemClick:function(d){var a=d.target,b=a.tagName.toUpperCase();while(a&&typeof a.dataIndex==="undefined")a=a.parentNode;if(a){var c=a.dataIndex;sel=this.getItemElement(c);if(sel){this.set_dataIndex(c);if(b!=="INPUT"&&b!=="TEXTAREA"&&b!=="SELECT"&&b!=="BUTTON"&&b!=="A")this.setFocus(this,sel)}}},render:function(){var d=this.get_element(),a,b;for(a=this._itemElements.length-1;a>=0;a--){b=this._itemElements[a];if(b)Sys.Preview.UI.ITemplate.disposeInstance(b)}this._itemElements=[];for(a=this._separatorElements.length-1;a>=0;a--){b=this._separatorElements[a];if(b)Sys.Preview.UI.ITemplate.disposeInstance(b)}this._separatorElements=[];if(d.childNodes.length)if(this._layoutTemplateElement)Sys.Preview.UI.ITemplate.disposeInstance(this._layoutTemplateElement);d.innerHTML="";var m=false,c=this.get_data(),g=c?c.get_length?c.get_length():c.length:0;if(g&&g>0){var h=this.get_layoutTemplate();if(h){var l=this.get_itemTemplate(),k=this.get_separatorTemplate(),e=h.createInstance(d,null,this.findItemTemplateParentCallback,this._itemTemplateParentElementId),j=e.callbackResult;this._layoutTemplateElement=e.instanceElement;m=true;this._pendingTasks++;var n=new Sys.Preview.UI.Data.ListViewRenderTask(this,c,l,j,k,this._itemElements,this._separatorElements,this._itemClass,this._alternatingItemClass,this._separatorClass,this._itemFocusHandler,this._itemClickHandler);Sys.Preview.TaskManager.addTask(n)}}else{var f=this.get_emptyTemplate();if(f)f.createInstance(d);var i=this.get_events().getHandler("renderComplete");if(i)i(this,Sys.EventArgs.Empty)}},_renderTaskComplete:function(){this._pendingTasks--;if(this._pendingTasks<=0){this._pendingTasks=0;var a=this.get_events().getHandler("renderComplete");if(a)a(this,Sys.EventArgs.Empty)}},findItemTemplateParentCallback:function(c,a,b){return a.findElement(b)},setFocus:function(d,c){if(c.focus){for(var e=d.get_length()-1;e>=0;e--){var f=d.getItemElement(e);if(f)f.tabIndex=-1}var a=d.get_element(),b=a.tabIndex;if(b===-1)b=a.__tabIndex;c.tabIndex=b;setTimeout(Function.createCallback(this.focus,c),0);a.__tabIndex=b;a.tabIndex=-1}},focus:function(a){try{a.focus()}catch(b){}}};Sys.Preview.UI.Data.ListView.descriptor={properties:[{name:"alternatingItemCssClass",type:String},{name:"layoutTemplate",type:Sys.Preview.UI.ITemplate},{name:"itemCssClass",type:String},{name:"itemTemplate",type:Sys.Preview.UI.ITemplate},{name:"itemTemplateParentElementId",type:String},{name:"selectedItemCssClass",type:String},{name:"separatorCssClass",type:String},{name:"separatorTemplate",type:Sys.Preview.UI.ITemplate},{name:"emptyTemplate",type:Sys.Preview.UI.ITemplate}],events:[{name:"renderComplete"}]};Sys.Preview.UI.Data.ListView.registerClass("Sys.Preview.UI.Data.ListView",Sys.Preview.UI.Data.DataControl);Sys.Preview.UI.Data.SortBehavior=function(a){Sys.Preview.UI.Data.SortBehavior.initializeBase(this,[a])};Sys.Preview.UI.Data.SortBehavior.prototype={_clickHandler:null,_sortChangedDelegate:null,_sortColumn:"",_sortAscendingCssClass:"sortAscending",_sortDescendingCssClass:"sortDescending",_dataView:null,get_sortAscendingCssClass:function(){return this._sortAscendingCssClass},set_sortAscendingCssClass:function(a){this._sortAscendingCssClass=a},get_sortColumn:function(){return this._sortColumn},set_sortColumn:function(a){if(a!==this._sortColumn){this._sortColumn=a;this.raisePropertyChanged("sortColumn")}},get_sortDescendingCssClass:function(){return this._sortDescendingCssClass},set_sortDescendingCssClass:function(a){this._sortDescendingCssClass=a},get_dataView:function(){return this._dataView},set_dataView:function(a){if(this._dataView&&this._sortChangedDelegate)this._dataView.remove_propertyChanged(this._sortChangedDelegate);this._dataView=a;if(this.get_isInitialized()){this._dataView.add_propertyChanged(this._sortChangedDelegate);this.update()}},dispose:function(){if(this._dataView&&!this._dataView._disposed&&this._sortChangedDelegate){this._dataView.remove_propertyChanged(this._sortChangedDelegate);this._sortChangedDelegate=null}this._dataView=null;if(this._clickHandler){Sys.UI.DomEvent.removeHandler(this.get_element(),"click",this._clickHandler);this._clickHandler=null}Sys.Preview.UI.Data.SortBehavior.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.Data.SortBehavior.callBaseMethod(this,"initialize");this._clickHandler=Function.createDelegate(this,this.clickHandler);Sys.UI.DomEvent.addHandler(this.get_element(),"click",this._clickHandler);this._sortChangedDelegate=Function.createDelegate(this,this.sortChanged);if(this._dataView){this._dataView.add_propertyChanged(this._sortChangedDelegate);this.update()}},clickHandler:function(){var a=this.get_dataView();if(a)if(a.get_sortColumn()===this._sortColumn)a.set_sortDirection(a.get_sortDirection()===Sys.Preview.Data.SortDirection.Ascending?Sys.Preview.Data.SortDirection.Descending:Sys.Preview.Data.SortDirection.Ascending);else a.sort(this._sortColumn,Sys.Preview.Data.SortDirection.Ascending)},update:function(){var a=this.get_element();if(this._dataView&&this._dataView.get_sortColumn()===this._sortColumn)if(this._dataView.get_sortDirection()===Sys.Preview.Data.SortDirection.Ascending){Sys.UI.DomElement.removeCssClass(a,this._sortDescendingCssClass);Sys.UI.DomElement.addCssClass(a,this._sortAscendingCssClass)}else{Sys.UI.DomElement.removeCssClass(a,this._sortAscendingCssClass);Sys.UI.DomElement.addCssClass(a,this._sortDescendingCssClass)}else{Sys.UI.DomElement.removeCssClass(a,this._sortAscendingCssClass);Sys.UI.DomElement.removeCssClass(a,this._sortDescendingCssClass)}},sortChanged:function(c,b){var a=b.get_propertyName();if(a==="sortColumn"||a==="sortDirection")this.update()}};Sys.Preview.UI.Data.SortBehavior.descriptor={properties:[{name:"dataView",type:Object},{name:"sortAscendingCssClass",type:String},{name:"sortColumn",type:String},{name:"sortDescendingCssClass",type:String}]};Sys.Preview.UI.Data.SortBehavior.registerClass("Sys.Preview.UI.Data.SortBehavior",Sys.UI.Behavior);Sys.Preview.UI.Data.XSLTView=function(a){Sys.Preview.UI.Data.XSLTView.initializeBase(this,[a])};Sys.Preview.UI.Data.XSLTView.prototype={_document:null,_transform:null,_parameters:null,get_document:function(){return this._document},set_document:function(a){this._document=a;if(this.get_isInitialized())this._render()},get_parameters:function(){if(!this._parameters)this._parameters={};return this._parameters},get_transform:function(){return this._transform},set_transform:function(a){this._transform=a;if(this.get_isInitialized())this._render()},dispose:function(){this._document=null;this._transform=null;Sys.Preview.UI.Data.XSLTView.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview.UI.Data.XSLTView.callBaseMethod(this,"initialize");this._render()},update:function(){this._render()},_render:function(){var c="";if(this._document&&this._transform){if(this._parameters){if(Sys.Browser.agent===Sys.Browser.InternetExplorer)this._transform.setProperty("SelectionNamespaces",'xmlns:xsl="http://www.w3.org/1999/XSL/Transform"');for(var a in this._parameters){var b=this._transform.selectSingleNode('//xsl:param[@name="'+a+'"]');if(b){b.text=this._parameters[a].toString();b.removeAttribute("select")}}}c=this._document.transformNode(this._transform)}this.get_element().innerHTML=c}};Sys.Preview.UI.Data.XSLTView.descriptor={properties:[{name:"document",type:Object},{name:"parameters",type:Object,readOnly:true},{name:"transform",type:Object}],methods:[{name:"update"}]};Sys.Preview.UI.Data.XSLTView.registerClass("Sys.Preview.UI.Data.XSLTView",Sys.UI.Control);Sys.Component.descriptor={properties:[{name:"dataContext",type:Object},{name:"id",type:String},{name:"isInitialized",type:Boolean,readOnly:true},{name:"isUpdating",type:Boolean,readOnly:true}],events:[{name:"propertyChanged"}]};Sys.UI.Control.descriptor={properties:[{name:"element",type:Object,readOnly:true},{name:"role",type:String,readOnly:true},{name:"parent",type:Object},{name:"visible",type:Boolean},{name:"visibilityMode",type:Sys.UI.VisibilityMode}],methods:[{name:"addCssClass",parameters:[{name:"className",type:String}]},{name:"removeCssClass",parameters:[{name:"className",type:String}]},{name:"toggleCssClass",parameters:[{name:"className",type:String}]}]};Sys.UI.Behavior.descriptor={properties:[{name:"name",type:String}]};Sys.Component.parseFromMarkup=function(g,f,a){var e=new g,d=false,c=a.get_dataContext();if(c)d=a.hideDataContext();var b=Sys.Preview.MarkupParser.initializeObject(e,f,a);if(b){a.addComponent(b);if(c)b.set_dataContext(c)}else e.dispose();if(d)a.restoreDataContext();return b};Sys.Component.createCollection=function(c){var a=[];a._component=c;var b=null;a.get_events=function(){if(!b)b=new Sys.EventHandlerList;return b};a.add_collectionChanged=function(a){this.get_events().addHandler("collectionChanged",a)};a.remove_collectionChanged=function(a){this.get_events().removeHandler("collectionChanged",a)};a._onCollectionChanged=function(b){var a=this.get_events().getHandler("collectionChanged");if(a)a(this,b)};a.add=function(a){Array.add(this,a);if(typeof a.setOwner==="function")a.setOwner(this._component);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Add,a))};a.clear=function(){for(var a=this.length-1;a>=0;a--){this[a].dispose();this[a]=null}Array.clear(this);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Reset,null))};a.dispose=function(){this.clear();delete this._events;this._component=null;this._disposed=true};a.remove=function(a){a.dispose();Array.remove(this,a);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Remove,a))};a.removeAt=function(a){var b=this[a];b.dispose();Array.removeAt(this,a);this._onCollectionChanged(new Sys.Preview.CollectionChangedEventArgs(Sys.Preview.NotifyCollectionChangedAction.Remove,b))};return a};Sys.Component.createMultiple=function(b,g,c,f,d){var e=Sys.Component.create;for(var a=0,h=b.length;a<h;a++)e(g,c,f,d,b[a])};Sys.UI.Control.parseFromMarkup=function(i,f,a){var h=f.attributes.getNamedItem("id"),j=h.nodeValue,g=a.findElement(j),d=false,c=a.get_dataContext();if(c)d=a.hideDataContext();var e=new i(g),b=Sys.Preview.MarkupParser.initializeObject(e,f,a);if(b){a.addComponent(b);if(c)b.set_dataContext(c)}else e.dispose();if(d)a.restoreDataContext();return b};Sys.UI.Behavior.parseFromMarkup=function(j,c,d){var f,e,b=c.attributes.getNamedItem("elementID");if(!b){var a=c.parentNode;if(a){a=a.parentNode;if(a&&a.attributes){var h=a.attributes.getNamedItem("id");if(h){e=h.nodeValue;f=d.findElement(e)}}}}else{if(b.nodeValue.length){e=b.nodeValue;f=d.findElement(e)}c.attributes.removeNamedItem("elementID")}var i=new j(f),g=Sys.Preview.MarkupParser.initializeObject(i,c,d);if(g){if(b)c.attributes.setNamedItem(b);d.addComponent(g)}else i.dispose();return g};Sys.UI.DomElement._contains=function(b,a){while(a){a=a.parentNode;if(a===b)return true}return false};Sys.UI.DomElement._testTerm=function(a,b){return (!a.id||b.id===a.id)&&(!a.tagName||b.tagName.toLowerCase()===a.tagName)&&(a.className==="  "||(" "+b.className+" ").indexOf(a.className)!==-1)};Sys.UI.DomElement.getElementsByClassName=function(d,b){b=b||document;d=" "+d+" ";var c=b.all||b.getElementsByTagName("*"),f=c.length,e=[],a;for(a=0;a<f;a++)if((" "+c[a].className+" ").indexOf(d)!==-1)e[e.length]=c[a];return e};Sys.UI.DomElement.selectAllElements=function(r,s){var p=/([^\.#]*)\.?([^#]*)#?(.*)/,j=r.trim().split(/\s+/),e=s||document,l=e.body?e:e.documentElement,n=j.length;if(n===0)return [];for(var g=0;g<n;g++){j[g].search(p);j[g]={tagName:RegExp.$1.toLowerCase(),className:RegExp.$2.toLowerCase(),id:RegExp.$3}}var a=j[0],f=[],b=[];if(a.id){var c=l.getElementById(a.id);if(c&&(e===l||e.contains&&e.contains(c)||this._contains(e,c)))f=[c]}else if(a.tagName)f=e.getElementsByTagName(a.tagName);else if(a.className)f=this.getElementsByClassName(a.className,e);a.className=" "+a.className+" ";for(g=1;g<n;g++){var m=f.length;if(m===0)return [];var q=a;a=j[g];a.className=" "+a.className+" ";for(var h=0;h<m;h++){var d=f[h];if(!this._testTerm(q,d))continue;if(a.id){c=l.getElementById(a.id);if(c&&(d===l||d.contains&&d.contains(c)||this._contains(d,c)))b[b.length]=c}else if(a.tagName){var k=d.getElementsByTagName(a.tagName);for(var i=0,o=k.length;i<o;i++)b[b.length]=k[i]}else{k=d.getElementsByTagName("*");o=k.length;for(i=0;i<o;i++){c=k[i];if((" "+c.className+" ").indexOf(a.className)!==-1)b[b.length]=c}}}f=b;b=[]}m=f.length;for(h=0;h<m;h++){d=f[h];if(this._testTerm(a,d)&&!Array.contains(b,d))b[b.length]=d}return b};Sys.UI.DomElement.selectElement=function(b,c){var a=Sys.UI.DomElement.selectAllElements(b,c);return a.length>0?a[0]:null};function $object(b,a){return Sys.Application.findComponent(b,a)}Sys._Application.descriptor={events:[{name:"init"},{name:"load"},{name:"unload"}]};Sys._Application.parseFromMarkup=function(e,c,a){if(!a.get_isGlobal())return null;var d=null,b=c.attributes.getNamedItem("id");if(b){d=b.nodeValue;c.attributes.removeNamedItem("id")}Sys.Preview.MarkupParser.initializeObject(Sys.Application,c,a);if(b)c.attributes.setNamedItem(b);if(d&&a.findComponent(d)!==Sys.Application)a._addComponentByID(d,Sys.Application,true);return Sys.Application};Sys.Application.getMarkupContext=function(){return this._markupContext};Sys.Application.__initHandler=function(){var a=Sys.Application;a.remove_init(Sys.Application.__initHandler);Sys.Preview.MarkupParser.processDocument(a._markupContext)};Sys.Application.__unloadHandler=function(){var a=Sys.Application;a.remove_unload(a.__unloadHandler);if(a._markupContext){a._markupContext.dispose();a._markupContext=null}};if(!Sys.Application._markupContext){Sys.Application._markupContext=Sys.Preview.MarkupContext.createGlobalContext();Sys.Application.add_init(Sys.Application.__initHandler);Sys.Application.add_unload(Sys.Application.__unloadHandler)}if(!Sys.Serialization.JavaScriptSerializer._dateRegEx){Sys.Serialization.JavaScriptSerializer._dateRegEx=new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)\\)\\\\/\\"',"g");Sys.Serialization.JavaScriptSerializer._jsonRegEx=new RegExp("[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]","g");Sys.Serialization.JavaScriptSerializer._jsonStringRegEx=new RegExp('"(\\\\.|[^"\\\\])*"',"g");Sys.Serialization.JavaScriptSerializer.deserialize=function(data,secure){if(data.length===0)throw Error.argument("data",Sys.Res.cannotDeserializeEmptyString);try{var exp=data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx,"$1new Date($2)");if(secure&&Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx,"")))throw null;return eval("("+exp+")")}catch(a){throw Error.argument("data",Sys.Res.cannotDeserializeInvalidJson)}}}if(!Sys.UI.DomElement.getVisible)Sys.UI.DomElement.getVisible=function(a){return a.style.visibility!=="hidden"};if(!Sys.UI.DomElement.setVisible)Sys.UI.DomElement.setVisible=function(a,b){if(b!==Sys.UI.DomElement.getVisible(a)){a.style.visibility=b?"visible":"hidden";if(b){if(a.style.display==="none")a.style.display=a._display?a._display:"inline"}else{a._display=a.style.display;a.style.display="none"}}};Sys.Preview.HistoryEventArgs=function(a){Sys.Preview.HistoryEventArgs.initializeBase(this);this._state=a};Sys.Preview.HistoryEventArgs.prototype={get_state:function(){return this._state}};Sys.Preview.HistoryEventArgs.registerClass("Sys.Preview.HistoryEventArgs",Sys.EventArgs);Sys.Preview._History=function(){Sys.Preview._History.initializeBase(this);this._appLoadHandler=null;this._beginRequestHandler=null;this._clientId=null;this._currentEntry="";this._emptyPageUrl=null;this._endRequestHandler=null;this._history=null;this._historyFrame=null;this._historyInitialLength=0;this._historyLength=0;this._iframeLoadHandler=null;this._ignoreIFrame=false;this._ignoreTimer=false;this._historyPointIsNew=false;this._state={};this._timerCookie=0;this._timerHandler=null;this._uniqueId=null};Sys.Preview._History.prototype={get_stateString:function(){var b=Sys.Browser.agent===Sys.Browser.Safari&&this._history?this._history[window.history.length-this._historyInitialLength]:window.location.hash,a=decodeURIComponent(b||"");if(a.length>0&&a.charAt(0)==="#")a=a.substring(1);return a},add_navigate:function(a){this.get_events().addHandler("navigate",a)},remove_navigate:function(a){this.get_events().removeHandler("navigate",a)},addHistoryPoint:function(c,f){var b=this._state;for(var a in c){var d=c[a];if(d===null){if(typeof b[a]!=="undefined")delete b[a]}else b[a]=d}var e=Sys.Serialization.JavaScriptSerializer.serialize(b);this._ignoreIFrame=true;this._historyPointIsNew=true;this._setState(e,f)},dispose:function(){if(this._appLoadHandler){Sys.Application.remove_load(this._appLoadHandler);delete this._appLoadHandler}if(this._historyFrame){Sys.UI.DomEvent.removeHandler(this._historyFrame,"load",this._iframeLoadHandler);delete this._iframeLoadHandler;delete this._historyFrame}if(this._timerCookie){window.clearTimeout(this._timerCookie);delete this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);delete this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);delete this._beginRequestHandler}Sys.Preview._History.callBaseMethod(this,"dispose")},initialize:function(){Sys.Preview._History.callBaseMethod(this,"initialize");this._appLoadHandler=Function.createDelegate(this,this._onApplicationLoaded);Sys.Application.add_load(this._appLoadHandler)},setServerId:function(a,b){this._clientId=a;this._uniqueId=b},setServerState:function(a){this._state.__s=a},_navigate:function(b){var a={};if(b)try{a=Sys.Serialization.JavaScriptSerializer.deserialize(b,true)}catch(e){}if(this._uniqueId){var d=this._state.__s||"",c=a.__s||"";if(c!==d){__doPostBack(this._uniqueId,c);this._state=a;return}}this._setState(b);this._state=a;this._raiseNavigate()},_onApplicationLoaded:function(){Sys.Application.remove_load(this._appLoadHandler);delete this._appLoadHandler;if(Sys.WebForms){var b=document.createElement("DIV");b.id=this._clientId;b.style.display="none";document.body.appendChild(b);this._beginRequestHandler=Function.createDelegate(this,this._onPageRequestManagerBeginRequest);Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._beginRequestHandler);this._endRequestHandler=Function.createDelegate(this,this._onPageRequestManagerEndRequest);Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandler)}if(Sys.Browser.agent===Sys.Browser.InternetExplorer){var e="__historyFrame",a=document.getElementById(e),d=a.src;this._emptyPageUrl=d+(d.indexOf("?")===-1?"?":"&")+"_state=";this._historyFrame=a;if(a.readyState==="loading")this._ignoreIFrame=true;this._iframeLoadHandler=Function.createDelegate(this,this._onIFrameLoad);Sys.UI.DomEvent.addHandler(this._historyFrame,"load",this._iframeLoadHandler)}if(Sys.Browser.agent===Sys.Browser.Safari){this._history=[window.location.hash];this._historyInitialLength=window.history.length}this._timerHandler=Function.createDelegate(this,this._onIdle);this._timerCookie=window.setTimeout(this._timerHandler,100);var c=this.get_stateString();if(c!==this._currentEntry)this._navigate(c)},_onIdle:function(){delete this._timerCookie;var a=this.get_stateString();if(a!==this._currentEntry){if(!this._ignoreTimer){this._historyPointIsNew=false;this._navigate(a);this._historyLength=window.history.length}}else this._ignoreTimer=false;this._timerCookie=window.setTimeout(this._timerHandler,100)},_onIFrameLoad:function(){if(!this._ignoreIFrame){var a=this._historyFrame.contentWindow.location.search,b=a.indexOf("_state=");if(b!==-1&&b+7<a.length){a=a.substring(b+7);var c=a.indexOf("&");if(c!==-1)a=a.substring(0,c)}else a="";this._historyPointIsNew=false;this._navigate(a)}this._ignoreIFrame=false},_onPageRequestManagerBeginRequest:function(){this._ignoreTimer=true},_onPageRequestManagerEndRequest:function(f,e){var b=e.get_dataItems()[this._clientId],c;if(typeof b!=="undefined"){var d=b[0];c=b[1];this.setServerState(d);this._historyPointIsNew=true}else this._ignoreTimer=false;var a=Sys.Serialization.JavaScriptSerializer.serialize(this._state);if(a==="{}")a="";if(a!=this._currentEntry){this._ignoreTimer=true;this._setState(a,c);this._raiseNavigate()}},_raiseNavigate:function(){var b=this.get_events().getHandler("navigate"),a=new Sys.Preview.HistoryEventArgs(this._state);if(b)b(this,a);if(window.pageNavigate)window.pageNavigate(this,a)},_setState:function(a,c){if(a!==this._currentEntry){if(this._historyFrame&&this._historyPointIsNew){var f=this._emptyPageUrl+a+"&title="+encodeURIComponent(c||document.title);if(this._historyFrame.src!=f){this._ignoreIFrame=true;this._historyFrame.src=f}this._historyPointIsNew=false}this._ignoreTimer=false;this._currentEntry=a;var d=this.get_stateString();if(d==="{}"){d="";this._currentEntry=null}if(a!==d){var e=a?encodeURIComponent(a):"";if(Sys.Browser.agent===Sys.Browser.Safari){this._history[window.history.length-this._historyInitialLength+1]=a;this._historyLength=window.history.length+1;var b=document.createElement("FORM");b.method="get";b.action="#"+e;document.appendChild(b);b.submit();document.removeChild(b)}else window.location.hash=e;if(typeof c!=="undefined"&&c!==null)document.title=c}}}};Sys.Preview._History.registerClass("Sys.Preview._History",Sys.Component);Sys._Application.prototype.get_history=function(){var a=this._history;if(!a){a=this._history=new Sys.Preview._History;Sys.Application.registerDisposableObject(a);a.initialize()}return a};
//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// PreviewDragDrop.js
Sys.Preview.UI._DragDropManager=function(){};Sys.Preview.UI._DragDropManager.prototype={_instance:null,_events:null,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(){if(!this._instance){if(Sys.Browser.agent===Sys.Browser.InternetExplorer)this._instance=new Sys.Preview.UI.IEDragDropManager;else this._instance=new Sys.Preview.UI.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},startDragDrop:function(a,b,c){this._getInstance().startDragDrop(a,b,c)},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)}};Sys.Preview.UI._DragDropManager.registerClass("Sys.Preview.UI._DragDropManager");Sys.Preview.UI.DragDropManager=new Sys.Preview.UI._DragDropManager;Sys.Preview.UI.DragDropEventArgs=function(c,a,b){this._dragMode=c;this._dataType=a;this._data=b};Sys.Preview.UI.DragDropEventArgs.prototype={get_dragMode:function(){return this._dragMode||null},get_dragDataType:function(){return this._dataType||null},get_dragData:function(){return this._data||null}};Sys.Preview.UI.DragDropEventArgs.registerClass("Sys.Preview.UI.DragDropEventArgs");Sys.Preview.UI.IDragSource=function(){};Sys.Preview.UI.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()}};Sys.Preview.UI.IDragSource.registerInterface("Sys.Preview.UI.IDragSource");Sys.Preview.UI.IDropTarget=function(){};Sys.Preview.UI.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()}};Sys.Preview.UI.IDropTarget.registerInterface("Sys.Preview.UI.IDropTarget");Sys.Preview.UI.DragMode=function(){throw Error.invalidOperation()};Sys.Preview.UI.DragMode.prototype={Copy:0,Move:1};Sys.Preview.UI.DragMode.registerEnum("Sys.Preview.UI.DragMode");Sys.Preview.UI.IEDragDropManager=function(){Sys.Preview.UI.IEDragDropManager.initializeBase(this)};Sys.Preview.UI.IEDragDropManager.prototype={_dropTargets:null,_radius:10,_activeDragVisual:null,_activeContext:null,_activeDragSource:null,_underlyingTarget:null,_oldOffset:null,_potentialTarget:null,_isDragging:false,_mouseUpHandler:null,_documentMouseMoveHandler:null,_documentDragOverHandler:null,_dragStartHandler:null,_mouseMoveHandler:null,_dragEnterHandler:null,_dragLeaveHandler:null,_dragOverHandler:null,_dropHandler:null,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(){Sys.Preview.UI.IEDragDropManager.callBaseMethod(this,"initialize");this._mouseUpHandler=Function.createDelegate(this,this.mouseUpHandler);this._documentMouseMoveHandler=Function.createDelegate(this,this.documentMouseMoveHandler);this._documentDragOverHandler=Function.createDelegate(this,this.documentDragOverHandler);this._dragStartHandler=Function.createDelegate(this,this.dragStartHandler);this._mouseMoveHandler=Function.createDelegate(this,this.mouseMoveHandler);this._dragEnterHandler=Function.createDelegate(this,this.dragEnterHandler);this._dragLeaveHandler=Function.createDelegate(this,this.dragLeaveHandler);this._dragOverHandler=Function.createDelegate(this,this.dragOverHandler);this._dropHandler=Function.createDelegate(this,this.dropHandler)},dispose:function(){if(this._dropTargets){for(var a=0;a<this._dropTargets;a++)this.unregisterDropTarget(this._dropTargets[a]);this._dropTargets=null}Sys.Preview.UI.IEDragDropManager.callBaseMethod(this,"dispose")},startDragDrop:function(b,a,f){var h=window._event;if(this._isDragging)return;this._underlyingTarget=null;this._activeDragSource=b;this._activeDragVisual=a;this._activeContext=f;var e={x:h.clientX,y:h.clientY};a.originalPosition=a.style.position;a.style.position="absolute";document._lastPosition=e;a.startingPoint=e;var i=this.getScrollOffset(a,true);a.startingPoint=this.addPoints(a.startingPoint,i);if(a.style.position=="absolute")a.startingPoint=this.subtractPoints(a.startingPoint,Sys.UI.DomElement.getLocation(a));else{var c=parseInt(a.style.left),d=parseInt(a.style.top);if(isNaN(c))c="0";if(isNaN(d))d="0";a.startingPoint=this.subtractPoints(a.startingPoint,{x:c,y:d})}this._prepareForDomChanges();b.onDragStart();var j=new Sys.Preview.UI.DragDropEventArgs(b.get_dragMode(),b.get_dragDataType(),b.getDragData(f)),g=this.get_events().getHandler("dragStart");if(g)g(this,j);this._recoverFromDomChanges();this._wireEvents();this._drag(true)},_stopDragDrop:function(a){var c=window._event;if(this._activeDragSource){this._unwireEvents();if(!a)a=this._underlyingTarget==null;if(!a&&this._underlyingTarget)this._underlyingTarget.drop(this._activeDragSource.get_dragMode(),this._activeDragSource.get_dragDataType(),this._activeDragSource.getDragData(this._activeContext));this._activeDragSource.onDragEnd(a);var b=this.get_events().getHandler("dragStop");if(b)b(this,Sys.EventArgs.Empty);this._activeDragVisual.style.position=this._activeDragVisual.originalPosition;this._activeDragSource=null;this._activeContext=null;this._activeDragVisual=null;this._isDragging=false;this._potentialTarget=null;c.preventDefault()}},_drag:function(e){var d=window._event,c={x:d.clientX,y:d.clientY};document._lastPosition=c;var f=this.getScrollOffset(this._activeDragVisual,true),a=this.addPoints(this.subtractPoints(c,this._activeDragVisual.startingPoint),f);if(!e&&parseInt(this._activeDragVisual.style.left)==a.x&&parseInt(this._activeDragVisual.style.top)==a.y)return;Sys.UI.DomElement.setLocation(this._activeDragVisual,a.x,a.y);this._prepareForDomChanges();this._activeDragSource.onDrag();this._recoverFromDomChanges();this._potentialTarget=this._findPotentialTarget(this._activeDragSource,this._activeDragVisual);var b=this._potentialTarget!=this._underlyingTarget||this._potentialTarget==null;if(b&&this._underlyingTarget!=null)this._leaveTarget(this._activeDragSource,this._underlyingTarget);if(this._potentialTarget!=null)if(b){this._underlyingTarget=this._potentialTarget;this._enterTarget(this._activeDragSource,this._underlyingTarget)}else this._moveInTarget(this._activeDragSource,this._underlyingTarget);else this._underlyingTarget=null},_wireEvents:function(){Sys.UI.DomEvent.addHandler(document,"mouseup",this._mouseUpHandler);Sys.UI.DomEvent.addHandler(document,"mousemove",this._documentMouseMoveHandler);Sys.UI.DomEvent.addHandler(document.body,"dragover",this._documentDragOverHandler);Sys.UI.DomEvent.addHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);Sys.UI.DomEvent.addHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);Sys.UI.DomEvent.addHandler(this._activeDragVisual,"drag",this._mouseMoveHandler)},_unwireEvents:function(){Sys.UI.DomEvent.removeHandler(this._activeDragVisual,"drag",this._mouseMoveHandler);Sys.UI.DomEvent.removeHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);Sys.UI.DomEvent.removeHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);Sys.UI.DomEvent.removeHandler(document.body,"dragover",this._documentDragOverHandler);Sys.UI.DomEvent.removeHandler(document,"mousemove",this._documentMouseMoveHandler);Sys.UI.DomEvent.removeHandler(document,"mouseup",this._mouseUpHandler)},registerDropTarget:function(a){if(!this._dropTargets)this._dropTargets=[];Array.add(this._dropTargets,a);this._wireDropTargetEvents(a)},unregisterDropTarget:function(a){this._unwireDropTargetEvents(a);if(this._dropTargets)Array.remove(this._dropTargets,a)},_wireDropTargetEvents:function(b){var a=b.get_dropTargetElement();a._dropTarget=b;Sys.UI.DomEvent.addHandler(a,"dragenter",this._dragEnterHandler);Sys.UI.DomEvent.addHandler(a,"dragleave",this._dragLeaveHandler);Sys.UI.DomEvent.addHandler(a,"dragover",this._dragOverHandler);Sys.UI.DomEvent.addHandler(a,"drop",this._dropHandler)},_unwireDropTargetEvents:function(b){var a=b.get_dropTargetElement();a._dropTarget=null;Sys.UI.DomEvent.removeHandler(a,"dragenter",this._dragEnterHandler);Sys.UI.DomEvent.removeHandler(a,"dragleave",this._dragLeaveHandler);Sys.UI.DomEvent.removeHandler(a,"dragover",this._dragOverHandler);Sys.UI.DomEvent.removeHandler(a,"drop",this._dropHandler)},dragStartHandler:function(d){window._event=d;document.selection.empty();var c=d.dataTransfer;if(!c)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())}},mouseUpHandler:function(a){window._event=a;this._stopDragDrop(false)},documentMouseMoveHandler:function(a){window._event=a;this._dragDrop()},documentDragOverHandler:function(a){window._event=a;if(this._potentialTarget)a.preventDefault()},mouseMoveHandler:function(a){window._event=a;this._drag()},dragEnterHandler:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragEnterTarget(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}},dragLeaveHandler:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragLeaveTarget(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}},dragOverHandler:function(c){window._event=c;if(this._isDragging)c.preventDefault();else{var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.onDragInTarget(Sys.Preview.UI.DragMode.Copy,b[a].type,b[a].value)}},dropHandler:function(c){window._event=c;if(!this._isDragging){var b=Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(c.target));for(var a=0;a<b.length;a++)this._dropTarget.drop(Sys.Preview.UI.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(a){var f=window._event;if(!this._dropTargets)return null;var m=a.get_dragDataType(),l=a.get_dragMode(),k=a.getDragData(this._activeContext),d=this.getScrollOffset(document.body,true),n=f.clientX+d.x,o=f.clientY+d.y,g={x:n-this._radius,y:o-this._radius,width:this._radius*2,height:this._radius*2};for(var c=0;c<this._dropTargets.length;c++){var b=this._dropTargets[c],j=b.canDrop(l,m,k);if(!j)continue;var e=b.get_dropTargetElement(),h=Sys.UI.DomElement.getBounds(e),i=Sys.UI.Control.overlaps(g,h);if(i||e===document.body)return b}return null},_prepareForDomChanges:function(){this._oldOffset=Sys.UI.DomElement.getLocation(this._activeDragVisual)},_recoverFromDomChanges:function(){var a=Sys.UI.DomElement.getLocation(this._activeDragVisual);if(this._oldOffset.x!=a.x||this._oldOffset.y!=a.y){this._activeDragVisual.startingPoint=this.subtractPoints(this._activeDragVisual.startingPoint,this.subtractPoints(this._oldOffset,a));scrollOffset=this.getScrollOffset(this._activeDragVisual,true);var b=this.addPoints(this.subtractPoints(document._lastPosition,this._activeDragVisual.startingPoint),scrollOffset);Sys.UI.DomElement.setLocation(this._activeDragVisual,b.x,b.y)}},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.body.clientWidth;if(a==null)a=document.body.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}};Sys.Preview.UI.IEDragDropManager.registerClass("Sys.Preview.UI.IEDragDropManager",Sys.Component);Sys.Preview.UI.IEDragDropManager._getDataObjectsForDropTarget=function(f){if(f==null)return [];var g=window._event,e=[],b=["URL","Text"],c;for(var a=0;a<b.length;a++){var d=g.dataTransfer;if(!d)d=g.rawEvent.dataTransfer;c=d.getData(b[a]);if(f.canDrop(Sys.Preview.UI.DragMode.Copy,b[a],c))if(c)Array.add(e,{type:b[a],value:c})}return e};Sys.Preview.UI.GenericDragDropManager=function(){Sys.Preview.UI.GenericDragDropManager.initializeBase(this)};Sys.Preview.UI.GenericDragDropManager.prototype={_scrollEdgeConst:40,_scrollByConst:10,_scroller:null,_scrollDeltaX:null,_scrollDeltaY:null,_activeDragVisual:null,_activeContext:null,_activeDragSource:null,_mouseUpHandler:null,_mouseMoveHandler:null,_keyPressHandler:null,initialize:function(){Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"initialize");this._mouseUpHandler=Function.createDelegate(this,this.mouseUpHandler);this._mouseMoveHandler=Function.createDelegate(this,this.mouseMoveHandler);this._keyPressHandler=Function.createDelegate(this,this.keyPressHandler);if(Sys.Browser.agent===Sys.Browser.Safari)Sys.Preview.UI.GenericDragDropManager.__loadSafariCompatLayer(this);this._scroller=new Sys.Preview.Timer;this._scroller.set_interval(10);this._scroller.add_tick(Function.createDelegate(this,this.scrollerTickHandler))},startDragDrop:function(a,b,c){this._activeDragSource=a;this._activeDragVisual=b;this._activeContext=c;Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"startDragDrop",[a,b,c])},_stopDragDrop:function(a){this._scroller.set_enabled(false);Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"_stopDragDrop",[a])},_drag:function(a){Sys.Preview.UI.GenericDragDropManager.callBaseMethod(this,"_drag",[a]);this._autoScroll()},_wireEvents:function(){Sys.UI.DomEvent.addHandler(document,"mouseup",this._mouseUpHandler);Sys.UI.DomEvent.addHandler(document,"mousemove",this._mouseMoveHandler);Sys.UI.DomEvent.addHandler(document,"keypress",this._keyPressHandler)},_unwireEvents:function(){Sys.UI.DomEvent.removeHandler(document,"keypress",this._keyPressHandler);Sys.UI.DomEvent.removeHandler(document,"mousemove",this._mouseMoveHandler);Sys.UI.DomEvent.removeHandler(document,"mouseup",this._mouseUpHandler)},_wireDropTargetEvents:function(){},_unwireDropTargetEvents:function(){},mouseUpHandler:function(a){window._event=a;this._stopDragDrop(false)},mouseMoveHandler:function(a){window._event=a;this._drag()},keyPressHandler:function(a){window._event=a;var b=a.keyCode?a.keyCode:a.rawEvent.keyCode;if(b==27)this._stopDragDrop(true)},_autoScroll:function(){var b=window._event,a=this.getBrowserRectangle();if(a.width>0){this._scrollDeltaX=this._scrollDeltaY=0;if(b.clientX<a.x+this._scrollEdgeConst)this._scrollDeltaX=-this._scrollByConst;else if(b.clientX>a.width-this._scrollEdgeConst)this._scrollDeltaX=this._scrollByConst;if(b.clientY<a.y+this._scrollEdgeConst)this._scrollDeltaY=-this._scrollByConst;else if(b.clientY>a.height-this._scrollEdgeConst)this._scrollDeltaY=this._scrollByConst;if(this._scrollDeltaX!=0||this._scrollDeltaY!=0)this._scroller.set_enabled(true);else this._scroller.set_enabled(false)}},scrollerTickHandler: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)};Sys.UI.DomElement.setLocation(a,b.x,b.y)}};Sys.Preview.UI.GenericDragDropManager.registerClass("Sys.Preview.UI.GenericDragDropManager",Sys.Preview.UI.IEDragDropManager);if(Sys.Browser.agent===Sys.Browser.Safari)Sys.Preview.UI.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}}};Sys.Preview.UI.RepeatDirection=function(){throw Error.invalidOperation()};Sys.Preview.UI.RepeatDirection.prototype={Horizontal:0,Vertical:1};Sys.Preview.UI.RepeatDirection.registerEnum("Sys.Preview.UI.RepeatDirection");Sys.Preview.UI.DragDropList=function(a){Sys.Preview.UI.DragDropList.initializeBase(this,[a]);this._acceptedDataTypes=[]};Sys.Preview.UI.DragDropList.prototype={_isDragging:null,_dataType:null,_dragMode:null,_dragVisual:null,_direction:Sys.Preview.UI.RepeatDirection.Vertical,_emptyTemplate:null,_emptyTemplateInstance:null,_dropCueTemplate:null,_dropCueTemplateInstance:null,_floatContainerInstance:null,_originalParent:null,_originalNextSibling:null,_originalZIndex:null,_currentContext:null,_data:null,get_data:function(){return this._data},set_data:function(a){this._data=a},initialize:function(){Sys.Preview.UI.DragDropList.callBaseMethod(this,"initialize");this.get_element().__dragDropList=this;Sys.Preview.UI.DragDropManager.registerDropTarget(this)},startDragDrop:function(c,b,a){if(!this._isDragging){this._isDragging=true;this._currentContext=b;if(!a)a=this.createDragVisual(c);else this._dragVisual=a;Sys.Preview.UI.DragDropManager.startDragDrop(this,a,b)}},createDragVisual:function(a){if(this._dragMode===Sys.Preview.UI.DragMode.Copy)this._dragVisual=a.cloneNode(true);else this._dragVisual=a;var e=Sys.Preview.UI.DragDropManager._getInstance().getScrollOffset(a,true);this._dragVisual.style.width=a.offsetWidth+"px";this._dragVisual.style.height=a.offsetHeight+"px";this._dragVisual.style.opacity="0.4";this._dragVisual.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity=0.4);";this._originalZIndex=this._dragVisual.style.zIndex;this._dragVisual.style.zIndex=99999;this._originalParent=this._dragVisual.parentNode;this._originalNextSibling=Sys.Preview.UI.DragDropManager._getInstance().getNextSibling(this._dragVisual);var f=Sys.Preview.UI.DragDropManager._getInstance(),c=Sys.UI.DomElement.getLocation(a),b=this._getFloatContainer();Sys.UI.DomElement.setLocation(b,c.x,c.y);if(Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dragVisual))this._dragVisual.parentNode.removeChild(this._dragVisual);b.appendChild(this._dragVisual);var d=f.getScrollOffset(a,true);if(e.x!==d.x||e.y!==d.y){var h=f.subtractPoints(e,d),g=f.subtractPoints(c,h);Sys.UI.DomElement.setLocation(b,g.x,g.y)}return b},get_emptyTemplate:function(){return this._emptyTemplate},set_emptyTemplate:function(a){this._emptyTemplate=a},get_dragDataType:function(){return this._dataType},set_dragDataType:function(a){this._dataType=a},getDragData:function(a){return a},get_dragMode:function(){return this._dragMode},set_dragMode:function(a){this._dragMode=a},dispose:function(){this.get_element().__dragDropList=null;Sys.Preview.UI.DragDropList.callBaseMethod(this,"dispose")},onDragStart:function(){this._validate()},onDrag:function(){},onDragEnd:function(b){if(this._floatContainerInstance){if(this._dragMode===Sys.Preview.UI.DragMode.Copy)this._floatContainerInstance.removeChild(this._dragVisual);else{this._dragVisual.style.opacity="0.999";this._dragVisual.style.filter="";this._dragVisual.style.zIndex=this._originalZIndex?this._originalZIndex:0;if(b){this._dragVisual.parentNode.removeChild(this._dragVisual);if(this._originalNextSibling!=null)this._originalParent.insertBefore(this._dragVisual,this._originalNextSibling);else this._originalParent.appendChild(this._dragVisual)}else if(this._dragVisual.parentNode===this._floatContainerInstance)this._dragVisual.parentNode.removeChild(this._dragVisual)}document.body.removeChild(this._floatContainerInstance)}else this._dragVisual.parentNode.removeChild(this._dragVisual);if(!b&&this._data&&this._dragMode===Sys.Preview.UI.DragMode.Move){var a=this.getDragData(this._currentContext);if(this._data&&a)if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.remove(a);else if(this._data instanceof Array)if(typeof this._data.remove==="function")this._data.remove(a);else Array.remove(this._data,a)}this._isDragging=false;this._validate()},get_direction:function(){return this._direction},set_direction:function(a){this._direction=a},get_acceptedDataTypes:function(){return this._acceptedDataTypes},set_acceptedDataTypes:function(a){this._acceptedDataTypes=a},get_dropCueTemplate:function(){return this._dropCueTemplate},set_dropCueTemplate:function(a){this._dropCueTemplate=a},get_dropTargetElement:function(){return this.get_element()},canDrop:function(c,b){for(var a=0;a<this._acceptedDataTypes.length;a++)if(this._acceptedDataTypes[a]===b)return true;return false},drop:function(e,d,a){if(d==="HTML"&&e===Sys.Preview.UI.DragMode.Move){dragVisual=a;var c=this._findPotentialNextSibling(dragVisual);this._setDropCueVisible(false,dragVisual);dragVisual.parentNode.removeChild(dragVisual);if(c)this.get_element().insertBefore(dragVisual,c);else this.get_element().appendChild(dragVisual)}else this._setDropCueVisible(false);if(this._data&&a){var b=a;if(Sys.Preview.Data.DataRow.isInstanceOfType(a)&&Sys.Preview.Data.DataTable.isInstanceOfType(this._data)){var f=a.get_table();if(f)b=this._data.createRow(a)}if(Sys.Preview.Data.IData.isImplementedBy(this._data))this._data.add(b);else if(this._data instanceof Array)if(typeof this._data.add==="function")this._data.add(b);else Array.add(this._data,b)}},onDragEnterTarget:function(c,a,b){if(a==="HTML"){this._setDropCueVisible(true,b);this._validate()}},onDragLeaveTarget:function(b,a){if(a==="HTML"){this._setDropCueVisible(false);this._validate()}},onDragInTarget:function(c,a,b){if(a==="HTML")this._setDropCueVisible(true,b)},_setDropCueVisible:function(d,b){if(this._dropCueTemplate)if(d){if(!this._dropCueTemplateInstance){var c=document.createDocumentFragment();this._dropCueTemplateInstance=this._dropCueTemplate.createInstance(c).instanceElement}var a=this._findPotentialNextSibling(b);if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dropCueTemplateInstance)){if(a)this.get_element().insertBefore(this._dropCueTemplateInstance,a);else this.get_element().appendChild(this._dropCueTemplateInstance);this._dropCueTemplateInstance.style.width=b.offsetWidth+"px";this._dropCueTemplateInstance.style.height=b.offsetHeight+"px"}else if(Sys.Preview.UI.DragDropManager._getInstance().getNextSibling(this._dropCueTemplateInstance)!==a){this.get_element().removeChild(this._dropCueTemplateInstance);if(a)this.get_element().insertBefore(this._dropCueTemplateInstance,a);else this.get_element().appendChild(this._dropCueTemplateInstance)}}else if(this._dropCueTemplateInstance&&Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dropCueTemplateInstance))this.get_element().removeChild(this._dropCueTemplateInstance)},_findPotentialNextSibling:function(e){var c=Sys.UI.DomElement.getBounds(e),d=this._direction===Sys.Preview.UI.RepeatDirection.Vertical,b;for(var a=this.get_element().firstChild;a!==null;a=a.nextSibling)if(a.innerHTML&&a!==this._dropCueTemplateInstance&&a!==this._emptyTemplateInstance){b=Sys.UI.DomElement.getBounds(a);if(!d&&c.x<=b.x||d&&c.y<=b.y)return a}return null},_validate:function(){var b=this._dropCueTemplateInstance==null||!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._dropCueTemplateInstance),c=0;for(var a=this.get_element().firstChild;a!==null;a=a.nextSibling)if(a.innerHTML&&a!==this._emptyTemplateInstance&&a!==this._dropCueTemplateInstance)c++;if(c>0)b=false;this._setEmptyTemplateVisible(b)},_setEmptyTemplateVisible:function(a){if(this._emptyTemplate)if(a){if(!this._emptyTemplateInstance)this._emptyTemplateInstance=this._emptyTemplate.createInstance(this.get_element()).instanceElement;else if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._emptyTemplateInstance))this.get_element().appendChild(this._emptyTemplateInstance)}else if(this._emptyTemplateInstance&&Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._emptyTemplateInstance))this.get_element().removeChild(this._emptyTemplateInstance)},_getFloatContainer:function(){if(!this._floatContainerInstance){this._floatContainerInstance=document.createElement(this.get_element().tagName);var a="0px 0px 0px 0px";this._floatContainerInstance.style.position="absolute";this._floatContainerInstance.style.padding=a;this._floatContainerInstance.style.margin=a;document.body.appendChild(this._floatContainerInstance)}else if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(this._floatContainerInstance))document.body.appendChild(this._floatContainerInstance);return this._floatContainerInstance}};Sys.Preview.UI.DragDropList.descriptor={properties:[{name:"acceptedDataTypes",type:Array},{name:"data",type:Object},{name:"dragDataType",type:String},{name:"emptyTemplate",type:Sys.Preview.UI.ITemplate},{name:"dropCueTemplate",type:Sys.Preview.UI.ITemplate},{name:"dropTargetElement",type:Object,readOnly:true},{name:"direction",type:Sys.Preview.UI.RepeatDirection},{name:"dragMode",type:Sys.Preview.UI.DragMode}]};Sys.Preview.UI.DragDropList.registerClass("Sys.Preview.UI.DragDropList",Sys.UI.Behavior,Sys.Preview.UI.IDragSource,Sys.Preview.UI.IDropTarget,Sys.IDisposable);Sys.Preview.UI.DataSourceDropTarget=function(a){Sys.Preview.UI.DataSourceDropTarget.initializeBase(this,[a])};Sys.Preview.UI.DataSourceDropTarget.prototype={_control:null,_acceptedDataTypes:null,_append:true,_target:null,_property:"data",get_append:function(){return this._append},set_append:function(a){this._append=a},get_target:function(){return this._target},set_target:function(a){this._target=a},get_property:function(){return this._property},set_property:function(a){this._property=a},get_acceptedDataTypes:function(){return this._acceptedDataTypes},set_acceptedDataTypes:function(a){this._acceptedDataTypes=a},initialize:function(){Sys.Preview.UI.DataSourceDropTarget.callBaseMethod(this,"initialize");this._control=Sys.Application.findComponent(this.get_element().id);Sys.Preview.UI.DragDropManager.registerDropTarget(this)},get_dropTargetElement:function(){return this.get_element()},canDrop:function(c,b){for(var a=0;a<this._acceptedDataTypes.length;a++)if(this._acceptedDataTypes[a]===b)return true;return false},drop:function(e,f,d){if(d){var a,c=this._target?this._target:this._control;if(this._append){a=c["get_"+this._property];if(a){var b=a.call(c);if(b){if(Sys.Preview.Data.IData.isImplementedBy(b))b.add(d);else if(b instanceof Array)if(typeof b.add==="function")b.add(d);else Array.add(b,d)}else{a=c["set_"+this._property];if(a)a.call(c,d)}}}else{a=c["set_"+this._property];if(a)a.call(c,d)}}},onDragEnterTarget:function(){},onDragLeaveTarget:function(){},onDragInTarget:function(){}};Sys.Preview.UI.DataSourceDropTarget.descriptor={properties:[{name:"acceptedDataTypes",type:Array},{name:"append",type:Boolean},{name:"dropTargetElement",type:Object,readOnly:true},{name:"target",type:Object},{name:"property",type:String}]};Sys.Preview.UI.DataSourceDropTarget.registerClass("Sys.Preview.UI.DataSourceDropTarget",Sys.UI.Behavior,Sys.Preview.UI.IDropTarget);Sys.Preview.UI.DraggableListItem=function(e){Sys.Preview.UI.DraggableListItem.initializeBase(this,[e]);var d,a,c,b;this.get_data=function(){if(d==null){var a=this._findDragSource();if(a!=null&&a.get_dragDataType()=="HTML")return this.get_element()}return d};this.set_data=function(a){d=a};this.get_handle=function(){return a};this.set_handle=function(b){if(a!=null){Sys.UI.DomEvent.removeHandler(a,"mousedown",this._handleMouseDown);a.__draggableBehavior=null}if(b.element)b=b.element;a=b;a.__draggableBehavior=this;Sys.UI.DomEvent.addHandler(a,"mousedown",this._handleMouseDown);a.__draggableBehavior=this};this.get_dragVisualTemplate=function(){return c};this.set_dragVisualTemplate=function(a){c=a};this._handleMouseDown=function(b){window._event=b;a.__draggableBehavior._handleMouseDownInternal()};this._handleMouseDownInternal=function(){var b=window._event;if(b.button<=1){var a=this._findDragSource();if(a!=null){var c=this._createDragVisual();a.startDragDrop(this.get_element(),this.get_data(),c);b.preventDefault()}}};this._createDragVisual=function(){var d=window._event;if(c!=null){if(b==null)b=c.createInstance(this.get_element()).instanceElement;else if(!Sys.Preview.UI.DragDropManager._getInstance().hasParent(b))this.get_element().appendChild(b);var a={x:d.clientX,y:d.clientY};a=Sys.Preview.UI.DragDropManager._getInstance().addPoints(a,Sys.Preview.UI.DragDropManager._getInstance().getScrollOffset(document.body,true));Sys.UI.DomElement.setLocation(b,a.x,a.y)}return b};this._findDragSource=function(){var a=this.get_element();while(a!=null){if(a.__dragDropList!=null)return a.__dragDropList;a=a.parentNode}return null}};Sys.Preview.UI.DraggableListItem.descriptor={properties:[{name:"data",type:Object},{name:"handle",isDomElement:true},{name:"dragVisualTemplate",type:Sys.Preview.UI.ITemplate}]};Sys.Preview.UI.DraggableListItem.registerClass("Sys.Preview.UI.DraggableListItem",Sys.UI.Behavior);Sys.Preview.UI.FloatingBehavior=function(a){Sys.Preview.UI.FloatingBehavior.initializeBase(this,[a]);this._mouseDownHandler=Function.createDelegate(this,this.mouseDownHandler)};Sys.Preview.UI.FloatingBehavior.prototype={_handle:null,_location:null,_dragStartLocation:null,_profileProperty:null,_profileComponent:null,add_move:function(a){this.get_events().addHandler("move",a)},remove_move:function(a){this.get_events().removeHandler("move",a)},get_handle:function(){return this._handle},set_handle:function(a){if(this._handle)Sys.UI.DomEvent.removeHandler(this._handle,"mousedown",this._mouseDownHandler);this._handle=a;Sys.UI.DomEvent.addHandler(this._handle,"mousedown",this._mouseDownHandler)},get_profileProperty:function(){return this._profileProperty},set_profileProperty:function(a){this._profileProperty=a},get_profileComponent:function(){return this._profileComponent},set_profileComponent:function(a){this._profileComponent=a},get_location:function(){return this._location},set_location:function(c){if(this._location!=c){this._location=c;if(this.get_isInitialized()){var b=this._location.split(","),a={x:parseInt(b[0]),y:parseInt(b[1])};Sys.UI.DomElement.setLocation(this.get_element(),a.x,a.y)}this.raisePropertyChanged("location")}},initialize:function(){Sys.Preview.UI.FloatingBehavior.callBaseMethod(this,"initialize");Sys.Preview.UI.DragDropManager.registerDropTarget(this);var a=this.get_element(),d;if(this._location){var f=this._location.split(",");d={x:parseInt(f[0]),y:parseInt(f[1])}}else d=Sys.UI.DomElement.getLocation(a);if(a.offsetWidth)a.style.width=a.offsetWidth+"px";if(a.offsetHeight)a.style.height=a.offsetHeight+"px";a.style.position="absolute";Sys.UI.DomElement.setLocation(a,d.x,d.y);var g=this.get_profileProperty();if(g){var b=new Sys.Preview.Binding;b.beginUpdate();b.set_target(this);b.set_property("location");var e=this.get_profileComponent();if(!e)e=Sys.Preview.Services.Components.Profile.instance;b.set_dataContext(e);b.set_dataPath(g);b.set_direction(Sys.Preview.BindingDirection.InOut);var c=new Sys.Preview.InvokeMethodAction;c.beginUpdate();c.set_eventSource(e);c.set_eventName("loadComplete");c.set_target(b);c.set_method("evaluateIn");c.endUpdate();b.endUpdate();this._binding=b;this._action=c}},dispose:function(){Sys.Preview.UI.DragDropManager.unregisterDropTarget(this);if(this._handle&&this._mouseDownHandler)Sys.UI.DomEvent.removeHandler(this._handle,"mousedown",this._mouseDownHandler);this._mouseDownHandler=null;Sys.Preview.UI.FloatingBehavior.callBaseMethod(this,"dispose")},checkCanDrag:function(a){var c=["input","button","select","textarea","label"],b=a.tagName;if(b.toLowerCase()=="a"&&a.href!=null&&a.href.length>0)return false;if(Array.indexOf(c,b.toLowerCase())>-1)return false;return true},mouseDownHandler:function(a){window._event=a;var b=this.get_element();if(this.checkCanDrag(a.target)){this._dragStartLocation=Sys.UI.DomElement.getLocation(b);a.preventDefault();this.startDragDrop(b)}},get_dragDataType:function(){return "_floatingObject"},getDragData:function(){return null},get_dragMode:function(){return Sys.Preview.UI.DragMode.Move},onDragStart:function(){},onDrag:function(){},onDragEnd:function(a){if(!a){var d=this.get_events().getHandler("move");if(d){var b=new Sys.CancelEventArgs;d(this,b);a=b.get_cancel()}}var e=this.get_element();if(a)Sys.UI.DomElement.setLocation(e,this._dragStartLocation.x,this._dragStartLocation.y);else{var c=Sys.UI.DomElement.getLocation(e);this._location=c.x+","+c.y;this.raisePropertyChanged("location")}},startDragDrop:function(a){Sys.Preview.UI.DragDropManager.startDragDrop(this,a,null)},get_dropTargetElement:function(){return document.body},canDrop:function(b,a){return a==="_floatingObject"},drop:function(){},onDragEnterTarget:function(){},onDragLeaveTarget:function(){},onDragInTarget:function(){}};Sys.Preview.UI.FloatingBehavior.descriptor={properties:[{name:"profileProperty",type:String},{name:"profileComponent",type:Object},{name:"dragData",type:Object,readOnly:true},{name:"dragDataType",type:String,readOnly:true},{name:"dragMode",type:Sys.Preview.UI.DragMode,readOnly:true},{name:"dropTargetElement",type:Object,readOnly:true},{name:"handle",isDomElement:true},{name:"location",type:String}],events:[{name:"move"}]};Sys.Preview.UI.FloatingBehavior.registerClass("Sys.Preview.UI.FloatingBehavior",Sys.UI.Behavior,Sys.Preview.UI.IDragSource,Sys.Preview.UI.IDropTarget,Sys.IDisposable);Sys.UI.Control.overlaps=function(a,b){var g=a.x>=b.x&&a.x<=b.x+b.width,e=a.x+a.width>=b.x&&a.x+a.width<=b.x+b.width,c=a.x<b.x&&a.x+a.height>b.x+b.height,h=a.y>=b.y&&a.y<=b.y+b.height,f=a.y+a.height>=b.y&&a.y+a.height<=b.y+b.height,d=a.y<b.y&&a.y+a.height>b.y+b.height;if((g||e||c)&&(h||f||d))return true;return false};
//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// PreviewWebParts.js
Type.registerNamespace("Sys.Preview.UI.Controls.WebParts");Sys.Preview.UI.Controls.WebParts.WebPart=function(e){Sys.Preview.UI.Controls.WebParts.WebPart.initializeBase(this,[e]);var a,b,d,c=true;this.get_allowZoneChange=function(){return c};this.set_allowZoneChange=function(a){c=a};this.get_titleElement=function(){return a};this.set_titleElement=function(b){a=b};this.get_zone=function(){return b};this.set_zone=function(a){b=a};this.get_zoneIndex=function(){return d};this.set_zoneIndex=function(a){d=a};this.initialize=function(){Sys.Preview.UI.Controls.WebParts.WebPart.callBaseMethod(this,"initialize");if(a&&b.get_webPartManager().get_allowPageDesign()&&b.get_allowLayoutChange()){var c=this.get_element();Sys.UI.DomEvent.addHandler(a,"mousedown",Function.createDelegate(this,f));a.style.cursor="move"}};function f(a){window._event=a;b.startDragDrop(this);a.preventDefault()}};Sys.Preview.UI.Controls.WebParts.WebPart.descriptor={properties:[{name:"titleElement",isDomElement:true},{name:"zone",type:Object},{name:"zoneIndex",type:Number},{name:"allowZoneChange",type:Boolean}]};Sys.Preview.UI.Controls.WebParts.WebPart.registerClass("Sys.Preview.UI.Controls.WebParts.WebPart",Sys.UI.Control);Sys.Preview.UI.Controls.WebParts.WebPartManager=function(b){Sys.Preview.UI.Controls.WebParts.WebPartManager.initializeBase(this,[b]);var a;this.get_allowPageDesign=function(){return a};this.set_allowPageDesign=function(b){a=b};this.initialize=function(){Sys.Preview.UI.Controls.WebParts.WebPartManager.callBaseMethod(this,"initialize");var a=Function.createDelegate(__wpm,__wpm.ShowHelp);__wpm.ShowHelp=function(d,c){var b;if(c==0&&!window.showModalDialog)b=1;else b=c;a(d,b)}}};Sys.Preview.UI.Controls.WebParts.WebPartManager.descriptor={properties:[{name:"allowPageDesign",type:Boolean}]};Sys.Preview.UI.Controls.WebParts.WebPartManager.registerClass("Sys.Preview.UI.Controls.WebParts.WebPartManager",Sys.UI.Control);Sys.Preview.UI.Controls.WebParts.WebPartZone=function(k){Sys.Preview.UI.Controls.WebParts.WebPartZone.initializeBase(this,[k]);var i="WebPart",d=true,g,e,b=-1,h=false,c,a;this.get_allowLayoutChange=function(){return d};this.set_allowLayoutChange=function(a){d=a};this.get_uniqueId=function(){return g};this.set_uniqueId=function(a){g=a};this.get_webPartManager=function(){return e};this.set_webPartManager=function(a){e=a};function j(d){var a=document.createElement("div");a.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity=0.75);";a.style.opacity="0.75";a.style.position="absolute";a.style.zIndex=32000;var b=d.get_element(),c=Sys.UI.DomElement.getLocation(b);Sys.UI.DomElement.setLocation(a,c.x,c.y);a.style.display="block";a.style.width=b.offsetWidth+"px";a.style.height=b.offsetHeight+"px";a.appendChild(b.cloneNode(true));return a}this.dispose=function(){Sys.Preview.UI.Controls.WebParts.WebPartZone.callBaseMethod(this,"dispose");if(h)Sys.Preview.UI.DragDropManager.unregisterDropTarget(this)};this.initialize=function(){Sys.Preview.UI.Controls.WebParts.WebPartZone.callBaseMethod(this,"initialize");var c=this.get_element();for(var b=0;b<__wpm.zones.length;b++)if(__wpm.zones[b].zoneElement==c){a=__wpm.zones[b];break}if(e.get_allowPageDesign()&&d){Sys.Preview.UI.DragDropManager.registerDropTarget(this);h=true}};this.startDragDrop=function(a){__wpm.UpdatePositions();c=j(a);document.body.appendChild(c);Sys.Preview.UI.DragDropManager.startDragDrop(this,c,a)};this.get_dragDataType=function(){return i};this.getDragData=function(a){return a};this.get_dragMode=function(){return Sys.Preview.UI.DragMode.Copy};this.onDragStart=function(){};this.onDrag=function(){};this.onDragEnd=function(){document.body.removeChild(c)};this.get_dropTargetElement=function(){return a.webPartTable};this.canDrop=function(c,b,d){var a=d;return c==Sys.Preview.UI.DragMode.Copy&&b==i&&Sys.Preview.UI.Controls.WebParts.WebPart.isInstanceOfType(a)&&(a.get_allowZoneChange()||a.get_zone()==this)&&f()!=-1};this.drop=function(i,h,f){a.ToggleDropCues(false,b,false);var c=f;if(l(c,this,b)){var e=g,d="Drag:"+c.get_id()+":"+b;__doPostBack(e,d)}};function l(a,c,b){if(c!=a.get_zone())return true;if(b==a.get_zoneIndex()||b==a.get_zoneIndex()+1)return false;return true}this.onDragEnterTarget=function(){var c=f();a.ToggleDropCues(true,c,false);b=c};this.onDragLeaveTarget=function(){a.ToggleDropCues(false,b,false)};this.onDragInTarget=function(){var c=f();if(c!=b){a.ToggleDropCues(false,b,true);a.ToggleDropCues(true,c,true);b=c}};function f(){var b=__wpGetPageEventLocation(window._event,false);return a.GetWebPartIndex(b)}};Sys.Preview.UI.Controls.WebParts.WebPartZone.descriptor={properties:[{name:"uniqueId",type:String},{name:"webPartManager",type:Object},{name:"allowLayoutChange",type:Boolean}]};Sys.Preview.UI.Controls.WebParts.WebPartZone.registerClass("Sys.Preview.UI.Controls.WebParts.WebPartZone",Sys.UI.Control,Sys.Preview.UI.IDragSource,Sys.Preview.UI.IDropTarget);
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};
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; this._UpdatingCssClass = null; };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_UpdatingCssClass: function() {
        return this._UpdatingCssClass;
    },
    set_UpdatingCssClass: function(value) {
        if (this._UpdatingCssClass != value) {
            this._UpdatingCssClass = value; this.raisePropertyChanged('UpdatingCssClass');
        }
    },
    get_updatingCssClass: function() {
        return this._UpdatingCssClass;
    },
    set_updatingCssClass: function(value) {
        if (this._UpdatingCssClass != value) {
            this._UpdatingCssClass = value; this.raisePropertyChanged('UpdatingCssClass');
        }
    },
    setStyle: function(updating) {
        var e = $get(this._DynamicControlID); if (this._UpdatingCssClass) {
            if (!updating) {
                e.className = this._oldCss; this._oldCss = null;
            } else {
                this._oldCss = e.className; e.className = this._UpdatingCssClass;
            }
        }
        if (updating && this._clearDuringUpdate) {
            e.innerHTML = "";
        }
    },
    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.setStyle(true); this.raisePopulating(a) }, _onPopulated: function(b, a) { this.setStyle(false); 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);
Type.registerNamespace('AjaxControlToolkit');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."};
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.DynamicPopulateBehavior=function(c){var b=null,a=this;AjaxControlToolkit.DynamicPopulateBehavior.initializeBase(a,[c]);a._servicePath=b;a._serviceMethod=b;a._contextKey=b;a._cacheDynamicResults=false;a._populateTriggerID=b;a._setUpdatingCssClass=b;a._clearDuringUpdate=true;a._customScript=b;a._clickHandler=b;a._callID=0;a._currentCallID=-1;a._populated=false};AjaxControlToolkit.DynamicPopulateBehavior.prototype={initialize:function(){var a=this;AjaxControlToolkit.DynamicPopulateBehavior.callBaseMethod(a,"initialize");$common.prepareHiddenElementForATDeviceUpdate();if(a._populateTriggerID){var b=$get(a._populateTriggerID);if(b){a._clickHandler=Function.createDelegate(a,a._onPopulateTriggerClick);$addHandler(b,"click",a._clickHandler)}}},dispose:function(){var a=this;if(a._populateTriggerID&&a._clickHandler){var b=$get(a._populateTriggerID);if(b)$removeHandler(b,"click",a._clickHandler);a._populateTriggerID=null;a._clickHandler=null}AjaxControlToolkit.DynamicPopulateBehavior.callBaseMethod(a,"dispose")},populate:function(contextKey){var a=this;if(a._populated&&a._cacheDynamicResults)return;if(a._currentCallID==-1){var eventArgs=new Sys.CancelEventArgs;a.raisePopulating(eventArgs);if(eventArgs.get_cancel())return;a._setUpdating(true)}if(a._customScript){var scriptResult=eval(a._customScript);a._setTargetHtml(scriptResult);a._setUpdating(false)}else{a._currentCallID=++a._callID;if(a._servicePath&&a._serviceMethod){Sys.Net.WebServiceProxy.invoke(a._servicePath,a._serviceMethod,false,{contextKey:contextKey?contextKey:a._contextKey},Function.createDelegate(a,a._onMethodComplete),Function.createDelegate(a,a._onMethodError),a._currentCallID);$common.updateFormToRefreshATDeviceBuffer()}}},_onMethodComplete:function(b,a){if(a!=this._currentCallID)return;this._setTargetHtml(b);this._setUpdating(false)},_onMethodError:function(b,c){var a=this;if(c!=a._currentCallID)return;if(b.get_timedOut())a._setTargetHtml(AjaxControlToolkit.Resources.DynamicPopulate_WebServiceTimeout);else a._setTargetHtml(String.format(AjaxControlToolkit.Resources.DynamicPopulate_WebServiceError,b.get_statusCode()));a._setUpdating(false)},_onPopulateTriggerClick:function(){this.populate(this._contextKey)},_setUpdating:function(b){var a=this;a.setStyle(b);if(!b){a._currentCallID=-1;a._populated=true;a.raisePopulated(a,Sys.EventArgs.Empty)}},_setTargetHtml:function(b){var a=this.get_element();if(a)if(a.tagName=="INPUT")a.value=b;else a.innerHTML=b},setStyle:function(c){var a=this,b=a.get_element();if(a._setUpdatingCssClass)if(!c){b.className=a._oldCss;a._oldCss=null}else{a._oldCss=b.className;b.className=a._setUpdatingCssClass}if(c&&a._clearDuringUpdate)a._setTargetHtml("")},get_ClearContentsDuringUpdate:function(){return this._clearDuringUpdate},set_ClearContentsDuringUpdate:function(a){if(this._clearDuringUpdate!=a){this._clearDuringUpdate=a;this.raisePropertyChanged("ClearContentsDuringUpdate")}},get_ContextKey:function(){return this._contextKey},set_ContextKey:function(a){if(this._contextKey!=a){this._contextKey=a;this.raisePropertyChanged("ContextKey")}},get_PopulateTriggerID:function(){return this._populateTriggerID},set_PopulateTriggerID:function(a){if(this._populateTriggerID!=a){this._populateTriggerID=a;this.raisePropertyChanged("PopulateTriggerID")}},get_ServicePath:function(){return this._servicePath},set_ServicePath:function(a){if(this._servicePath!=a){this._servicePath=a;this.raisePropertyChanged("ServicePath")}},get_ServiceMethod:function(){return this._serviceMethod},set_ServiceMethod:function(a){if(this._serviceMethod!=a){this._serviceMethod=a;this.raisePropertyChanged("ServiceMethod")}},get_cacheDynamicResults:function(){return this._cacheDynamicResults},set_cacheDynamicResults:function(a){if(this._cacheDynamicResults!=a){this._cacheDynamicResults=a;this.raisePropertyChanged("cacheDynamicResults")}},get_UpdatingCssClass:function(){return this._setUpdatingCssClass},set_UpdatingCssClass:function(a){if(this._setUpdatingCssClass!=a){this._setUpdatingCssClass=a;this.raisePropertyChanged("UpdatingCssClass")}},get_CustomScript:function(){return this._customScript},set_CustomScript:function(a){if(this._customScript!=a){this._customScript=a;this.raisePropertyChanged("CustomScript")}},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)},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)}};AjaxControlToolkit.DynamicPopulateBehavior.registerClass("AjaxControlToolkit.DynamicPopulateBehavior",AjaxControlToolkit.BehaviorBase);
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);
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)) }, onEnd: function() { var a = this;  $AA.FadeInAnimation.callBaseMethod(a, 'onEnd'); if (a._currentTarget) { if (a._max == 1) { a._currentTarget.style.removeAttribute('filter'); a._currentTarget.style.removeAttribute('opacity'); } } } };  $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);
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);
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Public License.
// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
// 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="../Animation/Animations.js" />
/// <reference path="../Animation/AnimationBehavior.js" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.PopupBehavior = function(element) {
    /// <summary>
    /// The PopupBehavior is used to show/hide an element at a position
    /// relative to another element
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" mayBeNull="false" domElement="true">
    /// The DOM element the behavior is associated with
    /// </param>
    AjaxControlToolkit.PopupBehavior.initializeBase(this, [element]);

    this._x = 0;
    this._y = 0;
    this._positioningMode = AjaxControlToolkit.PositioningMode.Absolute;
    this._parentElement = null;
    this._parentElementID = null;
    this._moveHandler = null;
    this._firstPopup = true;    
    this._originalParent = null;
    this._visible = false;
    
    // Generic animation behaviors that automatically build animations
    // from JSON descriptions
    this._onShow = null;
    this._onShowEndedHandler = null;
    this._onHide = null;
    this._onHideEndedHandler = null;
}
AjaxControlToolkit.PopupBehavior.prototype = {
    initialize: function() {
        /// <summary>
        /// Initialize the PopupBehavior
        /// </summary>
        AjaxControlToolkit.PopupBehavior.callBaseMethod(this, 'initialize');

        this._hidePopup();
        this.get_element().style.position = "absolute";

        // Create handlers for the animation ended events
        this._onShowEndedHandler = Function.createDelegate(this, this._onShowEnded);
        this._onHideEndedHandler = Function.createDelegate(this, this._onHideEnded);
    },

    dispose: function() {
        /// <summary>
        /// Dispose the PopupBehavior
        /// </summary>

        var element = this.get_element();
        if (element) {
            if (this._visible) {
                this.hide();
            }
            if (this._originalParent) {
                element.parentNode.removeChild(element);
                this._originalParent.appendChild(element);
                this._originalParent = null;
            }

            // Remove expando properties
            element._hideWindowedElementsIFrame = null;
        }
        this._parentElement = null;

        // Remove the animation ended events and wipe the animations
        // (we don't need to dispose them because that will happen
        // automatically in our base dispose)
        if (this._onShow && this._onShow.get_animation() && this._onShowEndedHandler) {
            this._onShow.get_animation().remove_ended(this._onShowEndedHandler);
        }
        this._onShowEndedHandler = null;
        this._onShow = null;
        if (this._onHide && this._onHide.get_animation() && this._onHideEndedHandler) {
            this._onHide.get_animation().remove_ended(this._onHideEndedHandler);
        }
        this._onHideEndedHandler = null;
        this._onHide = null;

        AjaxControlToolkit.PopupBehavior.callBaseMethod(this, 'dispose');
    },

    show: function() {
        /// <summary>
        /// Show the popup
        /// </summary>

        // Ignore requests to hide multiple times
        if (this._visible) {
            return;
        }

        var eventArgs = new Sys.CancelEventArgs();
        this.raiseShowing(eventArgs);
        if (eventArgs.get_cancel()) {
            return;
        }

        // Either show the popup or play an animation that does
        // (note: even if we're animating, we still show and position
        // the popup before hiding it again and playing the animation
        // which makes the animation much simpler)
        this._visible = true;
        var element = this.get_element();
        $common.setVisible(element, true);
        this.setupPopup();
        if (this._onShow) {
            $common.setVisible(element, false);
            this.onShow();
        } else {
            this.raiseShown(Sys.EventArgs.Empty);
        }
    },

    hide: function() {
        /// <summary>
        /// Hide the popup
        /// </summary>

        // Ignore requests to hide multiple times
        if (!this._visible) {
            return;
        }

        var eventArgs = new Sys.CancelEventArgs();
        this.raiseHiding(eventArgs);
        if (eventArgs.get_cancel()) {
            return;
        }

        // Either hide the popup or play an animation that does
        this._visible = false;
        if (this._onHide) {
            this.onHide();
        } else {
            this._hidePopup();
            this._hideCleanup();
        }
    },

    getBounds: function() {
        /// <summary>
        /// Get the expected bounds of the popup relative to its parent
        /// </summary>
        /// <returns type="Sys.UI.Bounds" mayBeNull="false">
        /// Bounds of the popup relative to its parent
        /// </returns>
        /// <remarks>
        /// The actual final position can only be calculated after it is
        /// initially set and we can verify it doesn't bleed off the edge
        /// of the screen.
        /// </remarks>

        var element = this.get_element();

        // offsetParent (doc element if absolutely positioned or no offsetparent available)
        var offsetParent = element.offsetParent || document.documentElement;

        // diff = difference in position between element's offsetParent and the element we will attach popup to.
        // this is basically so we can position the popup in the right spot even though it may not be absolutely positioned
        var diff;
        var parentBounds;
        if (this._parentElement) {
            // we will be positioning the element against the assigned parent
            parentBounds = $common.getBounds(this._parentElement);

            var offsetParentLocation = $common.getLocation(offsetParent);

            diff = { x: parentBounds.x - offsetParentLocation.x, y: parentBounds.y - offsetParentLocation.y };
        } else {
            // we will be positioning the element against the offset parent by default, since no parent element given
            parentBounds = $common.getBounds(offsetParent);
            diff = { x: 0, y: 0 };
        }

        // width/height of the element, needed for calculations that involve width like centering
        var width = element.offsetWidth - (element.clientLeft ? element.clientLeft * 2 : 0);
        var height = element.offsetHeight - (element.clientTop ? element.clientTop * 2 : 0);

        // Setting the width causes the element to grow by border+passing every
        // time.  But not setting it causes strange behavior in safari. Just set it once.
        if (this._firstpopup) {
            element.style.width = width + "px";
            this._firstpopup = false;
        }

        var position;
        switch (this._positioningMode) {
            case AjaxControlToolkit.PositioningMode.Center:
                position = {
                    x: Math.round(parentBounds.width / 2 - width / 2),
                    y: Math.round(parentBounds.height / 2 - height / 2)
                };
                break;
            case AjaxControlToolkit.PositioningMode.BottomLeft:
                position = {
                    x: 0,
                    y: parentBounds.height
                };
                break;
            case AjaxControlToolkit.PositioningMode.BottomRight:
                position = {
                    x: parentBounds.width - width,
                    y: parentBounds.height
                };
                break;
            case AjaxControlToolkit.PositioningMode.TopLeft:
                position = {
                    x: 0,
                    y: -element.offsetHeight
                };
                break;
            case AjaxControlToolkit.PositioningMode.TopRight:
                position = {
                    x: parentBounds.width - width,
                    y: -element.offsetHeight
                };
                break;
            case AjaxControlToolkit.PositioningMode.Right:
                position = {
                    x: parentBounds.width,
                    y: 0
                };
                break;
            case AjaxControlToolkit.PositioningMode.Left:
                position = {
                    x: -element.offsetWidth,
                    y: 0
                };
                break;
            default:
                position = { x: 0, y: 0 };
        }
        position.x += this._x + diff.x;
        position.y += this._y + diff.y;

        return new Sys.UI.Bounds(position.x, position.y, width, height);
    },

    adjustPopupPosition: function(bounds) {
        /// <summary>
        /// Adjust the position of the popup after it's originally bet set
        /// to make sure that it's visible on the page.
        /// </summary>
        /// <param name="bounds" type="Sys.UI.Bounds" mayBeNull="true" optional="true">
        /// Original bounds of the parent element
        /// </param>

        var element = this.get_element();
        if (!bounds) {
            bounds = this.getBounds();
        }

        // Get the new bounds now that we've shown the popup
        var newPosition = $common.getBounds(element);
        var updateNeeded = false;

        if (newPosition.x < 0) {
            bounds.x -= newPosition.x;
            updateNeeded = true;
        }
        if (newPosition.y < 0) {
            bounds.y -= newPosition.y;
            updateNeeded = true;
        }

        // If the popup was off the screen, reposition it
        if (updateNeeded) {
            $common.setLocation(element, bounds);
        }
    },

    addBackgroundIFrame: function() {
        /// <summary>
        /// Add an empty IFRAME behind the popup (for IE6 only) so that SELECT, etc., won't
        /// show through the popup.
        /// </summary>

        // Get the child frame
        var element = this.get_element();
        if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) {
            var childFrame = element._hideWindowedElementsIFrame;

            // Create the child frame if it wasn't found
            if (!childFrame) {
                childFrame = document.createElement("iframe");
                childFrame.src = "javascript:'<html></html>';";
                childFrame.style.position = "absolute";
                childFrame.style.display = "none";
                childFrame.scrolling = "no";
                childFrame.frameBorder = "0";
                childFrame.tabIndex = "-1";
                childFrame.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
                element.parentNode.insertBefore(childFrame, element);
                element._hideWindowedElementsIFrame = childFrame;
                this._moveHandler = Function.createDelegate(this, this._onMove);
                Sys.UI.DomEvent.addHandler(element, "move", this._moveHandler);
            }

            // Position the frame exactly behind the element
            $common.setBounds(childFrame, $common.getBounds(element));

            childFrame.style.left = element.style.left;
            childFrame.style.top = element.style.top;

            childFrame.style.display = element.style.display;

            if (element.currentStyle && element.currentStyle.zIndex) {
                childFrame.style.zIndex = element.currentStyle.zIndex;
            } else if (element.style.zIndex) {
                childFrame.style.zIndex = element.style.zIndex;
            }
        }
    },

    setupPopup: function() {
        /// <summary>
        /// Position the popup relative to its parent
        /// </summary>

        var element = this.get_element();
        var bounds = this.getBounds();
        $common.setLocation(element, bounds);

        // Tweak the position, set the zIndex, and add the background iframe in IE6
        this.adjustPopupPosition(bounds);
        element.zIndex = 1000;
        this.addBackgroundIFrame();
    },

    _hidePopup: function() {
        /// <summary>
        /// Internal hide implementation
        /// </summary>

        var element = this.get_element();
        $common.setVisible(element, false);
        if (element.originalWidth) {
            element.style.width = element.originalWidth + "px";
            element.originalWidth = null;
        }
    },

    _hideCleanup: function() {
        /// <summary>
        /// Perform cleanup after hiding the element
        /// </summary>

        var element = this.get_element();

        // Remove the tracking handler
        if (this._moveHandler) {
            Sys.UI.DomEvent.removeHandler(element, "move", this._moveHandler);
            this._moveHandler = null;
        }

        // Hide the child frame
        if (Sys.Browser.agent === Sys.Browser.InternetExplorer) {
            var childFrame = element._hideWindowedElementsIFrame;
            if (childFrame) {
                childFrame.style.display = "none";
            }
        }

        this.raiseHidden(Sys.EventArgs.Empty);
    },

    _onMove: function() {
        /// <summary>
        /// Track the popup's movements so the hidden IFrame (IE6 only) can
        /// be moved along with it
        /// </summary>

        var element = this.get_element();
        if (element._hideWindowedElementsIFrame) {
            element.parentNode.insertBefore(element._hideWindowedElementsIFrame, element);
            element._hideWindowedElementsIFrame.style.top = element.style.top;
            element._hideWindowedElementsIFrame.style.left = element.style.left;
        }
    },

    get_onShow: function() {
        /// <value type="String" mayBeNull="true">
        /// Generic OnShow Animation's JSON definition
        /// </value>
        return this._onShow ? this._onShow.get_json() : null;
    },
    set_onShow: function(value) {
        if (!this._onShow) {
            this._onShow = new AjaxControlToolkit.Animation.GenericAnimationBehavior(this.get_element());
            this._onShow.initialize();
        }
        this._onShow.set_json(value);
        var animation = this._onShow.get_animation();
        if (animation) {
            animation.add_ended(this._onShowEndedHandler);
        }
        this.raisePropertyChanged('onShow');
    },
    get_onShowBehavior: function() {
        /// <value type="AjaxControlToolkit.Animation.GenericAnimationBehavior">
        /// Generic OnShow Animation's behavior
        /// </value>
        return this._onShow;
    },
    onShow: function() {
        /// <summary>
        /// Play the OnShow animation
        /// </summary>
        /// <returns />
        if (this._onShow) {
            if (this._onHide) {
                this._onHide.quit();
            }
            this._onShow.play();
        }
    },
    _onShowEnded: function() {
        /// <summary>
        /// Handler for the OnShow Animation's Ended event
        /// </summary>

        // Make sure the popup is where it belongs
        this.adjustPopupPosition();
        this.addBackgroundIFrame();

        this.raiseShown(Sys.EventArgs.Empty);
    },

    get_onHide: function() {
        /// <value type="String" mayBeNull="true">
        /// Generic OnHide Animation's JSON definition
        /// </value>
        return this._onHide ? this._onHide.get_json() : null;
    },
    set_onHide: function(value) {
        if (!this._onHide) {
            this._onHide = new AjaxControlToolkit.Animation.GenericAnimationBehavior(this.get_element());
            this._onHide.initialize();
        }
        this._onHide.set_json(value);
        var animation = this._onHide.get_animation();
        if (animation) {
            animation.add_ended(this._onHideEndedHandler);
        }
        this.raisePropertyChanged('onHide');
    },
    get_onHideBehavior: function() {
        /// <value type="AjaxControlToolkit.Animation.GenericAnimationBehavior">
        /// Generic OnHide Animation's behavior
        /// </value>
        return this._onHide;
    },
    onHide: function() {
        /// <summary>
        /// Play the OnHide animation
        /// </summary>
        /// <returns />
        if (this._onHide) {
            if (this._onShow) {
                this._onShow.quit();
            }
            this._onHide.play();
        }
    },
    _onHideEnded: function() {
        /// <summary>
        /// Handler for the OnHide Animation's Ended event
        /// </summary>

        this._hideCleanup();
    },

    get_parentElement: function() {
        /// <value type="Sys.UI.DomElement" domElement="true">
        /// Parent dom element.
        /// </value>

        if (!this._parentElement && this._parentElementID) {
            this.set_parentElement($get(this._parentElementID));
            Sys.Debug.assert(this._parentElement != null, String.format(AjaxControlToolkit.Resources.PopupExtender_NoParentElement, this._parentElementID));
        }
        return this._parentElement;
    },
    set_parentElement: function(element) {
        this._parentElement = element;
        this.raisePropertyChanged('parentElement');
    },

    get_parentElementID: function() {
        /// <value type="String">
        /// Parent dom element.
        /// </value>

        if (this._parentElement) {
            return this._parentElement.id
        }
        return this._parentElementID;
    },
    set_parentElementID: function(elementID) {
        this._parentElementID = elementID;
        if (this.get_isInitialized()) {
            this.set_parentElement($get(elementID));
        }
    },

    get_positioningMode: function() {
        /// <value type="AjaxControlToolkit.PositioningMode">
        /// Positioning mode.
        /// </value>
        return this._positioningMode;
    },
    set_positioningMode: function(mode) {
        this._positioningMode = mode;
        this.raisePropertyChanged('positioningMode');
    },

    get_x: function() {
        /// <value type="Number">
        /// X coordinate.
        /// </value>
        return this._x;
    },
    set_x: function(value) {
        if (value != this._x) {
            this._x = value;

            // Reposition the popup if it's already showing
            if (this._visible) {
                this.setupPopup();
            }
            this.raisePropertyChanged('x');
        }
    },

    get_y: function() {
        /// <value type="Number">
        /// Y coordinate.
        /// </value>
        return this._y;
    },
    set_y: function(value) {
        if (value != this._y) {
            this._y = value;

            // Reposition the popup if it's already showing
            if (this._visible) {
                this.setupPopup();
            }
            this.raisePropertyChanged('y');
        }
    },

    get_visible: function() {
        /// <value type="Boolean" mayBeNull="false">
        /// Whether or not the popup is currently visible
        /// </value>
        return this._visible;
    },

    add_showing: function(handler) {
        /// <summary>
        /// Add an event handler for the showing event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('showing', handler);
    },
    remove_showing: function(handler) {
        /// <summary>
        /// Remove an event handler from the showing event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('showing', handler);
    },
    raiseShowing: function(eventArgs) {
        /// <summary>
        /// Raise the showing event
        /// </summary>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event arguments for the showing event
        /// </param>
        /// <returns />

        var handler = this.get_events().getHandler('showing');
        if (handler) {
            handler(this, eventArgs);
        }
    },

    add_shown: function(handler) {
        /// <summary>
        /// Add an event handler for the shown event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('shown', handler);
    },
    remove_shown: function(handler) {
        /// <summary>
        /// Remove an event handler from the shown event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('shown', handler);
    },
    raiseShown: function(eventArgs) {
        /// <summary>
        /// Raise the shown event
        /// </summary>
        /// <param name="eventArgs" type="Sys.EventArgs" mayBeNull="false">
        /// Event arguments for the shown event
        /// </param>
        /// <returns />

        var handler = this.get_events().getHandler('shown');
        if (handler) {
            handler(this, eventArgs);
        }
    },

    add_hiding: function(handler) {
        /// <summary>
        /// Add an event handler for the hiding event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('hiding', handler);
    },
    remove_hiding: function(handler) {
        /// <summary>
        /// Remove an event handler from the hiding event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('hiding', handler);
    },
    raiseHiding: function(eventArgs) {
        /// <summary>
        /// Raise the hiding event
        /// </summary>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event arguments for the hiding event
        /// </param>
        /// <returns />

        var handler = this.get_events().getHandler('hiding');
        if (handler) {
            handler(this, eventArgs);
        }
    },

    add_hidden: function(handler) {
        /// <summary>
        /// Add an event handler for the hidden event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('hidden', handler);
    },
    remove_hidden: function(handler) {
        /// <summary>
        /// Remove an event handler from the hidden event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('hidden', handler);
    },
    raiseHidden: function(eventArgs) {
        /// <summary>
        /// Raise the hidden event
        /// </summary>
        /// <param name="eventArgs" type="Sys.EventArgs" mayBeNull="false">
        /// Event arguments for the hidden event
        /// </param>
        /// <returns />

        var handler = this.get_events().getHandler('hidden');
        if (handler) {
            handler(this, eventArgs);
        }
    }
}
AjaxControlToolkit.PopupBehavior.registerClass('AjaxControlToolkit.PopupBehavior', AjaxControlToolkit.BehaviorBase);
//AjaxControlToolkit.PopupBehavior.descriptor = {
//    properties: [   {name: 'parentElement', attributes: [ Sys.Attributes.Element, true ] },
//                    {name: 'positioningMode', type: AjaxControlToolkit.PositioningMode},
//                    {name: 'x', type: Number},
//                    {name: 'y', type: Number} ],
//    events: [   {name: 'show'},
//                {name: 'hide'} ]
//}

AjaxControlToolkit.PositioningMode = function() {
    /// <summary>
    /// Positioning mode describing how the popup should be positioned
    /// relative to its specified parent
    /// </summary>
    /// <field name="Absolute" type="Number" integer="true" />
    /// <field name="Center" type="Number" integer="true" />
    /// <field name="BottomLeft" type="Number" integer="true" />
    /// <field name="BottomRight" type="Number" integer="true" />
    /// <field name="TopLeft" type="Number" integer="true" />
    /// <field name="TopRight" type="Number" integer="true" />
    /// <field name="Right" type="Number" integer="true" />
    /// <field name="Left" type="Number" integer="true" />
    throw Error.invalidOperation();
}
AjaxControlToolkit.PositioningMode.prototype = {
    Absolute: 0,
    Center: 1,
    BottomLeft: 2,
    BottomRight: 3,
    TopLeft: 4,
    TopRight: 5,
    Right: 6,
    Left: 7
}
AjaxControlToolkit.PositioningMode.registerEnum('AjaxControlToolkit.PositioningMode');

// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Permissive 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="../DynamicPopulate/DynamicPopulateBehavior.js" />
/// <reference path="../Compat/Timer/Timer.js" />
/// <reference path="../Animation/Animations.js" />
/// <reference path="../Animation/AnimationBehavior.js" />
/// <reference path="../PopupExtender/PopupBehavior.js" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.PopupControlBehavior = function(element) {
    /// <summary>
    /// The PopupControlBehavior opens a popup window next to the target element
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// DOM element associated with the behavior
    /// </param>
    AjaxControlToolkit.PopupControlBehavior.initializeBase(this, [element]);

    // Properties
    this._popupControlID = null;
    this._commitProperty = null;
    this._commitScript = null;
    this._position = null;
    this._offsetX = 0;
    this._offsetY = 0;
    this._extenderControlID = null;
    this._closeOnSecondClick = false;

    // Variables
    this._popupElement = null;
    this._popupBehavior = null;
    this._popupVisible = false;
    this._focusHandler = null;
    this._popupKeyDownHandler = null;
    this._popupClickHandler = null;
    this._bodyClickHandler = null;
    this._onShowJson = null;
    this._onHideJson = null;
}
AjaxControlToolkit.PopupControlBehavior.prototype = {
    initialize: function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, 'initialize');

        // Identify popup element from control id
        var e = this.get_element();
        this._popupElement = $get(this._popupControlID);

        // Hook up a PopupBehavior
        this._popupBehavior = $create(AjaxControlToolkit.PopupBehavior, { 'id': this.get_id() + 'PopupBehavior', 'parentElement': e }, null, null, this._popupElement);

        // Create the animations (if they were set before initialize was called)
        if (this._onShowJson) {
            this._popupBehavior.set_onShow(this._onShowJson);
        }
        if (this._onHideJson) {
            this._popupBehavior.set_onHide(this._onHideJson);
        }

        // Create delegates
        this._focusHandler = Function.createDelegate(this, this._onFocus);
        this._popupClickHandler = Function.createDelegate(this, this._onPopupClick);
        this._bodyClickHandler = Function.createDelegate(this, this._onBodyClick);
        this._popupKeyDownHandler = Function.createDelegate(this, this._onPopupKeyDown);

        // Attach events
        $addHandler(e, 'focus', this._focusHandler);
        $addHandler(e, 'click', this._focusHandler);  // So that a dismissed popup can be more easily re-popped
        $addHandler(document.body, 'click', this._bodyClickHandler);
        $addHandler(this._popupElement, 'click', this._popupClickHandler);
        $addHandler(this._popupElement, 'keydown', this._popupKeyDownHandler);

        // Need to know when partial updates complete
        this.registerPartialUpdateEvents();

        // If this popup was visible before what seems to have been a partial update,
        // make it visible again now
        if (AjaxControlToolkit.PopupControlBehavior.__VisiblePopup && (this.get_id() == AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.get_id())) {
            this._onFocus(null);
        }
    },

    dispose: function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        var e = this.get_element();

        this._onShowJson = null;
        this._onHideJson = null;

        if (this._popupBehavior) {
            this._popupBehavior.dispose();
            this._popupBehavior = null;
        }
        if (this._focusHandler) {
            $removeHandler(e, 'focus', this._focusHandler);
            $removeHandler(e, 'click', this._focusHandler);
            this._focusHandler = null;
        }
        if (this._bodyClickHandler) {
            $removeHandler(document.body, 'click', this._bodyClickHandler);
            this._bodyClickHandler = null;
        }
        if (this._popupClickHandler) {
            $removeHandler(this._popupElement, 'click', this._popupClickHandler);
            this._popupClickHandler = null;
        }
        if (this._popupKeyDownHandler) {
            $removeHandler(this._popupElement, 'keydown', this._popupKeyDownHandler);
            this._popupKeyDownHandler = null;
        }
        AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, 'dispose');
    },

    showPopup: function() {
        /// <summary>
        /// Display the popup
        /// </summary>

        var old = AjaxControlToolkit.PopupControlBehavior.__VisiblePopup;
        if (old && old._popupBehavior) {
            old.hidePopup();
        }

        AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, 'populate');

        this._popupBehavior.set_x(this._getLeftOffset());
        this._popupBehavior.set_y(this._getTopOffset());
        this._popupBehavior.show();

        this._popupVisible = true;
        AjaxControlToolkit.PopupControlBehavior.__VisiblePopup = this;
    },

    hidePopup: function() {
        /// <summary>
        /// Hide the popup
        /// </summary>

        this._popupBehavior.hide();
        this._popupVisible = false;
        AjaxControlToolkit.PopupControlBehavior.__VisiblePopup = null;
    },

    _onFocus: function(e) {
        /// <summary>
        /// Show the popup when its control is focused
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent" mayBeNull="true">
        /// Event info
        /// </param>

        // Set the popup position and display it
        if (!this._popupVisible) {
            this.showPopup();

            if (e) {
                e.stopPropagation();
            }
        }
        else {
            if (this._closeOnSecondClick == false) {
                if (e) {
                    e.stopPropagation();
                }
            }
        }
    },

    _onPopupKeyDown: function(e) {
        /// <summary>
        /// Handle key presses in the popup element
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">
        /// Event info
        /// </param>

        // Handle key presses in the popup element
        if (this._popupVisible && e.keyCode == 27 /* Escape */) {
            // Return focus to the control
            this.get_element().focus();
        }
    },

    _onPopupClick: function(e) {
        /// <summary>
        /// Click handler for the popup
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">
        /// Event info
        /// </param>
        if (this._closeOnSecondClick == false) {
            e.stopPropagation();
        }
    },

    _onBodyClick: function() {
        /// <summary>
        /// Handler for the HTML body tag's click event
        /// </summary>

        // Hide the popup if something other than our target or popup
        // was clicked (since each of these stop the event from bubbling
        // up to the body)
        if (this._popupVisible) {
            this.hidePopup();
        }
    },

    // Called automatically when a page load/postback happens
    _close: function(result) {
        /// <summary>
        /// Close the popup
        /// </summary>
        /// <param name="result" type="String">
        /// Result obtained from committing the popup
        /// </param>

        // Look at result of popup
        var e = this.get_element();

        if (null != result) {
            if ('$$CANCEL$$' != result) {
                // Result is to be committed
                if (this._commitProperty) {
                    // Use the specified property
                    e[this._commitProperty] = result;
                } else if ('text' == e.type) {
                    // Use the default property
                    e.value = result;
                } else {
                    Sys.Debug.assert(false, String.format(AjaxControlToolkit.Resources.PopupControl_NoDefaultProperty, e.id, e.type));
                }
                // Additionally run commit script if present
                if (this._commitScript) {
                    eval(this._commitScript);
                }
            }

            // Hide the popup
            this.hidePopup();
        }
    },

    _partialUpdateEndRequest: function(sender, endRequestEventArgs) {
        /// <summary>
        /// Handler for UpdatePanel partial postback notifications
        /// </summary>
        /// <param name="sender" type="Object">
        /// Sender
        /// </param>
        /// <param name="endRequestEventArgs" type="Sys.WebForms.EndRequestEventArgs">
        /// Event arguments
        /// </param>
        AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, '_partialUpdateEndRequest', [sender, endRequestEventArgs]);

        if (this.get_element()) {
            // Look up result by element's ID
            var result = endRequestEventArgs.get_dataItems()[this.get_element().id];

            // If unsuccessful, look up result by proxy ID
            if ((undefined === result) &&
                AjaxControlToolkit.PopupControlBehavior.__VisiblePopup &&
                (this.get_id() == AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.get_id())) {
                result = endRequestEventArgs.get_dataItems()["_PopupControl_Proxy_ID_"];
            }

            // If result available, apply it
            if (undefined !== result) {
                this._close(result);
            }
        }
    },

    _onPopulated: function(sender, eventArgs) {
        /// <summary>
        /// Handler for DynamicPopulate completion
        /// </summary>
        /// <param name="sender" type="Object">
        /// Sender
        /// </param>
        /// <param name="eventArgs" type="Sys.EventArgs">
        /// Event arguments
        /// </param>
        AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, '_onPopulated', [sender, eventArgs]);

        // Dynamic populate may have added content; re-layout to accomodate it
        if (this._popupVisible) {
            this._popupBehavior.show();
        }
    },

    _getLeftOffset: function() {
        /// <summary>
        /// Get the left offset for the popup
        /// </summary>
        /// <returns type="Number" integer="true">
        /// Left offset for the popup
        /// </returns>

        // Get the left offset for the popup
        if (AjaxControlToolkit.PopupControlPopupPosition.Left == this._position) {
            return (-1 * this.get_element().offsetWidth) + this._offsetX;
        } else if (AjaxControlToolkit.PopupControlPopupPosition.Right == this._position) {
            return this.get_element().offsetWidth + this._offsetX;
        } else {
            return this._offsetX;
        }
    },

    _getTopOffset: function() {
        /// <summary>
        /// Get the top offset for the popup
        /// </summary>
        /// <returns type="Number" integer="true">
        /// Top offset for the popup
        /// </returns>

        // Get the top offset for the popup
        var yoffSet;
        if (AjaxControlToolkit.PopupControlPopupPosition.Top == this._position) {
            yoffSet = (-1 * this.get_element().offsetHeight) + this._offsetY;
        } else if (AjaxControlToolkit.PopupControlPopupPosition.Bottom == this._position) {
            yoffSet = this.get_element().offsetHeight + this._offsetY;
        } else {
            yoffSet = this._offsetY;
        }

        return yoffSet;
    },

    get_onShow: function() {
        /// <value type="String" mayBeNull="true">
        /// Generic OnShow Animation's JSON definition
        /// </value>
        return this._popupBehavior ? this._popupBehavior.get_onShow() : this._onShowJson;
    },
    set_onShow: function(value) {
        if (this._popupBehavior) {
            this._popupBehavior.set_onShow(value)
        } else {
            this._onShowJson = value;
        }
        this.raisePropertyChanged('onShow');
    },
    get_onShowBehavior: function() {
        /// <value type="AjaxControlToolkit.Animation.GenericAnimationBehavior">
        /// Generic OnShow Animation's behavior
        /// </value>
        return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null;
    },
    onShow: function() {
        /// <summary>
        /// Play the OnShow animation
        /// </summary>
        /// <returns />
        if (this._popupBehavior) {
            this._popupBehavior.onShow();
        }
    },

    get_onHide: function() {
        /// <value type="String" mayBeNull="true">
        /// Generic OnHide Animation's JSON definition
        /// </value>
        return this._popupBehavior ? this._popupBehavior.get_onHide() : this._onHideJson;
    },
    set_onHide: function(value) {
        if (this._popupBehavior) {
            this._popupBehavior.set_onHide(value)
        } else {
            this._onHideJson = value;
        }
        this.raisePropertyChanged('onHide');
    },
    get_onHideBehavior: function() {
        /// <value type="AjaxControlToolkit.Animation.GenericAnimationBehavior">
        /// Generic OnHide Animation's behavior
        /// </value>
        return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null;
    },
    onHide: function() {
        /// <summary>
        /// Play the OnHide animation
        /// </summary>
        /// <returns />
        if (this._popupBehavior) {
            this._popupBehavior.onHide();
        }
    },

    get_PopupControlID: function() {
        /// <value type="String">
        /// The ID of the control to display
        /// </value>
        return this._popupControlID;
    },
    set_PopupControlID: function(value) {
        if (this._popupControlID != value) {
            this._popupControlID = value;
            this.raisePropertyChanged('PopupControlID');
        }
    },

    get_CommitProperty: function() {
        /// <value type="String" mayBeNull="true" optional="true">
        /// The property on the control being extended that should be set with the result of the popup
        /// </value>
        return this._commitProperty;
    },
    set_CommitProperty: function(value) {
        if (this._commitProperty != value) {
            this._commitProperty = value;
            this.raisePropertyChanged('CommitProperty');
        }
    },

    get_CommitScript: function() {
        /// <value type="String" mayBeNull="true" optional="true">
        /// Additional script to run after setting the result of the popup
        /// </value>
        return this._commitScript;
    },
    set_CommitScript: function(value) {
        if (this._commitScript != value) {
            this._commitScript = value;
            this.raisePropertyChanged('CommitScript');
        }
    },

    get_Position: function() {
        /// <value type="AjaxControlToolkit.PopupControlPopupPosition">
        /// Where the popup should be positioned relative to the target control. (Left, Right, Top, Bottom, Center)
        /// </value>
        return this._position;
    },
    set_Position: function(value) {
        if (this._position != value) {
            this._position = value;
            this.raisePropertyChanged('Position');
        }
    },

    // TODO: Is this used anywhere?
    get_ExtenderControlID: function() {
        /// <value type="String">
        /// ID of the extender control
        /// </value>
        return this._extenderControlID;
    },
    set_ExtenderControlID: function(value) {
        if (this._extenderControlID != value) {
            this._extenderControlID = value;
            this.raisePropertyChanged('ExtenderControlID');
        }
    },

    get_OffsetX: function() {
        /// <value type="Number" integer="true">
        /// The number of pixels to horizontally offset the Popup from its default position
        /// </value>
        return this._offsetX;
    },
    set_OffsetX: function(value) {
        if (this._offsetX != value) {
            this._offsetX = value;
            this.raisePropertyChanged('OffsetX');
        }
    },

    get_OffsetY: function() {
        /// <value type="Number" integer="true">
        /// The number of pixels to vertically offset the Popup from its default position
        /// </value>
        return this._offsetY;
    },
    set_OffsetY: function(value) {
        if (this._offsetY != value) {
            this._offsetY = value;
            this.raisePropertyChanged('OffsetY');
        }
    },

    get_CloseOnSecondClick: function() {
        /// <value type="Number" integer="true">
        /// The number of pixels to vertically offset the Popup from its default position
        /// </value>
        return this._closeOnSecondClick;
    },
    set_CloseOnSecondClick: function(value) {
        if (this._closeOnSecondClick != value) {
            this._closeOnSecondClick = value;
            this.raisePropertyChanged('CloseOnSecondClick');
        }
    },

    get_PopupVisible: function() {
        /// <value type="Boolean">
        /// Whether the popup control is currently visible
        /// </value>
        return this._popupVisible;
    }
}
AjaxControlToolkit.PopupControlBehavior.registerClass('AjaxControlToolkit.PopupControlBehavior', AjaxControlToolkit.DynamicPopulateBehaviorBase);

// This global variable tracks the currently visible popup.  Automatically
// hiding the popup when focus is lost does not work with our mechanism to
// hide the popup when something else is clicked... So we will instead go for
// the weaker strategy of letting at most one popup be visible at a time.
AjaxControlToolkit.PopupControlBehavior.__VisiblePopup = null;


AjaxControlToolkit.PopupControlPopupPosition = function() {
    /// <summary>
    /// Position of the popup relative to the target control
    /// </summary>
    /// <field name="Center" type="Number" integer="true" />
    /// <field name="Top" type="Number" integer="true" />
    /// <field name="Left" type="Number" integer="true" />
    /// <field name="Bottom" type="Number" integer="true" />
    /// <field name="Right" type="Number" integer="true" />
    throw Error.invalidOperation();
}
AjaxControlToolkit.PopupControlPopupPosition.prototype = {
    Center : 0,
    Top : 1,
    Left : 2,
    Bottom : 3,
    Right : 4
}
AjaxControlToolkit.PopupControlPopupPosition.registerEnum("AjaxControlToolkit.PopupControlPopupPosition", false);

Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.TextBoxWatermarkBehavior=function(c){var b=null,a=this;AjaxControlToolkit.TextBoxWatermarkBehavior.initializeBase(a,[c]);a._watermarkText=b;a._watermarkCssClass=b;a._focusHandler=b;a._blurHandler=b;a._keyPressHandler=b;a._propertyChangedHandler=b;a._watermarkChangedHandler=b;a._oldClassName=b;a._clearedForSubmit=b;a._maxLength=b;if(typeof WebForm_OnSubmit=="function"&&!AjaxControlToolkit.TextBoxWatermarkBehavior._originalWebForm_OnSubmit){AjaxControlToolkit.TextBoxWatermarkBehavior._originalWebForm_OnSubmit=WebForm_OnSubmit;WebForm_OnSubmit=AjaxControlToolkit.TextBoxWatermarkBehavior.WebForm_OnSubmit}};AjaxControlToolkit.TextBoxWatermarkBehavior.prototype={initialize:function(){var a=this;AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(a,"initialize");var b=a.get_element(),e=false,c=AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(a,"get_ClientState");if(c!=null&&c!=""){e=c=="Focused";AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(a,"set_ClientState",null)}a._oldClassName=b.className;a._focusHandler=Function.createDelegate(a,a._onFocus);a._blurHandler=Function.createDelegate(a,a._onBlur);a._keyPressHandler=Function.createDelegate(a,a._onKeyPress);$addHandler(b,"focus",a._focusHandler);$addHandler(b,"blur",a._blurHandler);$addHandler(b,"keypress",a._keyPressHandler);a.registerPropertyChanged();var f=AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).get_Current(),d=AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element());if(""==f||a._watermarkText==f){d.set_Watermark(a._watermarkText);d.set_IsWatermarked(true)}if(e)a._onFocus();else{b.blur();a._onBlur()}a._clearedForSubmit=false;a.registerPartialUpdateEvents();a._watermarkChangedHandler=Function.createDelegate(a,a._onWatermarkChanged);d.add_WatermarkChanged(a._watermarkChangedHandler)},dispose:function(){var b=null,a=this,c=a.get_element();if(a._watermarkChangedHandler){AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).remove_WatermarkChanged(a._watermarkChangedHandler);a._watermarkChangedHandler=b}if(c.control&&a._propertyChangedHandler){c.control.remove_propertyChanged(a._propertyChangedHandler);a._propertyChangedHandler=b}if(a._focusHandler){$removeHandler(c,"focus",a._focusHandler);a._focusHandler=b}if(a._blurHandler){$removeHandler(c,"blur",a._blurHandler);a._blurHandler=b}if(a._keyPressHandler){$removeHandler(c,"keypress",a._keyPressHandler);a._keyPressHandler=b}if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).get_IsWatermarked())a.clearText(false);AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(a,"dispose")},_onWatermarkChanged:function(){if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked())this._onBlur();else this._onFocus()},clearText:function(c){var a=this.get_element(),b=AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a);b.set_Value("");b.set_IsWatermarked(false);if(c){a.setAttribute("autocomplete","off");a.select()}},_onFocus:function(c){var a=this,b=a.get_element();if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(b).get_IsWatermarked())a.clearText(c?true:false);b.className=a._oldClassName;if(a._maxLength>0){a.get_element().maxLength=a._maxLength;a._maxLength=null}},_onBlur:function(){var a=this,b=AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element());if(""==b.get_Current()||b.get_IsWatermarked()){if(a.get_element().maxLength>0&&a._watermarkText.length>a.get_element().maxLength){a._maxLength=a.get_element().maxLength;a.get_element().maxLength=a._watermarkText.length}a._applyWatermark()}},_applyWatermark:function(){var a=this,b=AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element());b.set_Watermark(a._watermarkText);b.set_IsWatermarked(true);if(a._watermarkCssClass)a.get_element().className=a._watermarkCssClass},_onKeyPress:function(){AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).set_IsWatermarked(false)},registerPropertyChanged:function(){var a=this,b=a.get_element();if(b.control&&!a._propertyChangedHandler){a._propertyChangedHandler=Function.createDelegate(a,a._onPropertyChanged);b.control.add_propertyChanged(a._propertyChangedHandler)}},_onPropertyChanged:function(b,a){if("text"==a.get_propertyName())this.set_Text(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_Current())},_onSubmit:function(){if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_IsWatermarked()){this.clearText(false);this._clearedForSubmit=true}},_partialUpdateEndRequest:function(c,b){var a=this;AjaxControlToolkit.TextBoxWatermarkBehavior.callBaseMethod(a,"_partialUpdateEndRequest",[c,b]);if(a.get_element()&&a._clearedForSubmit){a.get_element().blur();a._onBlur();a._clearedForSubmit=false}},get_WatermarkText:function(){return this._watermarkText},set_WatermarkText:function(b){var a=this;if(a._watermarkText!=b){a._watermarkText=b;if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).get_IsWatermarked())a._applyWatermark();a.raisePropertyChanged("WatermarkText")}},get_WatermarkCssClass:function(){return this._watermarkCssClass},set_WatermarkCssClass:function(b){var a=this;if(a._watermarkCssClass!=b){a._watermarkCssClass=b;if(AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).get_IsWatermarked())a._applyWatermark();a.raisePropertyChanged("WatermarkCssClass")}},get_Text:function(){return AjaxControlToolkit.TextBoxWrapper.get_Wrapper(this.get_element()).get_Value()},set_Text:function(b){var a=this;if(""==b){AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).set_Current("");a.get_element().blur();a._onBlur()}else{a._onFocus();AjaxControlToolkit.TextBoxWrapper.get_Wrapper(a.get_element()).set_Current(b)}}};AjaxControlToolkit.TextBoxWatermarkBehavior.registerClass("AjaxControlToolkit.TextBoxWatermarkBehavior",AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.TextBoxWatermarkBehavior.WebForm_OnSubmit=function(){var d=AjaxControlToolkit.TextBoxWatermarkBehavior._originalWebForm_OnSubmit();if(d){var b=Sys.Application.getComponents();for(var a=0;a<b.length;a++){var c=b[a];if(AjaxControlToolkit.TextBoxWatermarkBehavior.isInstanceOfType(c))c._onSubmit()}}return d};
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.HoverBehavior=function(c){var b=null,a=this;AjaxControlToolkit.HoverBehavior.initializeBase(a,[c]);a._elementHandlers=b;a._hoverElementHandlers=b;a._hoverElement=b;a._hoverCount=0;a._unhoverDelay=0;a._hoverDelay=0;a._hoverScript=b;a._unhoverScript=b;a._hoverFired=false};AjaxControlToolkit.HoverBehavior.prototype={_setupHandlersArray:function(){var a=this,b=[];b[0]=Function.createDelegate(a,a._onHover);b[1]=Function.createDelegate(a,a._onUnhover);return b},get_elementHandlers:function(){var a=this;if(!a._elementHandlers)a._elementHandlers=a._setupHandlersArray();return a._elementHandlers},get_hoverElementHandlers:function(){var a=this;if(!a._hoverElementHandlers)a._hoverElementHandlers=a._setupHandlersArray();return a._hoverElementHandlers},get_hoverElement:function(){return this._hoverElement},set_hoverElement:function(b){var a=this;if(b!=a._hoverElement){if(a._hoverElement)a._setupHandlers(a._hoverElement,a.get_hoverElementHandlers(),false);a._hoverElement=b;if(a._hoverElement)a._setupHandlers(a._hoverElement,a.get_hoverElementHandlers(),true)}},get_hoverDelay:function(){return this._hoverDelay},set_hoverDelay:function(a){this._hoverDelay=a;this.raisePropertyChanged("hoverDelay")},get_hoverScript:function(){return this._hoverScript},set_hoverScript:function(a){this._hoverScript=a},get_unhoverDelay:function(){return this._unhoverDelay},set_unhoverDelay:function(a){this._unhoverDelay=a;this.raisePropertyChanged("unhoverDelay")},get_unhoverScript:function(){return this._unhoverScript},set_unhoverScript:function(a){this._unhoverScript=a},dispose:function(){var a=this,c=a.get_element();if(a._elementHandlers){var b=a.get_elementHandlers();a._setupHandlers(c,b,false);a._elementHandlers=null}if(a._hoverElement){var b=a.get_hoverElementHandlers();a._setupHandlers(a._hoverElement,b,false);a._hoverElement=null}AjaxControlToolkit.HoverBehavior.callBaseMethod(a,"dispose")},initialize:function(){var a=this;AjaxControlToolkit.HoverBehavior.callBaseMethod(a,"initialize");var b=a.get_elementHandlers();a._setupHandlers(a.get_element(),b,true);if(a._hoverElement){b=a.get_hoverElementHandlers();a._setupHandlers(a._hoverElement,b,true)}},add_hover:function(a){this.get_events().addHandler("hover",a)},remove_hover:function(a){this.get_events().removeHandler("hover",a)},_fireHover:function(){var a=this;if(!a._hoverCount||a._hoverFired)return;var handler=a.get_events().getHandler("hover");if(handler)handler(a,Sys.EventArgs.Empty);if(a._hoverScript)eval(a._hoverScript);a._hoverFired=true},_onHover:function(){var a=this;a._hoverCount++;if(!a._hoverDelay)a._fireHover();else window.setTimeout(Function.createDelegate(a,a._fireHover),a._hoverDelay)},add_unhover:function(a){this.get_events().addHandler("unhover",a)},remove_unhover:function(a){this.get_events().removeHandler("unhover",a)},_fireUnhover:function(){var a=this;if(a._hoverFired&&!a._hoverCount){a._hoverFired=false;var handler=a.get_events().getHandler("unhover");if(handler)handler(a,Sys.EventArgs.Empty);if(a._unhoverScript)eval(a._unhoverScript)}},_onUnhover:function(){var a=this;a._hoverCount--;if(a._hoverCount<=0){a._hoverCount=0;if(!a._unhoverDelay)a._fireUnhover();else window.setTimeout(Function.createDelegate(a,a._fireUnhover),a._unhoverDelay)}},_setupHandlers:function(a,b,e){var d="mouseout",c="mouseover";if(!this.get_isInitialized()||!a)return;if(e){$addHandler(a,c,b[0]);$addHandler(a,"focus",b[0]);$addHandler(a,d,b[1]);$addHandler(a,"blur",b[1])}else{$removeHandler(a,c,b[0]);$removeHandler(a,"focus",b[0]);$removeHandler(a,d,b[1]);$removeHandler(a,"blur",b[1])}}};AjaxControlToolkit.HoverBehavior.descriptor={properties:[{name:"hoverElement",isDomElement:true},{name:"unhoverDelay",type:Number}],events:[{name:"hover"},{name:"unhover"}]};AjaxControlToolkit.HoverBehavior.registerClass("AjaxControlToolkit.HoverBehavior",AjaxControlToolkit.BehaviorBase);
Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.HoverMenuBehavior=function(c){var b=null,a=this;AjaxControlToolkit.HoverMenuBehavior.initializeBase(a,[c]);a._hoverBehavior=b;a._popupBehavior=b;a._mouseEnterHandler=b;a._mouseLeaveHandler=b;a._unhoverHandler=b;a._hoverHandler=b;a._inHover=b;a._oldClass=b;a._popupElement=b;a._onShowJson=b;a._onHideJson=b;a._popupElement=b;a._hoverCssClass=b;a._offsetX=0;a._offsetY=0;a._popDelay=100;a._hoverDelay=0;a._popupPosition=b};AjaxControlToolkit.HoverMenuBehavior.prototype={initialize:function(){var b=null,a=this;AjaxControlToolkit.HoverMenuBehavior.callBaseMethod(a,"initialize");a._hoverHandler=Function.createDelegate(a,a._onHover);a._unhoverHandler=Function.createDelegate(a,a._onUnhover);a._mouseEnterHandler=Function.createDelegate(a,a._onmouseover);a._mouseLeaveHandler=Function.createDelegate(a,a._onmouseout);var c=a.get_element();$addHandler(c,"mouseover",a._mouseEnterHandler);$addHandler(c,"mouseout",a._mouseLeaveHandler);if(a._popupElement){a._popupBehavior=$create(AjaxControlToolkit.PopupBehavior,{id:a.get_id()+"_PopupBehavior"},b,b,a._popupElement);if(a._popupPosition)a._popupBehavior.set_positioningMode(AjaxControlToolkit.HoverMenuPopupPosition.Absolute);else a._popupBehavior.set_positioningMode(AjaxControlToolkit.HoverMenuPopupPosition.Center);if(a._onShowJson)a._popupBehavior.set_onShow(a._onShowJson);if(a._onHideJson)a._popupBehavior.set_onHide(a._onHideJson);a._hoverBehavior=$create(AjaxControlToolkit.HoverBehavior,{id:a.get_id()+"_HoverBehavior",hoverDelay:a._hoverDelay,unhoverDelay:a._popDelay,hoverElement:a._popupElement},b,b,c);a._hoverBehavior.add_hover(a._hoverHandler);a._hoverBehavior.add_unhover(a._unhoverHandler)}},dispose:function(){var b=null,a=this;a._onShowJson=b;a._onHideJson=b;if(a._popupBehavior){a._popupBehavior.dispose();a._popupBehavior=b}if(a._popupElement)a._popupElement=b;if(a._mouseEnterHandler)$removeHandler(a.get_element(),"mouseover",a._mouseEnterHandler);if(a._mouseLeaveHandler)$removeHandler(a.get_element(),"mouseout",a._mouseLeaveHandler);if(a._hoverBehavior){if(a._hoverHandler){a._hoverBehavior.remove_hover(a._hoverHandler);a._hoverHandler=b}if(a._unhoverHandler){a._hoverBehavior.remove_hover(a._unhoverHandler);a._unhoverHandler=b}a._hoverBehavior.dispose();a._hoverBehavior=b}AjaxControlToolkit.HoverMenuBehavior.callBaseMethod(a,"dispose")},_getLeftOffset:function(){var a=this,c=$common.getLocation(a.get_element()).x,d=$common.getLocation(a.get_popupElement().offsetParent).x,b=0;switch(a._popupPosition){case AjaxControlToolkit.HoverMenuPopupPosition.Left:b=-1*a._popupElement.offsetWidth;break;case AjaxControlToolkit.HoverMenuPopupPosition.Right:b=a.get_element().offsetWidth}return b+c-d+a._offsetX},_getTopOffset:function(){var a=this,c=$common.getLocation(a.get_element()).y,d=$common.getLocation(a.get_popupElement().offsetParent).y,b=0;switch(a._popupPosition){case AjaxControlToolkit.HoverMenuPopupPosition.Top:b=-1*a._popupElement.offsetHeight;break;case AjaxControlToolkit.HoverMenuPopupPosition.Bottom:b=a.get_element().offsetHeight}return c-d+b+a._offsetY},_onHover:function(){var a=this;if(a._inHover)return;var b=new Sys.CancelEventArgs;a.raiseShowing(b);if(b.get_cancel())return;a._inHover=true;a.populate();a._popupBehavior.show();if($common.getCurrentStyle(a._popupElement,"display")=="none")a._popupElement.style.display="block";a._popupBehavior.set_x(a._getLeftOffset());a._popupBehavior.set_y(a._getTopOffset());a.raiseShown(Sys.EventArgs.Empty)},_onUnhover:function(){var a=this,b=new Sys.CancelEventArgs;a.raiseHiding(b);if(b.get_cancel())return;a._inHover=false;a._resetCssClass();a._popupBehavior.hide();a.raiseHidden(Sys.EventArgs.Empty)},_onmouseover:function(){var a=this,b=a.get_element();if(a._hoverCssClass&&b.className!=a._hoverCssClass){a._oldClass=b.className;b.className=a._hoverCssClass}},_onmouseout:function(){this._resetCssClass()},_resetCssClass:function(){var a=this,b=a.get_element();if(!a._inHover&&a._hoverCssClass&&b.className==a._hoverCssClass)b.className=a._oldClass},get_onShow:function(){return this._popupBehavior?this._popupBehavior.get_onShow():this._onShowJson},set_onShow:function(b){var a=this;if(a._popupBehavior)a._popupBehavior.set_onShow(b);else a._onShowJson=b;a.raisePropertyChanged("onShow")},get_onShowBehavior:function(){return this._popupBehavior?this._popupBehavior.get_onShowBehavior():null},onShow:function(){if(this._popupBehavior)this._popupBehavior.onShow()},get_onHide:function(){return this._popupBehavior?this._popupBehavior.get_onHide():this._onHideJson},set_onHide:function(b){var a=this;if(a._popupBehavior)a._popupBehavior.set_onHide(b);else a._onHideJson=b;a.raisePropertyChanged("onHide")},get_onHideBehavior:function(){return this._popupBehavior?this._popupBehavior.get_onHideBehavior():null},onHide:function(){if(this._popupBehavior)this._popupBehavior.onHide()},get_popupElement:function(){return this._popupElement},set_popupElement:function(b){var a=this;if(a._popupElement!=b){a._popupElement=b;if(a.get_isInitialized()&&a._hoverBehavior)a._hoverBehavior.set_hoverElement(a._popupElement);a.raisePropertyChanged("popupElement")}},get_HoverCssClass:function(){return this._hoverCssClass},set_HoverCssClass:function(a){if(this._hoverCssClass!=a){this._hoverCssClass=a;this.raisePropertyChanged("HoverCssClass")}},get_OffsetX:function(){return this._offsetX},set_OffsetX:function(a){if(this._offsetX!=a){this._offsetX=a;this.raisePropertyChanged("OffsetX")}},get_OffsetY:function(){return this._offsetY},set_OffsetY:function(a){if(this._offsetY!=a){this._offsetY=a;this.raisePropertyChanged("OffsetY")}},get_PopupPosition:function(){return this._popupPosition},set_PopupPosition:function(a){if(this._popupPosition!=a){this._popupPosition=a;this.raisePropertyChanged("PopupPosition")}},get_PopDelay:function(){return this._popDelay},set_PopDelay:function(a){if(this._popDelay!=a){this._popDelay=a;this.raisePropertyChanged("PopDelay")}},get_HoverDelay:function(){return this._hoverDelay},set_HoverDelay:function(a){if(this._hoverDelay!=a){this._hoverDelay=a;this.raisePropertyChanged("HoverDelay")}},add_showing:function(a){this.get_events().addHandler("showing",a)},remove_showing:function(a){this.get_events().removeHandler("showing",a)},raiseShowing:function(b){var a=this.get_events().getHandler("showing");if(a)a(this,b)},add_shown:function(a){this.get_events().addHandler("shown",a)},remove_shown:function(a){this.get_events().removeHandler("shown",a)},raiseShown:function(b){var a=this.get_events().getHandler("shown");if(a)a(this,b)},add_hiding:function(a){this.get_events().addHandler("hiding",a)},remove_hiding:function(a){this.get_events().removeHandler("hiding",a)},raiseHiding:function(b){var a=this.get_events().getHandler("hiding");if(a)a(this,b)},add_hidden:function(a){this.get_events().addHandler("hidden",a)},remove_hidden:function(a){this.get_events().removeHandler("hidden",a)},raiseHidden:function(b){var a=this.get_events().getHandler("hidden");if(a)a(this,b)}};AjaxControlToolkit.HoverMenuBehavior.registerClass("AjaxControlToolkit.HoverMenuBehavior",AjaxControlToolkit.DynamicPopulateBehaviorBase);AjaxControlToolkit.HoverMenuPopupPosition=function(){throw Error.invalidOperation()};AjaxControlToolkit.HoverMenuPopupPosition.prototype={Center:0,Top:1,Left:2,Bottom:3,Right:4};AjaxControlToolkit.HoverMenuPopupPosition.registerEnum("AjaxControlToolkit.HoverMenuPopupPosition");
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Permissive 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="../Animation/Animations.js" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.CollapsiblePanelExpandDirection = function() {
    /// <summary>
    /// The CollapsiblePanelExpandDirection enumeration describes whether the panel is opened vertically or horizontally
    /// </summary>
    /// <field name="Horizontal" type="Number" integer="true" />
    /// <field name="Vertical" type="Number" integer="true" />
    throw Error.invalidOperation();
}
AjaxControlToolkit.CollapsiblePanelExpandDirection.prototype = {
    Horizontal : 0,
    Vertical: 1
}
AjaxControlToolkit.CollapsiblePanelExpandDirection.registerEnum("AjaxControlToolkit.CollapsiblePanelExpandDirection", false);


AjaxControlToolkit.CollapsiblePanelBehavior = function(element) {
    /// <summary>
    /// The CollapsiblePanelBehavior allows you to add collapsible sections to your page
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// Element to associate the behavior with
    /// </param>
    AjaxControlToolkit.CollapsiblePanelBehavior.initializeBase(this, [element]);
    
    // property values
    this._collapsedSize = 0;
    this._expandedSize = 0;
    this._scrollContents = null;    
    this._collapsed = false;    
    this._expandControlID = null;
    this._collapseControlID = null;
    this._textLabelID = null;    
    this._collapsedText = null;
    this._expandedText = null;
    this._imageControlID = null;
    this._expandedImage = null;
    this._collapsedImage = null;
    this._suppressPostBack = null;
    this._autoExpand = null;
    this._autoCollapse = null;
    this._expandDirection = AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical;
    
    // handler delegates
    this._collapseClickHandler = null;
    this._expandClickHandler = null;    
    this._panelMouseEnterHandler = null;    
    this._panelMouseLeaveHandler = null;
    
    // the div we wrap around the panel contents
    this._childDiv = null;
    
    // Animation used to open/close the panel
    this._animation = null;
}
AjaxControlToolkit.CollapsiblePanelBehavior.prototype = {    
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, 'initialize');
        
        var element = this.get_element();
        this._animation = new AjaxControlToolkit.Animation.LengthAnimation(element, .25, 10, 'style', null, 0, 0, 'px');
        if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
            this._animation.set_propertyKey('height');
        } else if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
           this._animation.set_propertyKey('width');
        }
        this._animation.add_ended(Function.createDelegate(this, this._onAnimateComplete));
        
        // for checkboxes, we don't want to suppress the posback (e.g. return false)
        // because that stops them from toggling their state.
        //           
        if (this._suppressPostBack == null) {
            if (element.tagName == "INPUT" && element.type == "checkbox") {
                this._suppressPostBack = false;
                this.raisePropertyChanged('SuppressPostBack');
            }                    
            else if (element.tagName == "A") {
                this._suppressPostBack = true;
                this.raisePropertyChanged('SuppressPostBack');
            }
        }
        
        
        // Check our client state.  If it's present,
        // that means this is a postback, so we restore the state.
        //
        var lastState = AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, 'get_ClientState');                
        if (lastState && lastState != "") {
            var wasCollapsed = Boolean.parse(lastState);  
            if (this._collapsed != wasCollapsed) {
                this._collapsed = wasCollapsed;
                this.raisePropertyChanged('Collapsed');       
            }
        }
        
        this._setupChildDiv();        
        
        // setup the initial size and state
        //
        if (this._collapsed) {
            this._setTargetSize(this._getCollapsedSize());            
        } else {            
            this._setTargetSize(this._getExpandedSize());
        } 
        
        this._setupState(this._collapsed);
        
        // setup all of our handlers.
        if (this._collapseControlID == this._expandControlID) {
            this._collapseClickHandler = Function.createDelegate(this, this.togglePanel);
            this._expandClickHandler = null; // we don't need both if we're toggling.
        } else {
            this._collapseClickHandler = Function.createDelegate(this, this.collapsePanel);
            this._expandClickHandler = Function.createDelegate(this, this.expandPanel);       
        }
        
        if (this._autoExpand) {
            this._panelMouseEnterHandler = Function.createDelegate(this, this._onMouseEnter);
            $addHandler(element, 'mouseover', this._panelMouseEnterHandler);
        }       
        if (this._autoCollapse) {
            this._panelMouseLeaveHandler = Function.createDelegate(this, this._onMouseLeave);
            $addHandler(element, 'mouseout', this._panelMouseLeaveHandler);
        }
        
        // attach the click handlers
        //
        if (this._collapseControlID) {
            var collapseElement = $get(this._collapseControlID);
            if (!collapseElement) {
                throw Error.argument('CollapseControlID', String.format(AjaxControlToolkit.Resources.CollapsiblePanel_NoControlID, this._collapseControlID));
            } else {
                $addHandler(collapseElement, 'click', this._collapseClickHandler);
            }
        }
        
        if (this._expandControlID) {
            if (this._expandClickHandler) { // if it's a toggle don't set up again
                var expandElement = $get(this._expandControlID);
                if (!expandElement) {
                    throw Error.argument('ExpandControlID', String.format(AjaxControlToolkit.Resources.CollapsiblePanel_NoControlID, this._expandControlID));
                } else {
                    $addHandler(expandElement, 'click', this._expandClickHandler);
                }
               
            }
        }
    },
    
    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        
        var element = this.get_element();
        
        if (this._collapseClickHandler) {
            try
            {
            var collapseElement = (this._collapseControlID ? $get(this._collapseControlID) : null);
            if (collapseElement) {
                $removeHandler(collapseElement, 'click', this._collapseClickHandler);
            }
            this._collapseClickHandler = null;
            }
            catch(e){}
        }
        
        if (this._expandClickHandler) {
            var expandElement = (this._expandControlID ? $get(this._expandControlID) : null);
            if (expandElement) {
                $removeHandler(expandElement, 'click', this._expandClickHandler);
            }
            this._expandClickHandler = null;
        }
        
        if (this._panelMouseEnterHandler) {
            $removeHandler(element, 'mouseover', this._panelMouseEnterHandler);
        }
                
        if (this._panelMouseLeaveHandler) {
            $removeHandler(element, 'mouseout', this._panelMouseLeaveHandler);
        }
                
        if (this._animation) {
            this._animation.dispose();
            this._animation = null;
        }
        
        AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, 'dispose');
    },

    togglePanel : function(eventObj) {
        /// <summary>
        /// Event handler to epxand or collapse the panel (based on its current state)
        /// This is the public function that should be called instead of _toggle if
        /// you wish to programmatically open and close the collapsible panel.
        /// </summary>
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true" optional="true">
        /// Event Info
        /// </param>

        this._toggle(eventObj);
    },    
    
    expandPanel : function(eventObj) {
        /// <summary>
        /// Open the panel. Public function that users should call if they
        /// wish to operate the collapsible panel programmatically.
        /// _doOpen should be treated as private since it has an underscore 
        /// to begin the function name.
        /// </summary>    
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true" optional="true">
        /// Event Info
        /// </param>
        
        this._doOpen(eventObj);    
    },
    
    collapsePanel : function(eventObj) {
        /// <summary>
        /// Collapse the panel. Public function that users should call if they
        /// wish to operate the collapsible panel programmatically.
        /// _doClose should be treated as private since it has an underscore 
        /// to begin the function name.
        /// </summary>    
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true" optional="true">
        /// Event Info
        /// </param>
        
        this._doClose(eventObj);
    },
    
    _checkCollapseHide : function() {
        /// <summary>
        /// Check if a control is collapsed and hidden
        /// (and set its display to none if it is supposed to be hidden)
        /// </summary>
        /// <returns type="Boolean">
        /// Whether the control is collapsed and hidden
        /// </returns>

        if (this._collapsed && this._getTargetSize() == 0) {
            var e = this.get_element();
            var display = $common.getCurrentStyle(e, 'display');
            if (!e.oldDisplay && display != "none") {
                e.oldDisplay = display;
                e.style.display = "none";
            }
            return true;
        }
        return false;
    },
    
    _doClose : function(eventObj) {
        /// <summary>
        /// Collapse the panel. Internal function, to close call "collapsePanel".
        /// </summary>
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true" optional="true">
        /// Event Info
        /// </param>
        
        var eventArgs = new Sys.CancelEventArgs();
        this.raiseCollapsing(eventArgs);
        if (eventArgs.get_cancel()) {
            return;
        }
    
        if (this._animation) {
            // stop any running animation.
            this._animation.stop();        
            
            // setup the animation state
            this._animation.set_startValue(this._getTargetSize());
            this._animation.set_endValue(this._getCollapsedSize());
            
            // do it!
            this._animation.play();
        }
        
        this._setupState(true);
                
        // stop postback if necessary.
        if (this._suppressPostBack) {
            if (eventObj && eventObj.preventDefault) {
                eventObj.preventDefault();
            } else {
                if (event) {
                    event.returnValue = false;
                }
                return false;
            }
        }
    },
    
    _doOpen : function(eventObj) {
        /// <summary>
        /// Expand the Panel. Internal function, to close call "expandPanel".
        /// </summary>
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true" optional="true">
        /// Event Info
        /// </param>
    
        var eventArgs = new Sys.CancelEventArgs();
        this.raiseExpanding(eventArgs);
        if (eventArgs.get_cancel()) {
            return;
        }
        
        // stop any existing animation
        if (this._animation) {
            this._animation.stop();
            var e = this.get_element();
            
            if (this._checkCollapseHide() && $common.getCurrentStyle(e, 'display', e.style.display)) {
                if (e.oldDisplay) {
                    e.style.display = e.oldDisplay;
                } else {
                    // IE isn't compliant on this one
                    if (e.style.removeAttribute) {
                        e.style.removeAttribute("display");
                    } else {
                       e.style.removeProperty("display");
                    }
                }
                e.oldDisplay = null;
            }
            
            // setup the animation state
            this._animation.set_startValue(this._getTargetSize());
            this._animation.set_endValue(this._getExpandedSize());
            
            // do it!
            this._animation.play();
        }
        
        // relect our state changes
        this._setupState(false);
        
        // stop the postback if necessary.
        //
        if (this._suppressPostBack) {
            if (eventObj && eventObj.preventDefault) {
                eventObj.preventDefault();
            } else {
                if (event) {
                    event.returnValue = false;
                }
                return false;
            }
        }
    },
    
    _onAnimateComplete : function() {
        /// <summary>
        /// Handler to listen for the end of the expand/collapse animation
        /// </summary>
    
        var e = this.get_element();
    
        // if we're fully expanded and the inner pannel is still smaller
        // than the size we've expanded to, fall back to auto
        //    
        if (!this._collapsed && !this._expandedSize)
        {
            if(this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
                if(this._childDiv.offsetHeight <= e.offsetHeight) {
                   e.style.height = "auto";
                   this.raisePropertyChanged('TargetHeight');
                } 
                else {
                    this._checkCollapseHide();
                }
            }
            else // horizontal
            {
                if( this._childDiv.offsetWidth <= e.offsetWidth) {
                   e.style.width = "auto";
                   this.raisePropertyChanged('TargetWidth');
                }
                else {
                    this._checkCollapseHide();
                }
            }
        }
        else {
            this._checkCollapseHide();
        }
        
        if (this._collapsed) {           
        
            // change the text label ID if we have one.
            //
            if (this._textLabelID && this._collapsedText) {
                var e = $get(this._textLabelID);
                
                if (e) {
                    e.innerHTML = this._collapsedText;
                }
            }
            
            // Change the image if we have one
            if (this._imageControlID && this._collapsedImage) {
                var i = $get(this._imageControlID);
                if (i && i.src) {
                    i.src = this._collapsedImage;
                    if (this._expandedText || this._collapsedText) {
                        i.title = this._collapsedText;
                    }
                }
            }            
        }
        
        if (this._collapsed) {
            this.raiseCollapseComplete();
            this.raiseCollapsed(Sys.EventArgs.Empty);
        } else {
            this.raiseExpandComplete()
            this.raiseExpanded(new Sys.EventArgs());
        }
    },
    
    _onMouseEnter : function(eventObj) {
        /// <summary>
        /// OnMouseOver Handler
        /// </summary>
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true">
        /// Event Info
        /// </param>       
        if (this._autoExpand) {
            this.expandPanel(eventObj);
        }
    },
    
    _onMouseLeave : function(eventObj) {
        /// <summary>
        /// OnMouseOut Handler
        /// </summary>
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true">
        /// Event Info
        /// </param>      
        if (this._autoCollapse) {
           this.collapsePanel(eventObj);
        }
    },
    
    _getExpandedSize : function() {
        /// <summary>
        /// Get the size of the panel when fully expanded
        /// </summary>
        /// <returns type="Number" integer="true">
        /// Size of the panel when fully expanded
        /// </returns>
    
        if (this._expandedSize) {
            return this._expandedSize;
        }                
        
        if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
            return this._childDiv.offsetHeight;
        } else if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
            return this._childDiv.offsetWidth;
        }
    },
    
    _getCollapsedSize : function() {
        /// <summary>
        /// Get the size of the panel when fully collapsed
        /// </summary>
        /// <returns type="Number" integer="true">
        /// Size of the panel when fully collapsed
        /// </returns>

        if (this._collapsedSize) {
            return this._collapsedSize;
        }
        
        return 0;
    },
    
     _getTargetSize : function() {
         /// <summary>
         /// Get the target size of the Panel
         /// </summary>
         /// <returns type="Number" integer="true">
         /// Target size of the Panel
         /// </returns>

        var value;
        if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
           value = this.get_TargetHeight();
        } else if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
           value = this.get_TargetWidth();
        }       
        
        // Safari returns undefined if display is 'none'
        //
        if (value === undefined) {
            value = 0;
        }
        return value;
    },
    
    _setTargetSize : function(value) {
        /// <summary>
        /// Set the target size of the panel
        /// </summary>
        /// <param name="value" type="Number" integer="true">
        /// Target size of the panel
        /// </param>

        // we don't always want to set the target size here.
        // if we don't have an expanded size, and we're not collapsed,
        // and we're at (or past) our "maximum" size
        //
        var useSize = this._collapsed || this._expandedSize;
        var e = this.get_element();
        if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
            if (useSize || value < e.offsetHeight) {
                this.set_TargetHeight(value);
            } else {
                // if we're at our maximum size, flip to auto 
                // so that nested collapsible panels will
                // work properly.
                //
                e.style.height = "auto";
                this.raisePropertyChanged('TargetHeight');
            }
        } else if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
            if (useSize || value < e.offsetWidth) {
                this.set_TargetWidth(value);
            }
            else {
                e.style.width = "auto";
                this.raisePropertyChanged('TargetWidth');
            }            
        }
        this._checkCollapseHide();
    },
    
    _setupChildDiv : function() {
        /// <summary>
        /// Set up a child div to host our panel contents
        /// and then push the panel's children into it.
        /// </summary>

        
        var startSize = this._getTargetSize();
        
        var e = this.get_element();
                
        this._childDiv = e.cloneNode(false);
        this._childDiv.id = '';
        
        // move all children into the div.
        //
        while (e.hasChildNodes()) {            
            var child = e.childNodes[0];
            child = e.removeChild(child);
            this._childDiv.appendChild(child);                
        }

        //On Parent
        e.style.padding = "";
        e.style.border = "";

        // Setup scrolling on the child div and parent by only altering the scrolling 
        // for the expand direction letting the other fall into place naturally.
        if (this._scrollContents) {
            if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
                e.style.overflowY = "scroll";
                this._childDiv.style.overflowY = ""; 
            } else {
                e.style.overflowX = "scroll";
                this._childDiv.style.overflowX = ""; 
            }
            // safari and opera do not recognize overflowX and overflowY
            if (Sys.Browser.agent == Sys.Browser.Safari || Sys.Browser.agent == Sys.Browser.Opera) {
                e.style.overflow = "scroll";
                this._childDiv.style.overflow = "";
            }
            
         }
         else {
            if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
                e.style.overflowY = "hidden";
                this._childDiv.style.overflowY = ""; 
            } else {
                e.style.overflowX = "hidden";
                this._childDiv.style.overflowX = ""; 
            }
            // safari and opera do not recognize overflowX and overflowY
            if (Sys.Browser.Agent == Sys.Browser.Safari || Sys.Browser.Agent == Sys.Browser.Opera) {
                e.style.overflow = "hidden";
                this._childDiv.style.overflow = "";
            }            
         }

        //Delete some style after cloneNode
        //On Clone
        this._childDiv.style.position = ""; 
        this._childDiv.style.margin   = ""; 
        
        // we optimize for the case where the original size is the collapsed size.
        // if that's the case, we go ahead and set the inner panel to auto so you 
        // can still expand it but not see it expanded by default when the page loads.
        //
        if (startSize == this._collapsedSize) {
            if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
                this._childDiv.style.height = "auto"; 
            } else if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
                this._childDiv.style.width = "auto"; 
            }
        }
        
        e.appendChild(this._childDiv);
        
        if (this._collapsed) {
            startSize = this._getCollapsedSize();
        }
        else {
            startSize = this._getExpandedSize();
        }
            
        // set up our initial size
        //    
        if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical) {
            e.style.height = startSize + "px";
            
            if (!this._expandedSize) {
                e.style.height = "auto";
            }
            else {
               e.style.height = this._expandedSize + "px";
            }
            this._childDiv.style.height = "auto";

        } else if (this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Horizontal) {
            e.style.width = startSize + "px";
            
            if (!this._expandedSize) {
                e.style.width = "auto";
            }
            else {
               e.style.width = this._expandedSize + "px";
            }
            this._childDiv.style.width = "auto";
        }    
    },
    
    _setupState : function(isCollapsed) {
        /// <summary>
        /// Get all the state set consistently when we change modes
        /// </summary>
        /// <param name="isCollapsed" type="Boolean">
        /// True to setup the state as if we're collapsed, false to setup the state as if we're expanded
        /// </param>
        
        if (!isCollapsed) {           
            if (this._textLabelID && this._expandedText) {
                var e = $get(this._textLabelID);
                
                if (e) {
                    e.innerHTML = this._expandedText;
                }
            }
            
            // Change the image if we have one
            if (this._imageControlID && this._expandedImage) {
                var i = $get(this._imageControlID);
                if (i && i.src) {
                    i.src = this._expandedImage;
                    if (this._expandedText || this._collapsedText) {
                            i.title = this._expandedText;
                    }
                }
            }        
        } 
        
        // set our member variable and set the client state to reflect it
        // 
        if (this._collapsed != isCollapsed) {
            this._collapsed = isCollapsed;        
            this.raisePropertyChanged('Collapsed');
        }
        AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, 'set_ClientState', [this._collapsed.toString()]);                        
    },
    
    _toggle : function(eventObj) {
        /// <summary>
        /// Event handler to epxand or collapse the panel (based on its current state)
        /// Internal function. Please use "togglePanel(eventObj)" to get same functionality.
        /// </summary>
        /// <param name="eventObj" type="Sys.UI.DomEvent" mayBeNull="true" optional="true">
        /// Event Info
        /// </param>

        if (this.get_Collapsed()) {
            return this.expandPanel(eventObj);
        } else {
            return this.collapsePanel(eventObj);
        }
    },
    
    add_collapsing : function(handler) {
        /// <summary>
        /// Add an event handler for the collapsing event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('collapsing', handler);
    },
    remove_collapsing : function(handler) {
        /// <summary>
        /// Remove an event handler from the collapsing event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('collapsing', handler);
    },
    raiseCollapsing : function(eventArgs) {
        /// <summary>
        /// Raise the collapsing event
        /// </summary>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event arguments for the collapsing event
        /// </param>
        /// <returns />
        
        var handler = this.get_events().getHandler('collapsing');
        if (handler) {
            handler(this, eventArgs);
        }
    },
    
    add_collapsed : function(handler) {
        /// <summary>
        /// Add an event handler for the collapsed event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('collapsed', handler);
    },
    remove_collapsed : function(handler) {
        /// <summary>
        /// Remove an event handler from the collapsed event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('collapsed', handler);
    },
    raiseCollapsed : function(eventArgs) {
        /// <summary>
        /// Raise the collapsed event
        /// </summary>
        /// <param name="eventArgs" type="Sys.EventArgs" mayBeNull="false">
        /// Event arguments for the collapsed event
        /// </param>
        /// <returns />
        
        var handler = this.get_events().getHandler('collapsed');
        if (handler) {
            handler(this, eventArgs);
        }
    },

    add_collapseComplete : function(handler) {
        /// <summary>
        /// Add a handler to the collapseComplete event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        /// <obsolete>Use the collapsed event instead</obsolete>
    	this.get_events().addHandler('collapseComplete', handler);
    },
    remove_collapseComplete : function(handler) {
        /// <summary>
        /// Remove a handler from the collapseComplete event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        /// <obsolete>Use the collapsed event instead</obsolete>
    	this.get_events().removeHandler('collapseComplete', handler);
    },
    raiseCollapseComplete : function() {
        /// <summary>
        /// Raise the collapseComplete event
        /// </summary>
        /// <obsolete>Use the collapsed event instead</obsolete>
    	var handlers = this.get_events().getHandler('collapseComplete');
    	if (handlers) {
    		handlers(this, Sys.EventArgs.Empty);
    	}
    },
    
    add_expanding : function(handler) {
        /// <summary>
        /// Add an event handler for the expanding event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('expanding', handler);
    },
    remove_expanding : function(handler) {
        /// <summary>
        /// Remove an event handler from the expanding event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('expanding', handler);
    },
    raiseExpanding : function(eventArgs) {
        /// <summary>
        /// Raise the expanding event
        /// </summary>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event arguments for the expanding event
        /// </param>
        /// <returns />
        
        var handler = this.get_events().getHandler('expanding');
        if (handler) {
            handler(this, eventArgs);
        }
    },
    
    add_expanded : function(handler) {
        /// <summary>
        /// Add an event handler for the expanded event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('expanded', handler);
    },
    remove_expanded : function(handler) {
        /// <summary>
        /// Remove an event handler from the expanded event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('expanded', handler);
    },
    raiseExpanded : function(eventArgs) {
        /// <summary>
        /// Raise the expanded event
        /// </summary>
        /// <param name="eventArgs" type="Sys.EventArgs" mayBeNull="false">
        /// Event arguments for the expanded event
        /// </param>
        /// <returns />
        
        var handler = this.get_events().getHandler('expanded');
        if (handler) {
            handler(this, eventArgs);
        }
    },
    
    add_expandComplete : function(handler) {
        /// <summary>
        /// Add a handler to the expandComplete event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        /// <obsolete>Use the expanded event instead</obsolete>
    	this.get_events().addHandler('expandComplete', handler);
    },
    remove_expandComplete : function(handler) {
        /// <summary>
        /// Remove a handler from the expandComplete event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        /// <obsolete>Use the expanded event instead</obsolete>
    	this.get_events().removeHandler('expandComplete', handler);
    },
    raiseExpandComplete : function() {
        /// <summary>
        /// Raise the expandComplete event
        /// </summary>
        /// <obsolete>Use the expanded event instead</obsolete>
    	var handlers = this.get_events().getHandler('expandComplete');
    	if (handlers) {
    		handlers(this, Sys.EventArgs.Empty);
    	}
    },

    get_TargetHeight : function() {
        /// <value type="Number" integer="true">
        /// Wrap the height of the panel
        /// </value>
        return this.get_element().offsetHeight;        
    },
    set_TargetHeight : function(value) {        
        this.get_element().style.height = value + "px";        
        this.raisePropertyChanged('TargetHeight');
    },
    
    get_TargetWidth : function() {
        /// <value type="Number" integer="true">
        /// Wrap the width of the panel
        /// </value>
        return this.get_element().offsetWidth;        
    },
    set_TargetWidth : function(value) {
        this.get_element().style.width = value + "px"        
        this.raisePropertyChanged('TargetWidth');
    },
        
    get_Collapsed : function() {
        /// <value type="Boolean">
        /// Whether or not the panel is collapsed
        /// </value>
        return this._collapsed;        
    },    
    set_Collapsed : function(value) {
        // if we're changing values, and we're live, togglePanel.
        if (this.get_isInitialized() && this.get_element() && value != this.get_Collapsed()) {
            this.togglePanel();
        }
        else {
            this._collapsed = value;
            this.raisePropertyChanged('Collapsed');
        }
    },
    
    get_CollapsedSize : function() {
        /// <value type="Number" integer="true">
        /// The size of the target, in pixels, when it is in the collapsed state
        /// </value>
        return this._collapsedSize;
    },
    set_CollapsedSize : function(value) {
        if (this._collapsedSize != value) {
            this._collapsedSize = value;
            this.raisePropertyChanged('CollapsedSize');
        }
    },
    
    get_ExpandedSize : function() {
        /// <value type="Number" integer="true">
        /// The size of the target, in pixels, when it is in the expanded state
        /// </value>
        return this._expandedSize;
    },
    set_ExpandedSize : function(value) {
        if (this._expandedSize != value) {
            this._expandedSize = value;
            this.raisePropertyChanged('ExpandedSize');
        }
    },
    
    get_CollapseControlID : function() {
        /// <value type="String">
        /// ID of the control used to collapse the target when clicked
        /// </value>
        return this._collapseControlID;
    },
    set_CollapseControlID : function(value) {
        if (this._collapseControlID != value) {
            this._collapseControlID = value;
            this.raisePropertyChanged('CollapseControlID');
        }
    },
    
    get_ExpandControlID : function() {
        /// <value type="String">
        /// ID of the control used to expand the target when clicked
        /// </value>
        return this._expandControlID;
    },    
    set_ExpandControlID : function(value) {
        if (this._expandControlID != value) {
            this._expandControlID = value;
            this.raisePropertyChanged('ExpandControlID');
        }
    },
    
    get_ScrollContents : function() {
        /// <value type="Boolean">
        /// Whether to add a scrollbar when the contents are larger than the target (the contents will be clipped if false)
        /// </value>
        return this._scrollContents;
    },
    set_ScrollContents : function(value) {
        if (this._scrollContents != value) {
            this._scrollContents = value;
            this.raisePropertyChanged('ScrollContents');
        }
    },
    
    get_SuppressPostBack : function() {
        /// <value type="Boolean">
        /// Whether or not to suppress postbacks generated when the CollapseControlID or ExpandControlID elements are clicked
        /// </value>
        return this._suppressPostBack;
    },
    set_SuppressPostBack : function(value) {
        if (this._suppressPostBack != value) {
            this._suppressPostBack = value;
            this.raisePropertyChanged('SuppressPostBack');
        }
    },
    
    get_TextLabelID : function() {
        /// <value type="String">
        /// ID of the element where the "status text" for the target will be placed
        /// </value>
        return this._textLabelID;
    },
    set_TextLabelID : function(value) {
        if (this._textLabelID != value) {
            this._textLabelID = value;
            this.raisePropertyChanged('TextLabelID');
        }
    },
    
    get_ExpandedText : function() {
        /// <value type="String">
        /// Text to show in the element specified by TextLabelID when the target is expanded.  This text is also used as the alternate text of the image if ImageControlID has been provided.
        /// </value>
        return this._expandedText;
    },
    set_ExpandedText : function(value) {
        if (this._expandedText != value) {
            this._expandedText = value;
            this.raisePropertyChanged('ExpandedText');
        }
    },
    
    get_CollapsedText : function() {
        /// <value type="String">
        /// Text to show in the element specified by TextLabelID when the target is collapsed.  This text is also used as the alternate text of the image if ImageControlID has been provided.
        /// </value>
        return this._collapsedText;
    },
    set_CollapsedText : function(value) {
        if (this._collapsedText != value) {
            this._collapsedText = value;
            this.raisePropertyChanged('CollapsedText');
        }
    },
    
    get_ImageControlID : function() {
        /// <value type="String">
        /// ID of the <img> element where an icon indicating the collapsed status of the target will be placed
        /// </value>
        return this._imageControlID;
    },
    set_ImageControlID : function(value) {
        if (this._imageControlID != value) {
            this._imageControlID = value;
            this.raisePropertyChanged('ImageControlID');
        }
    },
    
    get_ExpandedImage : function() {
        /// <value type="String">
        /// Path to an image to show in the element specified by ImageControlID when the target is expanded
        /// </value>
        return this._expandedImage;
    },
    set_ExpandedImage : function(value) {
        if (this._expandedImage != value) {
            this._expandedImage = value;
            this.raisePropertyChanged('ExpandedImage');
        }
    },
    
    get_CollapsedImage : function() {
        /// <value type="String">
        /// Path to an image to show in the element specified by ImageControlID when the target is collapsed
        /// </value>
        return this._collapsedImage;
    },
    set_CollapsedImage : function(value) {
        if (this._collapsedImage != value) {
            this._collapsedImage = value;
            this.raisePropertyChanged('CollapsedImage');
        }
    },
    
    get_AutoExpand : function() {
        /// <value type="Boolean">
        /// Whether to automatically expand the target when the mouse is moved over it
        /// </value>
        return this._autoExpand;
    },
    set_AutoExpand : function(value) {
        if (this._autoExpand != value) {
            this._autoExpand = value;
            this.raisePropertyChanged('AutoExpand');
        }
    },
    
    get_AutoCollapse : function() {
        /// <value type="Boolean">
        /// Whether to automatically collapse the target when the mouse is moved off of it
        /// </value>
        return this._autoCollapse;
    },
    set_AutoCollapse : function(value) {
        if (this._autoCollapse != value) {
            this._autoCollapse = value;
            this.raisePropertyChanged('AutoCollapse');
        }
    },    
    
    get_ExpandDirection : function() {
        /// <value type="AjaxControlToolkit.CollapsiblePanelExpandDirection">
        /// Direction the panel will expand and collapse (can be either "Vertical" or "Horizontal")
        /// </value>
        return this._expandDirection == AjaxControlToolkit.CollapsiblePanelExpandDirection.Vertical;
    },      
    set_ExpandDirection : function(value) {
        if (this._expandDirection != value) {
            this._expandDirection = value;
            this.raisePropertyChanged('ExpandDirection');
        }
    }
}
AjaxControlToolkit.CollapsiblePanelBehavior.registerClass('AjaxControlToolkit.CollapsiblePanelBehavior', AjaxControlToolkit.BehaviorBase);
//    getDescriptor : function() {
//        var td = AjaxControlToolkit.CollapsiblePanelBehavior.callBaseMethod(this, 'getDescriptor');
//        
//        // lots of properties to add here
//        //
//        td.addProperty('CollapsedSize', Number);        
//        td.addProperty('ExpandedSize', Number);        
//        td.addProperty('CollapseControlID', String);        
//        td.addProperty('ExpandControlID', String);        
//        td.addProperty('Collapsed', Boolean);
//        td.addProperty('ScrollContents', Boolean);
//        td.addProperty('SuppressPostBack', Boolean);
//        td.addProperty('AutoExpand', Boolean);        
//        td.addProperty('AutoCollapse', Boolean);        
//        td.addProperty('CollapsedText', String);
//        td.addProperty('ExpandedText', String);
//        td.addProperty('TextLabelID', String);
//        td.addProperty('CollapsedImage', String);
//        td.addProperty('ExpandedImage', String);
//        td.addProperty('ImageControlID', String);
//        td.addProperty('ExpandDirection', AjaxControlToolkit.CollapsiblePanelExpandDirection);
//        
//        // these are for internal use
//        //
//        td.addProperty('TargetHeight', Number);
//        td.addProperty('TargetWidth', Number);
//        
//        // events
//        //
//        td.addEvent('collapseComplete', true);
//        td.addEvent('expandComplete', true);
//        
//        return td;
//    },

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();

