/* START Telerik.Web.UI.Common.Core.js */
try{
document.execCommand("BackgroundImageCache",false,true);
}
catch(err){
}
Type.registerNamespace("Telerik.Web.UI");
window.$telerik=window.TelerikCommonScripts=Telerik.Web.CommonScripts={_borderStyleNames:["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"],_borderWidthNames:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],_paddingWidthNames:["paddingTop","paddingRight","paddingBottom","paddingLeft"],_marginWidthNames:["marginTop","marginRight","marginBottom","marginLeft"],radControls:[],registerControl:function(_1){
if(!Array.contains(this.radControls,_1)){
Array.add(this.radControls,_1);
}
},unregisterControl:function(_2){
Array.remove(this.radControls,_2);
},repaintChildren:function(_3){
var _4=_3.get_element();
for(var i=0,_6=this.radControls.length;i<_6;i++){
var _7=this.radControls[i];
if(_7.repaint&&this.isDescendant(_4,_7.get_element())){
_7.repaint();
}
}
},_borderThickness:function(){
$telerik._borderThicknesses={};
var _8=document.createElement("div");
var _9=document.createElement("div");
_8.style.visibility="hidden";
_8.style.position="absolute";
_8.style.fontSize="1px";
_9.style.height="0px";
_9.style.overflow="hidden";
document.body.appendChild(_8).appendChild(_9);
var _a=_8.offsetHeight;
_9.style.borderTop="solid black";
_9.style.borderTopWidth="thin";
$telerik._borderThicknesses["thin"]=_8.offsetHeight-_a;
_9.style.borderTopWidth="medium";
$telerik._borderThicknesses["medium"]=_8.offsetHeight-_a;
_9.style.borderTopWidth="thick";
$telerik._borderThicknesses["thick"]=_8.offsetHeight-_a;
if(typeof (_8.removeChild)!=="undefined"){
_8.removeChild(_9);
}
document.body.removeChild(_8);
_8=null;
_9=null;
},getCurrentStyle:function(_b,_c,_d){
var _e=null;
if(_b){
if(_b.currentStyle){
_e=_b.currentStyle[_c];
}else{
if(document.defaultView&&document.defaultView.getComputedStyle){
var _f=document.defaultView.getComputedStyle(_b,null);
if(_f){
_e=_f[_c];
}
}
}
if(!_e&&_b.style.getPropertyValue){
_e=_b.style.getPropertyValue(_c);
}else{
if(!_e&&_b.style.getAttribute){
_e=_b.style.getAttribute(_c);
}
}
}
if((!_e||_e==""||typeof (_e)==="undefined")){
if(typeof (_d)!="undefined"){
_e=_d;
}else{
_e=null;
}
}
return _e;
},getInheritedBackgroundColor:function(_10){
if(!_10){
return "#FFFFFF";
}
var _11=$telerik.getCurrentStyle(_10,"backgroundColor");
try{
while(!_11||_11==""||_11=="transparent"||_11=="rgba(0, 0, 0, 0)"){
_10=_10.parentNode;
if(!_10){
_11="#FFFFFF";
}else{
_11=$telerik.getCurrentStyle(_10,"backgroundColor");
}
}
}
catch(ex){
_11="#FFFFFF";
}
return _11;
},getLocation:function(_12){
if(_12===document.documentElement){
return new Sys.UI.Point(0,0);
}
if(Sys.Browser.agent==Sys.Browser.InternetExplorer){
if(_12.window===_12||_12.nodeType===9||!_12.getClientRects||!_12.getBoundingClientRect){
return new Sys.UI.Point(0,0);
}
var _13=_12.getClientRects();
if(!_13||!_13.length){
return new Sys.UI.Point(0,0);
}
var _14=_13[0];
var _15=0;
var _16=0;
var _17=false;
try{
_17=_12.ownerDocument.parentWindow.frameElement;
}
catch(ex){
_17=true;
}
if(_17){
var _18=_12.getBoundingClientRect();
if(!_18){
return new Sys.UI.Point(0,0);
}
var _19=_14.left;
var _1a=_14.top;
for(var i=1;i<_13.length;i++){
var r=_13[i];
if(r.left<_19){
_19=r.left;
}
if(r.top<_1a){
_1a=r.top;
}
}
_15=_19-_18.left;
_16=_1a-_18.top;
}
var _1d=_12.document.documentElement;
var _1e=new Sys.UI.Point(_14.left-2-_15+_1d.scrollLeft,_14.top-2-_16+_1d.scrollTop);
if($telerik.quirksMode){
_1e.x+=document.body.scrollLeft;
_1e.y+=document.body.scrollTop;
}
return _1e;
}
var _1e=Sys.UI.DomElement.getLocation(_12);
if($telerik.isOpera){
var _1f=_12.offsetParent;
while(_1f&&_1f.tagName.toUpperCase()!="BODY"&&_1f.tagName.toUpperCase()!="HTML"){
_1e.x-=_1f.scrollLeft;
_1e.y-=_1f.scrollTop;
_1f=_1f.offsetParent;
}
}
if($telerik.isSafari){
var _1f=_12.parentNode;
while(_1f&&_1f.tagName.toUpperCase()!="BODY"&&_1f.tagName.toUpperCase()!="HTML"){
_1e.x-=_1f.scrollLeft;
_1e.y-=_1f.scrollTop;
_1f=_1f.parentNode;
}
}
if($telerik.isIE&&$telerik.quirksMode){
_1e.x+=document.body.scrollLeft;
_1e.y+=document.body.scrollTop;
}
return _1e;
},setLocation:function(_20,_21){
Sys.UI.DomElement.setLocation(_20,_21.x,_21.y);
},getContentSize:function(_22){
if(!_22){
throw Error.argumentNull("element");
}
var _23=$telerik.getSize(_22);
var _24=$telerik.getBorderBox(_22);
var _25=$telerik.getPaddingBox(_22);
return {width:_23.width-_24.horizontal-_25.horizontal,height:_23.height-_24.vertical-_25.vertical};
},getSize:function(_26){
if(!_26){
throw Error.argumentNull("element");
}
return {width:_26.offsetWidth,height:_26.offsetHeight};
},setContentSize:function(_27,_28){
if(!_27){
throw Error.argumentNull("element");
}
if(!_28){
throw Error.argumentNull("size");
}
if($telerik.getCurrentStyle(_27,"MozBoxSizing")=="border-box"||$telerik.getCurrentStyle(_27,"BoxSizing")=="border-box"){
var _29=$telerik.getBorderBox(_27);
var _2a=$telerik.getPaddingBox(_27);
_28={width:_28.width+_29.horizontal+_2a.horizontal,height:_28.height+_29.vertical+_2a.vertical};
}
_27.style.width=_28.width.toString()+"px";
_27.style.height=_28.height.toString()+"px";
},setSize:function(_2b,_2c){
if(!_2b){
throw Error.argumentNull("element");
}
if(!_2c){
throw Error.argumentNull("size");
}
var _2d=$telerik.getBorderBox(_2b);
var _2e=$telerik.getPaddingBox(_2b);
var _2f={width:_2c.width-_2d.horizontal-_2e.horizontal,height:_2c.height-_2d.vertical-_2e.vertical};
$telerik.setContentSize(_2b,_2f);
},getBounds:function(_30){
var _31=$telerik.getLocation(_30);
return new Sys.UI.Bounds(_31.x,_31.y,_30.offsetWidth||0,_30.offsetHeight||0);
},setBounds:function(_32,_33){
if(!_32){
throw Error.argumentNull("element");
}
if(!_33){
throw Error.argumentNull("bounds");
}
$telerik.setSize(_32,_33);
$telerik.setLocation(_32,_33);
},getClientBounds:function(){
var _34;
var _35;
switch(Sys.Browser.agent){
case Sys.Browser.InternetExplorer:
_34=document.documentElement.clientWidth;
_35=document.documentElement.clientHeight;
if(_34==0&&_35==0){
_34=document.body.clientWidth;
_35=document.body.clientHeight;
}
break;
case Sys.Browser.Safari:
_34=window.innerWidth;
_35=window.innerHeight;
break;
case Sys.Browser.Opera:
_34=Math.min(window.innerWidth,document.body.clientWidth);
_35=Math.min(window.innerHeight,document.body.clientHeight);
break;
default:
_34=Math.min(window.innerWidth,document.documentElement.clientWidth);
_35=Math.min(window.innerHeight,document.documentElement.clientHeight);
break;
}
return new Sys.UI.Bounds(0,0,_34,_35);
},getMarginBox:function(_36){
if(!_36){
throw Error.argumentNull("element");
}
var box={top:$telerik.getMargin(_36,Telerik.Web.BoxSide.Top),right:$telerik.getMargin(_36,Telerik.Web.BoxSide.Right),bottom:$telerik.getMargin(_36,Telerik.Web.BoxSide.Bottom),left:$telerik.getMargin(_36,Telerik.Web.BoxSide.Left)};
box.horizontal=box.left+box.right;
box.vertical=box.top+box.bottom;
return box;
},getPaddingBox:function(_38){
if(!_38){
throw Error.argumentNull("element");
}
var box={top:$telerik.getPadding(_38,Telerik.Web.BoxSide.Top),right:$telerik.getPadding(_38,Telerik.Web.BoxSide.Right),bottom:$telerik.getPadding(_38,Telerik.Web.BoxSide.Bottom),left:$telerik.getPadding(_38,Telerik.Web.BoxSide.Left)};
box.horizontal=box.left+box.right;
box.vertical=box.top+box.bottom;
return box;
},getBorderBox:function(_3a){
if(!_3a){
throw Error.argumentNull("element");
}
var box={top:$telerik.getBorderWidth(_3a,Telerik.Web.BoxSide.Top),right:$telerik.getBorderWidth(_3a,Telerik.Web.BoxSide.Right),bottom:$telerik.getBorderWidth(_3a,Telerik.Web.BoxSide.Bottom),left:$telerik.getBorderWidth(_3a,Telerik.Web.BoxSide.Left)};
box.horizontal=box.left+box.right;
box.vertical=box.top+box.bottom;
return box;
},isBorderVisible:function(_3c,_3d){
if(!_3c){
throw Error.argumentNull("element");
}
if(_3d<Telerik.Web.BoxSide.Top||_3d>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_3d,"Telerik.Web.BoxSide"));
}
var _3e=$telerik._borderStyleNames[_3d];
var _3f=$telerik.getCurrentStyle(_3c,_3e);
return _3f!="none";
},getMargin:function(_40,_41){
if(!_40){
throw Error.argumentNull("element");
}
if(_41<Telerik.Web.BoxSide.Top||_41>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_41,"Telerik.Web.BoxSide"));
}
var _42=$telerik._marginWidthNames[_41];
var _43=$telerik.getCurrentStyle(_40,_42);
try{
return $telerik.parsePadding(_43);
}
catch(ex){
return 0;
}
},getBorderWidth:function(_44,_45){
if(!_44){
throw Error.argumentNull("element");
}
if(_45<Telerik.Web.BoxSide.Top||_45>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_45,"Telerik.Web.BoxSide"));
}
if(!$telerik.isBorderVisible(_44,_45)){
return 0;
}
var _46=$telerik._borderWidthNames[_45];
var _47=$telerik.getCurrentStyle(_44,_46);
return $telerik.parseBorderWidth(_47);
},getPadding:function(_48,_49){
if(!_48){
throw Error.argumentNull("element");
}
if(_49<Telerik.Web.BoxSide.Top||_49>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_49,"Telerik.Web.BoxSide"));
}
var _4a=$telerik._paddingWidthNames[_49];
var _4b=$telerik.getCurrentStyle(_48,_4a);
return $telerik.parsePadding(_4b);
},parseBorderWidth:function(_4c){
if(_4c){
switch(_4c){
case "thin":
case "medium":
case "thick":
return $telerik._borderThicknesses[_4c];
case "inherit":
return 0;
}
var _4d=$telerik.parseUnit(_4c);
return _4d.size;
}
return 0;
},parsePadding:function(_4e){
if(_4e){
if(_4e=="inherit"){
return 0;
}
var _4f=$telerik.parseUnit(_4e);
return _4f.size;
}
return 0;
},parseUnit:function(_50){
if(!_50){
throw Error.argumentNull("value");
}
_50=_50.trim().toLowerCase();
var l=_50.length;
var s=-1;
for(var i=0;i<l;i++){
var ch=_50.substr(i,1);
if((ch<"0"||ch>"9")&&ch!="-"&&ch!="."&&ch!=","){
break;
}
s=i;
}
if(s==-1){
throw Error.create("No digits");
}
var _55;
var _56;
if(s<(l-1)){
_55=_50.substring(s+1).trim();
}else{
_55="px";
}
_56=parseFloat(_50.substr(0,s+1));
if(_55=="px"){
_56=Math.floor(_56);
}
return {size:_56,type:_55};
},containsPoint:function(_57,x,y){
return x>=_57.x&&x<=(_57.x+_57.width)&&y>=_57.y&&y<=(_57.y+_57.height);
},isDescendant:function(_5a,_5b){
for(var n=_5b.parentNode;n!=null;n=n.parentNode){
if(n==_5a){
return true;
}
}
return false;
},isDescendantOrSelf:function(_5d,_5e){
if(_5d===_5e){
return true;
}
return $telerik.isDescendant(_5d,_5e);
},setOuterHeight:function(_5f,_60){
if(_60<=0||_60==""){
_5f.style.height="";
}else{
_5f.style.height=_60+"px";
var _61=_5f.offsetHeight-_60;
var _62=_60-_61;
if(_62>0){
_5f.style.height=_62+"px";
}else{
_5f.style.height="";
}
}
},setOpacity:function(_63,_64){
if(!_63){
throw Error.argumentNull("element");
}
if(_63.filters){
var _65=_63.filters;
var _66=true;
if(_65.length!==0){
var _67=_65["DXImageTransform.Microsoft.Alpha"];
if(_67){
_66=false;
_67.opacity=_64*100;
}
}
if(_66){
_63.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+(_64*100)+")";
}
}else{
_63.style.opacity=_64;
}
},getOpacity:function(_68){
if(!_68){
throw Error.argumentNull("element");
}
var _69=false;
var _6a;
if(_68.filters){
var _6b=_68.filters;
if(_6b.length!==0){
var _6c=_6b["DXImageTransform.Microsoft.Alpha"];
if(_6c){
_6a=_6c.opacity/100;
_69=true;
}
}
}else{
_6a=$telerik.getCurrentStyle(_68,"opacity",1);
_69=true;
}
if(_69===false){
return 1;
}
return parseFloat(_6a);
},addCssClasses:function(_6d,_6e){
for(var i=0;i<_6e.length;i++){
Sys.UI.DomElement.addCssClass(_6d,_6e[i]);
}
},removeCssClasses:function(_70,_71){
for(var i=0;i<_71.length;i++){
Sys.UI.DomElement.removeCssClass(_70,_71[i]);
}
},setOuterWidth:function(_73,_74){
if(_74<=0||_74==""){
_73.style.width="";
}else{
_73.style.width=_74+"px";
var _75=_73.offsetWidth-_74;
var _76=_74-_75;
if(_76>0){
_73.style.width=_76+"px";
}else{
_73.style.width="";
}
}
},getScrollOffset:function(_77,_78){
var _79=0;
var top=0;
var _7b=_77;
while(_7b!=null&&_7b.scrollLeft!=null){
_79+=_7b.scrollLeft;
top+=_7b.scrollTop;
if(!_78||(_7b==document.body&&(_7b.scrollLeft!=0||_7b.scrollTop!=0))){
break;
}
_7b=_7b.parentNode;
}
return {x:_79,y:top};
},getElementByClassName:function(_7c,_7d,_7e){
var _7f=null;
if(_7e){
_7f=_7c.getElementsByTagName(_7e);
}else{
_7f=_7c.getElementsByTagName("*");
}
for(var i=0,_81=_7f.length;i<_81;i++){
var _82=_7f[i];
if(Sys.UI.DomElement.containsCssClass(_82,_7d)){
return _82;
}
}
return null;
},addExternalHandler:function(_83,_84,_85){
if(_83.addEventListener){
_83.addEventListener(_84,_85,false);
}else{
if(_83.attachEvent){
_83.attachEvent("on"+_84,_85);
}
}
},removeExternalHandler:function(_86,_87,_88){
if(_86.addEventListener){
_86.removeEventListener(_87,_88,false);
}else{
if(_86.detachEvent){
_86.detachEvent("on"+_87,_88);
}
}
},cancelRawEvent:function(e){
if(!e){
return false;
}
if(e.preventDefault){
e.preventDefault();
}
if(e.stopPropagation){
e.stopPropagation();
}
e.cancelBubble=true;
e.returnValue=false;
return false;
},getOuterHtml:function(_8a){
if(_8a.outerHTML){
return _8a.outerHTML;
}else{
var _8b=_8a.cloneNode(true);
var _8c=_8a.ownerDocument.createElement("DIV");
_8c.appendChild(_8b);
return _8c.innerHTML;
}
},setVisible:function(e,_8e){
if(!e){
return;
}
if(_8e!=$telerik.getVisible(e)){
if(_8e){
if(e.style.removeAttribute){
e.style.removeAttribute("display");
}else{
e.style.removeProperty("display");
}
}else{
e.style.display="none";
}
e.style.visibility=_8e?"visible":"hidden";
}
},getVisible:function(e){
if(!e){
return false;
}
return (("none"!=$telerik.getCurrentStyle(e,"display"))&&("hidden"!=$telerik.getCurrentStyle(e,"visibility")));
},getViewPortSize:function(){
var _90=0;
var _91=0;
var _92=document.body;
if(!$telerik.quirksMode&&!$telerik.isSafari){
_92=document.documentElement;
}
if(window.innerWidth){
_90=window.innerWidth;
_91=window.innerHeight;
}else{
_90=_92.clientWidth;
_91=_92.clientHeight;
}
_90+=_92.scrollLeft;
_91+=_92.scrollTop;
return {width:_90-6,height:_91-6};
},elementOverflowsTop:function(_93){
return $telerik.getLocation(_93).y<0;
},elementOverflowsLeft:function(_94){
return $telerik.getLocation(_94).x<0;
},elementOverflowsBottom:function(_95,_96){
var _97=$telerik.getLocation(_96).y+_96.offsetHeight;
return _97>_95.height;
},elementOverflowsRight:function(_98,_99){
var _9a=$telerik.getLocation(_99).x+_99.offsetWidth;
return _9a>_98.width;
},getDocumentRelativeCursorPosition:function(e){
var _9c=document.documentElement.scrollLeft||document.body.scrollLeft;
var _9d=document.documentElement.scrollTop||document.body.scrollTop;
var _9e=e.clientX+_9c;
var top=e.clientY+_9d;
return {left:_9e,top:top};
},getFirstChildByTagName:function(_a0,_a1,_a2){
if(!_a0||!_a0.childNodes){
return null;
}
var _a3=_a0.childNodes[_a2]||_a0.firstChild;
while(_a3){
if(_a3.nodeType==1&&_a3.tagName.toLowerCase()==_a1){
return _a3;
}
_a3=_a3.nextSibling;
}
return null;
},getChildByClassName:function(_a4,_a5,_a6){
var _a7=_a4.childNodes[_a6]||_a4.firstChild;
while(_a7){
if(_a7.nodeType==1&&_a7.className.indexOf(_a5)>-1){
return _a7;
}
_a7=_a7.nextSibling;
}
return null;
},getChildrenByTagName:function(_a8,_a9){
var _aa=new Array();
var _ab=_a8.childNodes;
for(var i=0,_ad=_ab.length;i<_ad;i++){
var _ae=_ab[i];
if(_ae.nodeType==1&&_ae.tagName.toLowerCase()==_a9){
Array.add(_aa,_ae);
}
}
return _aa;
},getChildrenByClassName:function(_af,_b0){
var _b1=new Array();
var _b2=_af.childNodes;
for(var i=0,_b4=_b2.length;i<_b4;i++){
var _b5=_b2[i];
if(_b5.nodeType==1&&_b5.className.indexOf(_b0)>-1){
Array.add(_b1,_b5);
}
}
return _b1;
}};
$telerik.isIE=Sys.Browser.agent==Sys.Browser.InternetExplorer;
$telerik.isIE7=$telerik.isIE&&Sys.Browser.version==7;
$telerik.isIE6=$telerik.isIE&&Sys.Browser.version<7;
$telerik.isOpera=Sys.Browser.agent==Sys.Browser.Opera;
$telerik.isSafari=Sys.Browser.agent==Sys.Browser.Safari;
$telerik.isSafari3=$telerik.isSafari&&Sys.Browser.version>500;
$telerik.isSafari2=$telerik.isSafari&&Sys.Browser.version<=500;
$telerik.isFirefox=Sys.Browser.agent==Sys.Browser.Firefox;
$telerik.quirksMode=$telerik.isIE&&document.compatMode!="CSS1Compat";
$telerik.standardsMode=!$telerik.quirksMode;
$telerik._borderThickness();
Telerik.Web.UI.Orientation=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.Orientation.prototype={Horizontal:0,Vertical:1};
Telerik.Web.UI.Orientation.registerEnum("Telerik.Web.UI.Orientation",false);
Telerik.Web.UI.RadWebControl=function(_b6){
Telerik.Web.UI.RadWebControl.initializeBase(this,[_b6]);
this._clientStateFieldID=null;
};
Telerik.Web.UI.RadWebControl.prototype={initialize:function(){
Telerik.Web.UI.RadWebControl.callBaseMethod(this,"initialize");
$telerik.registerControl(this);
if(!this.get_clientStateFieldID()){
return;
}
var _b7=$get(this.get_clientStateFieldID());
if(!_b7){
return;
}
_b7.setAttribute("autocomplete","off");
},dispose:function(){
$telerik.unregisterControl(this);
Telerik.Web.UI.RadWebControl.callBaseMethod(this,"dispose");
},raiseEvent:function(_b8,_b9){
var _ba=this.get_events().getHandler(_b8);
if(_ba){
if(!_b9){
_b9=Sys.EventArgs.Empty;
}
_ba(this,_b9);
}
},updateClientState:function(){
this.set_clientState(this.saveClientState());
},saveClientState:function(){
return null;
},get_clientStateFieldID:function(){
return this._clientStateFieldID;
},set_clientStateFieldID:function(_bb){
if(this._clientStateFieldID!=_bb){
this._clientStateFieldID=_bb;
this.raisePropertyChanged("ClientStateFieldID");
}
},get_clientState:function(){
if(this._clientStateFieldID){
var _bc=document.getElementById(this._clientStateFieldID);
if(_bc){
return _bc.value;
}
}
return null;
},set_clientState:function(_bd){
if(this._clientStateFieldID){
var _be=document.getElementById(this._clientStateFieldID);
if(_be){
_be.value=_bd;
}
}
},_getChildElement:function(id){
return $get(this.get_id()+"_"+id);
},_findChildControl:function(id){
return $find(this.get_id()+"_"+id);
}};
Telerik.Web.UI.RadWebControl.registerClass("Telerik.Web.UI.RadWebControl",Sys.UI.Control);
Telerik.Web.Timer=function(){
Telerik.Web.Timer.initializeBase(this);
this._interval=1000;
this._enabled=false;
this._timer=null;
this._timerCallbackDelegate=Function.createDelegate(this,this._timerCallback);
};
Telerik.Web.Timer.prototype={get_interval:function(){
return this._interval;
},set_interval:function(_c1){
if(this._interval!==_c1){
this._interval=_c1;
this.raisePropertyChanged("interval");
if(!this.get_isUpdating()&&(this._timer!==null)){
this._stopTimer();
this._startTimer();
}
}
},get_enabled:function(){
return this._enabled;
},set_enabled:function(_c2){
if(_c2!==this.get_enabled()){
this._enabled=_c2;
this.raisePropertyChanged("enabled");
if(!this.get_isUpdating()){
if(_c2){
this._startTimer();
}else{
this._stopTimer();
}
}
}
},add_tick:function(_c3){
this.get_events().addHandler("tick",_c3);
},remove_tick:function(_c4){
this.get_events().removeHandler("tick",_c4);
},dispose:function(){
this.set_enabled(false);
this._stopTimer();
Telerik.Web.Timer.callBaseMethod(this,"dispose");
},updated:function(){
Telerik.Web.Timer.callBaseMethod(this,"updated");
if(this._enabled){
this._stopTimer();
this._startTimer();
}
},_timerCallback:function(){
var _c5=this.get_events().getHandler("tick");
if(_c5){
_c5(this,Sys.EventArgs.Empty);
}
},_startTimer:function(){
this._timer=window.setInterval(this._timerCallbackDelegate,this._interval);
},_stopTimer:function(){
window.clearInterval(this._timer);
this._timer=null;
}};
Telerik.Web.Timer.registerClass("Telerik.Web.Timer",Sys.Component);
Telerik.Web.BoxSide=function(){
};
Telerik.Web.BoxSide.prototype={Top:0,Right:1,Bottom:2,Left:3};
Telerik.Web.BoxSide.registerEnum("Telerik.Web.BoxSide",false);
if(Sys.CultureInfo.prototype._getAbbrMonthIndex){
try{
Sys.CultureInfo.prototype._getAbbrMonthIndex("");
}
catch(ex){
Sys.CultureInfo.prototype._getAbbrMonthIndex=function(_c6){
if(!this._upperAbbrMonths){
this._upperAbbrMonths=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
}
return Array.indexOf(this._upperAbbrMonths,this._toUpper(_c6));
};
Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex=Sys.CultureInfo.prototype._getAbbrMonthIndex;
Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex=Sys.CultureInfo.prototype._getAbbrMonthIndex;
}
}
Type.registerNamespace("Telerik.Web.UI.Dialogs");
Telerik.Web.IParameterConsumer=function(){
};
Telerik.Web.IParameterConsumer.prototype={clientInit:function(_c7){
throw Error.notImplemented();
}};
Telerik.Web.IParameterConsumer.registerInterface("Telerik.Web.IParameterConsumer");
Telerik.Web.UI.Dialogs.CommonDialogScript=function(){
};
Telerik.Web.UI.Dialogs.CommonDialogScript.get_windowReference=function(){
if(window.radWindow){
return window.radWindow;
}
if(window.frameElement&&window.frameElement.radWindow){
return window.frameElement.radWindow;
}
return null;
};
Telerik.Web.UI.Dialogs.CommonDialogScript.registerClass("Telerik.Web.UI.Dialogs.CommonDialogScript",null);
Telerik.Web.UI.WebServiceLoaderEventArgs=function(_c8){
Telerik.Web.UI.WebServiceLoaderEventArgs.initializeBase(this);
this._context=_c8;
};
Telerik.Web.UI.WebServiceLoaderEventArgs.prototype={get_context:function(){
return this._context;
}};
Telerik.Web.UI.WebServiceLoaderEventArgs.registerClass("Telerik.Web.UI.WebServiceLoaderEventArgs",Sys.EventArgs);
Telerik.Web.UI.WebServiceLoaderSuccessEventArgs=function(_c9,_ca){
Telerik.Web.UI.WebServiceLoaderSuccessEventArgs.initializeBase(this,[_ca]);
this._data=_c9;
};
Telerik.Web.UI.WebServiceLoaderSuccessEventArgs.prototype={get_data:function(){
return this._data;
}};
Telerik.Web.UI.WebServiceLoaderSuccessEventArgs.registerClass("Telerik.Web.UI.WebServiceLoaderSuccessEventArgs",Telerik.Web.UI.WebServiceLoaderEventArgs);
Telerik.Web.UI.WebServiceLoaderErrorEventArgs=function(_cb,_cc){
Telerik.Web.UI.WebServiceLoaderErrorEventArgs.initializeBase(this,[_cc]);
this._message=_cb;
};
Telerik.Web.UI.WebServiceLoaderErrorEventArgs.prototype={get_message:function(){
return this._message;
}};
Telerik.Web.UI.WebServiceLoaderErrorEventArgs.registerClass("Telerik.Web.UI.WebServiceLoaderErrorEventArgs",Telerik.Web.UI.WebServiceLoaderEventArgs);
Telerik.Web.UI.WebServiceLoader=function(_cd){
this._webServiceSettings=_cd;
this._events=null;
this._currentWebRequest=null;
this._onWebServiceSuccessDelegate=Function.createDelegate(this,this._onWebServiceSuccess);
this._onWebServiceErrorDelegate=Function.createDelegate(this,this._onWebServiceError);
};
Telerik.Web.UI.WebServiceLoader.prototype={get_webServiceSettings:function(){
return this._webServiceSettings;
},get_events:function(){
if(!this._events){
this._events=new Sys.EventHandlerList();
}
return this._events;
},loadData:function(_ce,_cf){
var _d0=this.get_webServiceSettings();
if(_d0.get_isEmpty()){
Error.invalidOperation("Please, specify valid web service and method.");
return;
}
var _d1=_d0.get_path();
var _d2=_d0.get_method();
this._raiseEvent("loadingStarted",new Telerik.Web.UI.WebServiceLoaderEventArgs(_cf));
this._currentWebRequest=Sys.Net.WebServiceProxy.invoke(_d1,_d2,false,_ce,this._onWebServiceSuccessDelegate,this._onWebServiceErrorDelegate,_cf);
},add_loadingStarted:function(_d3){
this.get_events().addHandler("loadingStarted",_d3);
},add_loadingError:function(_d4){
this.get_events().addHandler("loadingError",_d4);
},add_loadingSuccess:function(_d5){
this.get_events().addHandler("loadingSuccess",_d5);
},_onWebServiceSuccess:function(_d6,_d7){
var _d8=new Telerik.Web.UI.WebServiceLoaderSuccessEventArgs(_d6,_d7);
this._raiseEvent("loadingSuccess",_d8);
},_onWebServiceError:function(_d9,_da){
var _db=new Telerik.Web.UI.WebServiceLoaderErrorEventArgs(_d9.get_message(),_da);
this._raiseEvent("loadingError",_db);
},_raiseEvent:function(_dc,_dd){
var _de=this.get_events().getHandler(_dc);
if(_de){
if(!_dd){
_dd=Sys.EventArgs.Empty;
}
_de(this,_dd);
}
}};
Telerik.Web.UI.WebServiceLoader.registerClass("Telerik.Web.UI.WebServiceLoader");
Telerik.Web.UI.WebServiceSettings=function(_df){
this._path=null;
this._method=null;
if(!_df){
_df={};
}
if(typeof (_df.path)!="undefined"){
this._path=_df.path;
}
if(typeof (_df.method)!="undefined"){
this._method=_df.method;
}
};
Telerik.Web.UI.WebServiceSettings.prototype={get_path:function(){
return this._path;
},set_path:function(_e0){
this._path=_e0;
},get_method:function(){
return this._method;
},set_method:function(_e1){
this._method=_e1;
},get_isEmpty:function(){
var _e2=this.get_path();
var _e3=this.get_method();
return (!(_e2&&_e3));
}};
Telerik.Web.UI.WebServiceSettings.registerClass("Telerik.Web.UI.WebServiceSettings");


/* END Telerik.Web.UI.Common.Core.js */
/* START Telerik.Web.UI.Ajax.Ajax.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxControl=function(_1){
Telerik.Web.UI.RadAjaxControl.initializeBase(this,[_1]);
this._clientEvents={};
this._uniqueID="";
this._enableHistory=false;
this._enableAJAX=true;
this._requestQueueSize=0;
this._requestQueue=[];
this._loadingPanelsToHide=[];
this._initializeRequestHandler=null;
this._endRequestHandler=null;
this._isRequestInProgress=false;
this._links=[];
this._styles=[];
this.Type="Telerik.Web.UI.RadAjaxControl";
this.UniqueID=this._uniqueID;
this.EnableHistory=this._enableHistory;
this.EnableAJAX=this._enableAJAX;
this.Links=this._links;
this.Styles=this._styles;
this._updatePanels="";
};
Telerik.Web.UI.RadAjaxControl.prototype={initialize:function(){
Telerik.Web.UI.RadAjaxControl.callBaseMethod(this,"initialize");
for(var _2 in this._clientEvents){
if(typeof (this._clientEvents[_2])!="string"){
continue;
}
if(this._clientEvents[_2]!=""){
var _3=this._clientEvents[_2];
if(_3.indexOf("(")!=-1){
this[_2]=_3;
}else{
this[_2]=eval(_3);
}
}else{
this[_2]=null;
}
}
var _4=Sys.WebForms.PageRequestManager.getInstance();
this._initializeRequestHandler=Function.createDelegate(this,this._initializeRequest);
_4.add_initializeRequest(this._initializeRequestHandler);
},_onFormSubmitCompleted:function(_5,_6){
if(_5._xmlHttpRequest!=null&&!_5.get_timedOut()){
var _7=this.getResponseItems(_5.get_responseData(),"scriptBlock");
for(var i=0,_9=_7.length;i<_9;i++){
var _a=_7[i].content;
if(_a.indexOf(Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID))!=-1){
var _b=_a.substr(_a.indexOf("\"links\":")+10,_a.indexOf("]",_a.indexOf("\"links\":"))-(_a.indexOf("\"links\":")+10)).replace(/\"/g,"");
if(_b!=""){
this._links=_b.split(",");
this.updateHeadLinks();
}
}
if(_a.indexOf(".axd")==-1&&_7[i].id=="ScriptPath"){
Telerik.Web.UI.RadAjaxControl.IncludeClientScript(_a);
}
}
var _c=this.getResponseItems(_5.get_responseData(),"updatePanel");
Telerik.Web.UI.RadAjaxControl.panelsToClear=[];
for(var i=0,_9=_c.length;i<_9;i++){
var _d=_c[i];
if(!$get(_d.id)){
var _e=document.createElement("div");
_e.id=_d.id;
var _f=$get(_d.id.replace("Panel",""));
if(!_f){
continue;
}
var _10=_f.parentNode;
var _11=_f.nextSibling||Telerik.Web.UI.RadAjaxControl.GetNodeNextSibling(_f);
if(_f.nodeType===1){
if(_f.dispose&&typeof (_f.dispose)==="function"){
_f.dispose();
}else{
if(_f.control&&typeof (_f.control.dispose)==="function"){
_f.control.dispose();
}
}
var _12=Sys.UI.Behavior.getBehaviors(_f);
for(var j=_12.length-1;j>=0;j--){
_12[j].dispose();
}
}
Sys.WebForms.PageRequestManager.getInstance()._destroyTree(_f);
_10.removeChild(_f);
Telerik.Web.UI.RadAjaxControl.InsertAtLocation(_e,_10,_11);
Telerik.Web.UI.RadAjaxControl.panelsToClear[Telerik.Web.UI.RadAjaxControl.panelsToClear.length]=_d;
}
}
}
_5.get_webRequest().remove_completed(this._onFormSubmitCompletedHandler);
},dispose:function(){
this.hideLoadingPanels();
var _14=Sys.WebForms.PageRequestManager.getInstance();
_14.remove_initializeRequest(this._initializeRequestHandler);
Telerik.Web.UI.RadAjaxControl.callBaseMethod(this,"dispose");
},get_enableAJAX:function(){
return this._enableAJAX;
},set_enableAJAX:function(_15){
if(this._enableAJAX!=_15){
this._enableAJAX=_15;
}
},get_enableHistory:function(){
return this._enableHistory;
},set_enableHistory:function(_16){
if(this._enableHistory!=_16){
this._enableHistory=_16;
}
},get_clientEvents:function(){
return this._clientEvents;
},set_clientEvents:function(_17){
if(this._clientEvents!=_17){
this._clientEvents=_17;
}
},get_links:function(){
return this._links;
},set_links:function(_18){
if(this._links!=_18){
this._links=_18;
if(this._links.length>0){
this.updateHeadLinks();
}
}
},get_styles:function(){
return this._styles;
},set_styles:function(_19){
if(this._styles!=_19){
this._styles=_19;
if(this._styles.length>0){
this.updateHeadStyles();
}
}
},get_uniqueID:function(){
return this._uniqueID;
},set_uniqueID:function(_1a){
if(this._uniqueID!=_1a){
this._uniqueID=_1a;
window[Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID)]=this;
}
},get_requestQueueSize:function(){
return this._requestQueueSize;
},set_requestQueueSize:function(_1b){
if(_1b>0){
this._requestQueueSize=_1b;
this.raisePropertyChanged("requestQueueSize");
}
},isChildOf:function(_1c,_1d){
while(_1c!=null){
if(_1c==_1d){
return true;
}
_1c=_1c.parentNode;
}
return false;
},_initializeRequest:function(_1e,_1f){
var _20=Sys.WebForms.PageRequestManager.getInstance();
if(_20.get_isInAsyncPostBack()&&this._requestQueueSize>0){
this._queueRequest(_1e,_1f);
}
if(this.Type=="Telerik.Web.UI.RadAjaxManager"){
if(_1f.get_postBackElement()!=this.get_element()){
var _21=this._updatePanels.split(",");
if(Array.contains(_21,_1f.get_postBackElement().id)){
this._isRequestInProgress=true;
this._attachRequestHandlers(_1e,_1f,false);
return false;
}else{
var _22=_1f.get_postBackElement().parentNode;
var _23=false;
while(_22!=null){
if(_22.id&&Array.contains(_21,_22.id)){
_23=true;
break;
}
_22=_22.parentNode;
}
if(_23){
this._isRequestInProgress=true;
this._attachRequestHandlers(_1e,_1f,false);
return false;
}
}
if(!this._initiators[_1f.get_postBackElement().id]){
var _22=_1f.get_postBackElement().parentNode;
var _23=false;
while(_22!=null){
if(_22.id&&this._initiators[_22.id]){
_23=true;
break;
}
_22=_22.parentNode;
}
if(!_23){
this._isRequestInProgress=true;
this._attachRequestHandlers(_1e,_1f,false);
return false;
}
}
}
}
if(this.Type=="Telerik.Web.UI.RadAjaxPanel"){
var _24=this._getParentAjaxPanel(_1f.get_postBackElement());
if(_24&&_24.get_id()!=this.get_id()){
return false;
}
if(!this.isChildOf(_1f.get_postBackElement(),this.get_element())){
return false;
}
}
if(this._enableHistory){
if(Telerik.Web.UI.RadAjaxControl.History[""]==null){
Telerik.Web.UI.RadAjaxControl.HandleHistory(_1e._uniqueIDToClientID(this._uniqueID),"");
}
Telerik.Web.UI.RadAjaxControl.HandleHistory(_1e._uniqueIDToClientID(this._uniqueID),_1f.get_request().get_body());
}
if(_1e._form["__EVENTTARGET"]&&_1e._form["__EVENTTARGET"].value){
this.__EVENTTARGET=_1e._form["__EVENTTARGET"].value;
}else{
this.__EVENTTARGET=_1f.get_postBackElement().id;
}
if(_1f.get_postBackElement().name){
this.__EVENTTARGET=_1f.get_postBackElement().name;
}
this.__EVENTARGUMENT=_1e._form["__EVENTARGUMENT"].value;
var evt=new Telerik.Web.UI.RadAjaxRequestEventArgs(this.__EVENTTARGET,_1e._form["__EVENTARGUMENT"].value,this._enableAJAX);
var _26=this.fireEvent(this,"OnRequestStart",[evt]);
if(evt.get_cancel()||(typeof (_26)!="undefined"&&!_26)){
_1f.set_cancel(true);
return;
}
if(!evt._enableAjax||!evt.EnableAjax){
_1f.set_cancel(true);
_1e._form["__EVENTTARGET"].value=this.__EVENTTARGET;
_1e._form["__EVENTARGUMENT"].value=this.__EVENTARGUMENT;
_1e._form.submit();
return;
}
this._isRequestInProgress=true;
this._attachRequestHandlers(_1e,_1f,true);
},_endRequest:function(_27,_28){
_27.remove_endRequest(this._endRequestHandler);
for(var i=0,_2a=Telerik.Web.UI.RadAjaxControl.panelsToClear.length;i<_2a;i++){
var _2b=Telerik.Web.UI.RadAjaxControl.panelsToClear[i];
var _2c=document.getElementById(_2b.id);
var _2d=$get(_2b.id.replace("Panel",""));
if(!_2d){
continue;
}
var _2e=_2c.parentNode;
var _2f=_2c.nextSibling||Telerik.Web.UI.RadAjaxControl.GetNodeNextSibling(_2c);
Telerik.Web.UI.RadAjaxControl.InsertAtLocation(_2d,_2e,_2f);
_2c.parentNode.removeChild(_2c);
}
this._isRequestInProgress=false;
this.hideLoadingPanels();
if(typeof (this.__EVENTTARGET)!="undefined"&&typeof (this.__EVENTARGUMENT)!="undefined"){
var evt=new Telerik.Web.UI.RadAjaxRequestEventArgs(this.__EVENTTARGET,this.__EVENTARGUMENT,this._enableAJAX);
this.fireEvent(this,"OnResponseEnd",[evt]);
}
if(this._requestQueue.length>0){
this._executePendingRequest();
}
},_queueRequest:function(_31,_32){
_32.set_cancel(true);
if(this._requestQueue.length>=this._requestQueueSize){
return;
}
var _33=_32.get_postBackElement();
var _34=_33.id;
if(_33.name){
_34=_33.name;
}
if(_31._form["__EVENTTARGET"]&&_31._form["__EVENTTARGET"].value){
_34=_31._form["__EVENTTARGET"].value;
}
var _35=_31._form["__EVENTARGUMENT"].value;
Array.enqueue(this._requestQueue,[_34,_35]);
},_executePendingRequest:function(){
var _36=Array.dequeue(this._requestQueue);
var _37=_36[0];
var _38=_36[1];
var _39=Sys.WebForms.PageRequestManager.getInstance();
_39._doPostBack(_37,_38);
},_attachRequestHandlers:function(_3a,_3b,_3c){
this._endRequestHandler=Function.createDelegate(this,this._endRequest);
_3a.add_endRequest(this._endRequestHandler);
this._onFormSubmitCompletedHandler=Function.createDelegate(this,this._onFormSubmitCompleted);
_3b.get_request().add_completed(this._onFormSubmitCompletedHandler);
_3b.get_request()._get_eventHandlerList()._list.completed.reverse();
if(_3c){
var _3d=_3b.get_request().get_body();
var _3e=(_3d.lastIndexOf("&")!=_3d.length-1)?"&":"";
_3d+=_3e+"RadAJAXControlID="+_3a._uniqueIDToClientID(this._uniqueID);
_3b.get_request().set_body(_3d);
}
},_getParentAjaxPanel:function(_3f){
var _40=null;
while(_3f!=null){
if(typeof (_3f.id)!="undefined"&&$find(_3f.id)&&$find(_3f.id).Type=="Telerik.Web.UI.RadAjaxPanel"){
_40=$find(_3f.id);
break;
}
_3f=_3f.parentNode;
}
return _40;
},getResponseItems:function(_41,_42,_43){
var _44=Sys.WebForms.PageRequestManager.getInstance();
var _45=_41;
var _46,len,_48,id,_4a;
var _4b=0;
var _4c=null;
var _4d="|";
var _4e=[];
while(_4b<_45.length){
_46=_45.indexOf(_4d,_4b);
if(_46===-1){
_4c=_44._findText(_45,_4b);
break;
}
len=parseInt(_45.substring(_4b,_46),10);
if((len%1)!==0){
_4c=_44._findText(_45,_4b);
break;
}
_4b=_46+1;
_46=_45.indexOf(_4d,_4b);
if(_46===-1){
_4c=_44._findText(_45,_4b);
break;
}
_48=_45.substring(_4b,_46);
_4b=_46+1;
_46=_45.indexOf(_4d,_4b);
if(_46===-1){
_4c=_44._findText(_45,_4b);
break;
}
id=_45.substring(_4b,_46);
_4b=_46+1;
if((_4b+len)>=_45.length){
_4c=_44._findText(_45,_45.length);
break;
}
if(typeof (_44._decodeString)!="undefined"){
_4a=_44._decodeString(_45.substr(_4b,len));
}else{
_4a=_45.substr(_4b,len);
}
_4b+=len;
if(_45.charAt(_4b)!==_4d){
_4c=_44._findText(_45,_4b);
break;
}
_4b++;
if(_42!=undefined&&_42!=_48){
continue;
}
if(_43!=undefined&&_43!=id){
continue;
}
Array.add(_4e,{type:_48,id:id,content:_4a});
}
return _4e;
},pageLoading:function(_4f,_50){
},pageLoaded:function(_51,_52){
},hideLoadingPanels:function(){
for(var i=0;i<this._loadingPanelsToHide.length;i++){
var _54=this._loadingPanelsToHide[i].Panel;
var _55=this._loadingPanelsToHide[i].ControlID;
if(_54!=null){
_54.hide(_55);
Array.remove(this._loadingPanelsToHide,this._loadingPanelsToHide[i]);
i--;
}
}
},fireEvent:function(_56,_57,_58){
var _59=true;
if(typeof (_56[_57])=="string"){
_59=eval(_56[_57]);
}else{
if(typeof (_56[_57])=="function"){
if(_58){
if(typeof (_58.unshift)!="undefined"){
_58.unshift(_56);
_59=_56[_57].apply(_56,_58);
}else{
_59=_56[_57].apply(_56,[_58]);
}
}else{
_59=_56[_57]();
}
}
}
if(typeof (_59)!="boolean"){
return true;
}else{
return _59;
}
},updateHeadLinks:function(){
var _5a=this.getHeadElement();
var _5b=_5a.getElementsByTagName("link");
var _5c=[];
for(var j=0,_5e=_5b.length;j<_5e;j++){
var _5f=_5b[j].getAttribute("href");
_5c.push(_5f);
}
for(var i=0,_61=this._links.length;i<_61;i++){
var _62=this._links[i];
_62=_62.replace(/&amp;amp;t/g,"&t");
_62=_62.replace(/&amp;t/g,"&t");
var _63=Array.contains(_5c,_62);
if(!_63){
if(_62==""){
continue;
}
var _64=document.createElement("link");
_64.setAttribute("rel","stylesheet");
_64.setAttribute("href",_62);
_5a.appendChild(_64);
}
}
},updateHeadStyles:function(){
if(document.createStyleSheet!=null){
for(var i=0,_66=this._styles.length;i<_66;i++){
var _67=this._styles[i];
var _68=null;
try{
_68=document.createStyleSheet();
}
catch(e){
}
if(_68==null){
_68=document.createElement("style");
}
_68.cssText=_67;
}
}else{
var _69=null;
if(document.styleSheets.length==0){
css=document.createElement("style");
css.media="all";
css.type="text/css";
var _6a=this.getHeadElement();
_6a.appendChild(css);
_69=css;
}
if(document.styleSheets[0]){
_69=document.styleSheets[0];
}
for(var i=0;i<this._styles.length;i++){
var _67=this._styles[i];
var _6b=_67.split("}");
for(var j=0;j<_6b.length;j++){
if(_6b[j].replace(/\s*/,"")==""){
continue;
}
_69.insertRule(_6b[j]+"}",j+1);
}
}
}
},getHeadElement:function(){
var _6d=document.getElementsByTagName("head");
if(_6d.length>0){
return _6d[0];
}
var _6e=document.createElement("head");
document.documentElement.appendChild(_6e);
return _6e;
},ajaxRequest:function(_6f){
__doPostBack(this._uniqueID,_6f);
},ajaxRequestWithTarget:function(_70,_71){
__doPostBack(_70,_71);
},__doPostBack:function(_72,_73){
var _74=Sys.WebForms.PageRequestManager.getInstance()._form;
if(_74!=null){
if(_74["__EVENTTARGET"]!=null){
_74["__EVENTTARGET"].value=_72;
}
if(_74["__EVENTARGUMENT"]!=null){
_74["__EVENTARGUMENT"].value=_73;
}
_74.submit();
}
}};
Telerik.Web.UI.RadAjaxControl.registerClass("Telerik.Web.UI.RadAjaxControl",Sys.UI.Control);
Telerik.Web.UI.RadAjaxRequestEventArgs=function(_75,_76,_77){
Telerik.Web.UI.RadAjaxRequestEventArgs.initializeBase(this);
this._enableAjax=_77;
this._eventTarget=_75;
this._eventArgument=_76;
this._postbackControlClientID=_75.replace(/(\$|:)/g,"_");
this._eventTargetElement=$get(this._postbackControlClientID);
this.EnableAjax=this._enableAjax;
this.EventTarget=this._eventTarget;
this.EventArgument=this._eventArgument;
this.EventTargetElement=this._eventTargetElement;
};
Telerik.Web.UI.RadAjaxRequestEventArgs.prototype={get_enableAjax:function(){
return this._enableAjax;
},set_enableAjax:function(_78){
if(this._enableAjax!=_78){
this._enableAjax=_78;
}
},get_eventTarget:function(){
return this._eventTarget;
},get_eventArgument:function(){
return this._eventArgument;
},get_eventTargetElement:function(){
return this._eventTargetElement;
}};
Telerik.Web.UI.RadAjaxRequestEventArgs.registerClass("Telerik.Web.UI.RadAjaxRequestEventArgs",Sys.CancelEventArgs);
Telerik.Web.UI.RadAjaxControl.History={};
Telerik.Web.UI.RadAjaxControl.HandleHistory=function(_79,_7a){
if(window.netscape){
return;
}
var _7b=$get(_79+"_History");
if(_7b==null){
_7b=document.createElement("iframe");
_7b.id=_79+"_History";
_7b.name=_79+"_History";
_7b.style.width="0px";
_7b.style.height="0px";
_7b.src="javascript:''";
_7b.style.visibility="hidden";
var _7c=function(e){
if(!Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory){
Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory=true;
return;
}
var _7e="";
var _7f="";
var _80=_7b.contentWindow.document.getElementById("__DATA");
if(!_80){
return;
}
var _81=_80.value.split("&");
for(var i=0,_83=_81.length;i<_83;i++){
var _84=_81[i].split("=");
if(_84[0]=="__EVENTTARGET"){
_7e=_84[1];
}
if(_84[0]=="__EVENTARGUMENT"){
_7f=_84[1];
}
var _85=document.getElementById(Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(_84[0]));
if(_85!=null){
Telerik.Web.UI.RadAjaxControl.RestorePostData(_85,Telerik.Web.UI.RadAjaxControl.DecodePostData(_84[1]));
}
}
if(_7e!=""){
var _85=document.getElementById(Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(_7e));
if(_85!=null){
__doPostBack(_7e,Telerik.Web.UI.RadAjaxControl.DecodePostData(_7f),_79);
}
}
};
$addHandler(_7b,"load",_7c);
document.body.appendChild(_7b);
}
if(Telerik.Web.UI.RadAjaxControl.History[_7a]==null){
Telerik.Web.UI.RadAjaxControl.History[_7a]=true;
Telerik.Web.UI.RadAjaxControl.AddHistoryEntry(_7b,_7a);
}
};
Telerik.Web.UI.RadAjaxControl.AddHistoryEntry=function(_86,_87){
Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory=false;
_86.contentWindow.document.open();
_86.contentWindow.document.write("<input id='__DATA' name='__DATA' type='hidden' value='"+_87+"' />");
_86.contentWindow.document.close();
if(window.netscape){
_86.contentWindow.document.location.hash="#'"+new Date()+"'";
}
};
Telerik.Web.UI.RadAjaxControl.DecodePostData=function(_88){
if(decodeURIComponent){
return decodeURIComponent(_88);
}else{
return unescape(_88);
}
};
Telerik.Web.UI.RadAjaxControl.RestorePostData=function(_89,_8a){
if(_89.tagName.toLowerCase()=="select"){
for(var i=0,_8c=_89.options.length;i<_8c;i++){
if(_8a.indexOf(_89.options[i].value)!=-1){
_89.options[i].selected=true;
}
}
}
if(_89.tagName.toLowerCase()=="input"&&(_89.type.toLowerCase()=="text"||_89.type.toLowerCase()=="hidden")){
_89.value=_8a;
}
if(_89.tagName.toLowerCase()=="input"&&(_89.type.toLowerCase()=="checkbox"||_89.type.toLowerCase()=="radio")){
_89.checked=_8a;
}
};
Telerik.Web.UI.RadAjaxControl.GetNodeNextSibling=function(_8d){
if(_8d!=null&&_8d.nextSibling!=null){
return _8d.nextSibling;
}
return null;
};
Telerik.Web.UI.RadAjaxControl.InsertAtLocation=function(_8e,_8f,_90){
if(_90!=null){
return _8f.insertBefore(_8e,_90);
}else{
return _8f.appendChild(_8e);
}
};
Telerik.Web.UI.RadAjaxControl.FocusElement=function(_91){
var _92=document.getElementById(_91);
if(_92){
var _93=_92.tagName;
var _94=_92.type;
if(_93.toLowerCase()=="input"&&(_94.toLowerCase()=="checkbox"||_94.toLowerCase()=="radio")){
window.setTimeout(function(){
try{
_92.focus();
}
catch(e){
}
},500);
}else{
try{
Telerik.Web.UI.RadAjaxControl.SetSelectionFocus(_92);
_92.focus();
}
catch(e){
}
}
}
};
Telerik.Web.UI.RadAjaxControl.SetSelectionFocus=function(_95){
if(_95.createTextRange==null){
return;
}
var _96=null;
try{
_96=_95.createTextRange();
}
catch(e){
}
if(_96!=null){
_96.moveStart("textedit",_96.text.length);
_96.collapse(false);
_96.select();
}
};
Telerik.Web.UI.RadAjaxControl.panelsToClear=[];
Telerik.Web.UI.RadAjaxControl.UpdateElement=function(id,_98){
var _99=$get(id);
if(_99!=null){
_99.innerHTML=_98;
var _9a=Telerik.Web.UI.RadAjaxControl.GetScriptsSrc(_98);
for(var i=0,_9c=_9a.length;i<_9c;i++){
Telerik.Web.UI.RadAjaxControl.IncludeClientScript(_9a[i]);
}
_9a=Telerik.Web.UI.RadAjaxControl.GetTags(_98,"script");
for(var i=0,_9c=_9a.length;i<_9c;i++){
var _9d=_9a[i];
if(_9d.inner!=""){
Telerik.Web.UI.RadAjaxControl.EvalScriptCode(_9d.inner);
}
}
var _9e=document.getElementsByTagName("head")[0];
var _9f=Telerik.Web.UI.RadAjaxControl.GetLinkHrefs(_98);
for(var i=0,_9c=_9f.length;i<_9c;i++){
var _a0=_9f[i];
var _a1=document.createElement("link");
_a1.setAttribute("rel","stylesheet");
_a1.setAttribute("href",_a0);
_9e.appendChild(_a1);
}
}
};
Telerik.Web.UI.RadAjaxControl.IncludeClientScript=function(src){
var _a3=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
_a3.open("GET",src,false);
_a3.send(null);
if(_a3.status==200){
var _a4=_a3.responseText;
Telerik.Web.UI.RadAjaxControl.EvalScriptCode(_a4);
}
};
Telerik.Web.UI.RadAjaxControl.EvalScriptCode=function(_a5){
if(Telerik.Web.UI.RadAjaxControl.IsSafari()){
_a5=_a5.replace(/^\s*<!--((.|\n)*)-->\s*$/mi,"$1");
}
var _a6=document.createElement("script");
_a6.setAttribute("type","text/javascript");
if(Telerik.Web.UI.RadAjaxControl.IsSafari()){
_a6.appendChild(document.createTextNode(_a5));
}else{
_a6.text=_a5;
}
var _a7=document.getElementsByTagName("head")[0];
_a7.appendChild(_a6);
if(Telerik.Web.UI.RadAjaxControl.IsSafari()){
_a6.innerHTML="";
}else{
_a6.parentNode.removeChild(_a6);
}
};
Telerik.Web.UI.RadAjaxControl.GetTags=function(_a8,_a9){
var _aa=[];
var _ab=_a8;
while(1){
var _ac=Telerik.Web.UI.RadAjaxControl.GetTag(_ab,_a9);
if(_ac.index==-1){
break;
}
_aa[_aa.length]=_ac;
var _ad=_ac.index+_ac.outer.length;
_ab=_ab.substring(_ad,_ab.length);
}
return _aa;
};
Telerik.Web.UI.RadAjaxControl.GetTag=function(_ae,_af,_b0){
if(typeof (_b0)=="undefined"){
_b0="";
}
var _b1=new RegExp("<"+_af+"[^>]*>((.|\n|\r)*?)</"+_af+">","i");
var _b2=_ae.match(_b1);
if(_b2!=null&&_b2.length>=2){
return {outer:_b2[0],inner:_b2[1],index:_b2.index};
}else{
return {outer:_b0,inner:_b0,index:-1};
}
};
Telerik.Web.UI.RadAjaxControl.GetLinkHrefs=function(_b3){
var _b4=_b3;
var _b5=[];
while(1){
var _b6=_b4.match(/<link[^>]*href=('|")?([^'"]*)('|")?([^>]*)>.*?(<\/link>)?/i);
if(_b6==null||_b6.length<3){
break;
}
var _b7=_b6[2];
_b5[_b5.length]=_b7;
var _b8=_b6.index+_b7.length;
_b4=_b4.substring(_b8,_b4.length);
}
return _b5;
};
Telerik.Web.UI.RadAjaxControl.GetScriptsSrc=function(_b9){
var _ba=_b9;
var _bb=[];
while(1){
var _bc=_ba.match(/<script[^>]*src=('|")?([^'"]*)('|")?([^>]*)>.*?(<\/script>)?/i);
if(_bc==null||_bc.length<3){
break;
}
var _bd=_bc[2];
_bb[_bb.length]=_bd;
var _be=_bc.index+_bd.length;
_ba=_ba.substring(_be,_ba.length);
}
return _bb;
};
Telerik.Web.UI.RadAjaxControl.IsSafari=function(){
return (navigator.userAgent.match(/safari/i)!=null);
};
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxLoadingPanel=function(_bf){
Telerik.Web.UI.RadAjaxLoadingPanel.initializeBase(this,[_bf]);
this._uniqueID="";
this._minDisplayTime=0;
this._initialDelayTime=0;
this._isSticky=false;
this._transparency=0;
this._manager=null;
this._zIndex=90000;
this.UniqueID=this._uniqueID;
this.MinDisplayTime=this._minDisplayTime;
this.InitialDelayTime=this._initialDelayTime;
this.IsSticky=this._isSticky;
this.Transparency=this._transparency;
this.ZIndex=this._zIndex;
};
Telerik.Web.UI.RadAjaxLoadingPanel.prototype={initialize:function(){
Telerik.Web.UI.RadAjaxLoadingPanel.callBaseMethod(this,"initialize");
},dispose:function(){
Telerik.Web.UI.RadAjaxLoadingPanel.callBaseMethod(this,"dispose");
},get_zIndex:function(){
return this._zIndex;
},set_zIndex:function(_c0){
if(this._zIndex!=_c0){
this._zIndex=_c0;
}
},get_uniqueID:function(){
return this._uniqueID;
},set_uniqueID:function(_c1){
if(this._uniqueID!=_c1){
this._uniqueID=_c1;
window[Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID)]=this;
}
},get_initialDelayTime:function(){
return this._initialDelayTime;
},set_initialDelayTime:function(_c2){
if(this._initialDelayTime!=_c2){
this._initialDelayTime=_c2;
}
},get_isSticky:function(){
return this._isSticky;
},set_isSticky:function(_c3){
if(this._isSticky!=_c3){
this._isSticky=_c3;
}
},get_minDisplayTime:function(){
return this._minDisplayTime;
},set_minDisplayTime:function(_c4){
if(this._minDisplayTime!=_c4){
this._minDisplayTime=_c4;
}
},get_transparency:function(){
return this._transparency;
},set_transparency:function(_c5){
if(this._transparency!=_c5){
this._transparency=_c5;
}
},show:function(_c6){
var _c7=$get(_c6+"_wrapper");
if((typeof (_c7)=="undefined")||(!_c7)){
_c7=$get(_c6);
}
var _c8=this.get_element();
if(!(_c7&&_c8)){
return false;
}
var _c9=this._initialDelayTime;
var _ca=this;
var _cb=(!this._isSticky)?this.cloneLoadingPanel(_c8,_c6):_c8;
if(_c9){
window.setTimeout(function(){
try{
if(_ca._manager!=null&&_ca._manager._isRequestInProgress){
_ca.displayLoadingElement(_cb,_c7);
}
}
catch(e){
}
},_c9);
}else{
this.displayLoadingElement(_cb,_c7);
}
return true;
},hide:function(_cc){
var _cd=$get(_cc);
var _ce=String.format("{0}_wrapper",_cc);
var _cf=$get(_ce);
if(_cf){
_cd=_cf;
}
if(this.get_element()==null){
return;
}
var _d0=(!this._isSticky)?$get(this.get_element().id+_cc):this.get_element();
var now=new Date();
if(_d0==null){
return;
}
var _d2=now-_d0._startDisplayTime;
var _d3=this._minDisplayTime;
if(this._isSticky){
if(_d3>_d2){
window.setTimeout(function(){
_d0.style.display="none";
},_d3);
}else{
_d0.style.display="none";
}
}else{
if(_d3>_d2){
window.setTimeout(function(){
_d0.parentNode.removeChild(_d0);
if(typeof (_cd)!="undefined"&&(_cd!=null)){
_cd.style.visibility="visible";
}
},_d3);
}else{
_d0.parentNode.removeChild(_d0);
if(typeof (_cd)!="undefined"&&(_cd!=null)){
_cd.style.visibility="visible";
}
}
}
},cloneLoadingPanel:function(_d4,_d5){
var _d6=_d4.cloneNode(false);
_d6.innerHTML=_d4.innerHTML;
_d6.id=_d4.id+_d5;
document.body.insertBefore(_d6,document.body.firstChild);
return _d6;
},displayLoadingElement:function(_d7,_d8){
if(!this._isSticky){
var _d9=this.getElementRectangle(_d8);
_d7.style.position="absolute";
_d7.style.width=_d9.width+"px";
_d7.style.height=_d9.height+"px";
_d7.style.left=_d9.left+"px";
_d7.style.top=_d9.top+"px";
_d7.style.textAlign="center";
_d7.style.zIndex=this._zIndex;
var _da=100-parseInt(this._transparency);
if(parseInt(this._transparency)>0){
if(_d7.style&&_d7.style.MozOpacity!=null){
_d7.style.MozOpacity=_da/100;
}else{
if(_d7.style&&_d7.style.opacity!=null){
_d7.style.opacity=_da/100;
}else{
if(_d7.style&&_d7.style.filter!=null){
_d7.style.filter="alpha(opacity="+_da+");";
}
}
}
}else{
_d8.style.visibility="hidden";
}
}
_d7.style.display="";
_d7._startDisplayTime=new Date();
},getElementRectangle:function(_db){
if(!_db){
_db=this;
}
var _dc=$telerik.getLocation(_db);
var _dd=_dc.x;
var top=_dc.y;
var _df=_db.offsetWidth;
var _e0=_db.offsetHeight;
return {"left":_dd,"top":top,"width":_df,"height":_e0};
}};
Telerik.Web.UI.RadAjaxLoadingPanel.registerClass("Telerik.Web.UI.RadAjaxLoadingPanel",Sys.UI.Control);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxManager=function(_e1){
Telerik.Web.UI.RadAjaxManager.initializeBase(this,[_e1]);
this._ajaxSettings=[];
this._defaultLoadingPanelID="";
this._initiators={};
this._loadingPanelsToHide=[];
this._isRequestInProgress=false;
this.Type="Telerik.Web.UI.RadAjaxManager";
this._updatePanelsRenderMode=null;
this.AjaxSettings=this._ajaxSettings;
this.DefaultLoadingPanelID=this._defaultLoadingPanelID;
};
Telerik.Web.UI.RadAjaxManager.prototype={initialize:function(){
Telerik.Web.UI.RadAjaxManager.callBaseMethod(this,"initialize");
var _e2=this.get_element();
if(_e2!=null&&_e2.parentNode!=null&&_e2.parentNode.id==_e2.id+"SU"){
_e2.parentNode.style.display="none";
}
var _e3=this.get_ajaxSettings();
for(var i=0,_e5=_e3.length;i<_e5;i++){
this._initiators[_e3[i].InitControlID]=_e3[i].UpdatedControls;
}
},dispose:function(){
Telerik.Web.UI.RadAjaxManager.callBaseMethod(this,"dispose");
},get_ajaxSettings:function(){
return this._ajaxSettings;
},set_ajaxSettings:function(_e6){
if(this._ajaxSettings!=_e6){
this._ajaxSettings=_e6;
}
},get_defaultLoadingPanelID:function(){
return this._defaultLoadingPanelID;
},set_defaultLoadingPanelID:function(_e7){
if(this._defaultLoadingPanelID!=_e7){
this._defaultLoadingPanelID=_e7;
}
},get_updatePanelsRenderMode:function(){
return this._updatePanelsRenderMode;
},set_updatePanelsRenderMode:function(_e8){
if(this._updatePanelsRenderMode!=_e8){
this._updatePanelsRenderMode=_e8;
this._applyUpdatePanelsRenderMode(_e8);
}
},_applyUpdatePanelsRenderMode:function(_e9){
var _ea=Sys.WebForms.PageRequestManager.getInstance();
var ids=_ea._updatePanelClientIDs;
for(var i=0;i<ids.length;i++){
var _ed=$get(ids[i]);
if(_ed){
if(_ed.tagName.toLowerCase()=="span"){
continue;
}
_ed.style.display=(_e9==0)?"block":"inline";
}
}
},showLoadingPanels:function(id,_ef){
for(var i=0,_f1=_ef.length;i<_f1;i++){
if(_ef[i].InitControlID==id){
var _f2=_ef[i];
for(var j=0,_f4=_f2.UpdatedControls.length;j<_f4;j++){
var _f5=_f2.UpdatedControls[j];
var _f6=_f5.PanelID;
if(_f6==""){
_f6=this._defaultLoadingPanelID;
}
var _f7=_f5.ControlID;
if(_f7==this._uniqueID){
continue;
}
var _f8=$find(_f6);
if(_f8!=null){
_f8._manager=this;
if(_f8.show(_f7)){
var obj={"Panel":_f8,"ControlID":_f7};
if(!Array.contains(this._loadingPanelsToHide,obj)){
this._loadingPanelsToHide[this._loadingPanelsToHide.length]=obj;
}
}
}
}
}
}
},_initializeRequest:function(_fa,_fb){
Telerik.Web.UI.RadAjaxManager.callBaseMethod(this,"_initializeRequest",[_fa,_fb]);
if(!this._isRequestInProgress){
return;
}
var _fc=_fb.get_postBackElement();
if(_fc!=null){
if(this._initiators[_fc.id]){
this.showLoadingPanels(_fc.id,this.get_ajaxSettings());
}else{
var _fd=_fc.parentNode;
var _fe=false;
while(_fd!=null){
if(_fd.id&&this._initiators[_fd.id]){
_fe=true;
break;
}
_fd=_fd.parentNode;
}
if(_fe){
this.showLoadingPanels(_fd.id,this.get_ajaxSettings());
}
}
}
},updateElement:function(id,html){
Telerik.Web.UI.RadAjaxControl.UpdateElement(id,html);
}};
Telerik.Web.UI.RadAjaxManager.registerClass("Telerik.Web.UI.RadAjaxManager",Telerik.Web.UI.RadAjaxControl);
Telerik.Web.UI.RadAjaxManager.UpdateElement=function(id,html){
Telerik.Web.UI.RadAjaxControl.UpdateElement(id,html);
};
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxPanel=function(_103){
Telerik.Web.UI.RadAjaxPanel.initializeBase(this,[_103]);
this._loadingPanelID="";
this._loadingPanelsToHide=[];
this.Type="Telerik.Web.UI.RadAjaxPanel";
this.LoadingPanelID=this._loadingPanelID;
};
Telerik.Web.UI.RadAjaxPanel.prototype={initialize:function(){
Telerik.Web.UI.RadAjaxPanel.callBaseMethod(this,"initialize");
},dispose:function(){
Telerik.Web.UI.RadAjaxPanel.callBaseMethod(this,"dispose");
},_initializeRequest:function(_104,args){
Telerik.Web.UI.RadAjaxPanel.callBaseMethod(this,"_initializeRequest",[_104,args]);
if(!this._isRequestInProgress){
return;
}
var _106=args.get_postBackElement();
if(_106!=null&&(_106==this.get_element()||this.isChildOf(_106,this.get_element()))){
var _107=$find(this._loadingPanelID);
if(_107!=null){
_107._manager=this;
if(_107.show(this.get_element().id)){
var obj={"Panel":_107,"ControlID":this.get_element().id};
if(!Array.contains(this._loadingPanelsToHide,obj)){
this._loadingPanelsToHide[this._loadingPanelsToHide.length]=obj;
}
}
}
}
},get_loadingPanelID:function(){
return this._loadingPanelID;
},set_loadingPanelID:function(_109){
if(this._loadingPanelID!=_109){
this._loadingPanelID=_109;
}
}};
Telerik.Web.UI.RadAjaxPanel.registerClass("Telerik.Web.UI.RadAjaxPanel",Telerik.Web.UI.RadAjaxControl);


/* END Telerik.Web.UI.Ajax.Ajax.js */
/* START Telerik.Web.UI.Common.Popup.PopupScripts.js */
Type.registerNamespace("Telerik.Web");
Telerik.Web.BehaviorBase=function(_1){
Telerik.Web.BehaviorBase.initializeBase(this,[_1]);
this._clientStateFieldID=null;
this._pageRequestManager=null;
this._partialUpdateBeginRequestHandler=null;
this._partialUpdateEndRequestHandler=null;
};
Telerik.Web.BehaviorBase.prototype={initialize:function(){
Telerik.Web.BehaviorBase.callBaseMethod(this,"initialize");
},dispose:function(){
Telerik.Web.BehaviorBase.callBaseMethod(this,"dispose");
if(this._pageRequestManager){
if(this._partialUpdateBeginRequestHandler){
this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequestHandler);
this._partialUpdateBeginRequestHandler=null;
}
if(this._partialUpdateEndRequestHandler){
this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestHandler);
this._partialUpdateEndRequestHandler=null;
}
this._pageRequestManager=null;
}
},get_ClientStateFieldID:function(){
return this._clientStateFieldID;
},set_ClientStateFieldID:function(_2){
if(this._clientStateFieldID!=_2){
this._clientStateFieldID=_2;
this.raisePropertyChanged("ClientStateFieldID");
}
},get_ClientState:function(){
if(this._clientStateFieldID){
var _3=document.getElementById(this._clientStateFieldID);
if(_3){
return _3.value;
}
}
return null;
},set_ClientState:function(_4){
if(this._clientStateFieldID){
var _5=document.getElementById(this._clientStateFieldID);
if(_5){
_5.value=_4;
}
}
},registerPartialUpdateEvents:function(){
if(Sys&&Sys.WebForms&&Sys.WebForms.PageRequestManager){
this._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();
if(this._pageRequestManager){
this._partialUpdateBeginRequestHandler=Function.createDelegate(this,this._partialUpdateBeginRequest);
this._pageRequestManager.add_beginRequest(this._partialUpdateBeginRequestHandler);
this._partialUpdateEndRequestHandler=Function.createDelegate(this,this._partialUpdateEndRequest);
this._pageRequestManager.add_endRequest(this._partialUpdateEndRequestHandler);
}
}
},_partialUpdateBeginRequest:function(_6,_7){
},_partialUpdateEndRequest:function(_8,_9){
}};
Telerik.Web.BehaviorBase.registerClass("Telerik.Web.BehaviorBase",Sys.UI.Behavior);
Type.registerNamespace("Telerik.Web");
Telerik.Web.IDragSource=function(){
};
Telerik.Web.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();
}};
Telerik.Web.IDragSource.registerInterface("Telerik.Web.IDragSource");
Telerik.Web.IDropTarget=function(){
};
Telerik.Web.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();
}};
Telerik.Web.IDropTarget.registerInterface("Telerik.Web.IDropTarget");
Telerik.Web.DragMode=function(){
throw Error.invalidOperation();
};
Telerik.Web.DragMode.prototype={Copy:0,Move:1};
Telerik.Web.DragMode.registerEnum("Telerik.Web.DragMode");
Telerik.Web.DragDropEventArgs=function(_a,_b,_c){
this._dragMode=_a;
this._dataType=_b;
this._data=_c;
};
Telerik.Web.DragDropEventArgs.prototype={get_dragMode:function(){
return this._dragMode||null;
},get_dragDataType:function(){
return this._dataType||null;
},get_dragData:function(){
return this._data||null;
}};
Telerik.Web.DragDropEventArgs.registerClass("Telerik.Web.DragDropEventArgs");
Telerik.Web._DragDropManager=function(){
this._instance=null;
this._events=null;
};
Telerik.Web._DragDropManager.prototype={add_dragStart:function(_d){
this.get_events().addHandler("dragStart",_d);
},remove_dragStart:function(_e){
this.get_events().removeHandler("dragStart",_e);
},get_events:function(){
if(!this._events){
this._events=new Sys.EventHandlerList();
}
return this._events;
},add_dragStop:function(_f){
this.get_events().addHandler("dragStop",_f);
},remove_dragStop:function(_10){
this.get_events().removeHandler("dragStop",_10);
},_getInstance:function(){
if(!this._instance){
if(Sys.Browser.agent===Sys.Browser.InternetExplorer){
this._instance=new Telerik.Web.IEDragDropManager();
}else{
this._instance=new Telerik.Web.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(_11,_12,_13){
this._getInstance().startDragDrop(_11,_12,_13);
},registerDropTarget:function(_14,_15){
this._getInstance().registerDropTarget(_14,_15);
},unregisterDropTarget:function(_16){
this._getInstance().unregisterDropTarget(_16);
},dispose:function(){
delete this._events;
Sys.Application.unregisterDisposableObject(this);
Sys.Application.removeComponent(this);
},_raiseDragStart:function(_17,_18){
var _19=this.get_events().getHandler("dragStart");
if(_19){
_19(this,_18);
}
},_raiseDragStop:function(_1a,_1b){
var _1c=this.get_events().getHandler("dragStop");
if(_1c){
_1c(this,_1b);
}
}};
Telerik.Web._DragDropManager.registerClass("Telerik.Web._DragDropManager");
Telerik.Web.DragDropManager=new Telerik.Web._DragDropManager();
Telerik.Web.IEDragDropManager=function(){
Telerik.Web.IEDragDropManager.initializeBase(this);
this._dropTargets=null;
this._radius=10;
this._activeDragVisual=null;
this._activeContext=null;
this._activeDragSource=null;
this._underlyingTarget=null;
this._oldOffset=null;
this._potentialTarget=null;
this._isDragging=false;
this._mouseUpHandler=null;
this._documentMouseMoveHandler=null;
this._documentDragOverHandler=null;
this._dragStartHandler=null;
this._mouseMoveHandler=null;
this._dragEnterHandler=null;
this._dragLeaveHandler=null;
this._dragOverHandler=null;
this._dropHandler=null;
this._areEventsWired=false;
};
Telerik.Web.IEDragDropManager.prototype={add_dragStart:function(_1d){
this.get_events().addHandler("dragStart",_1d);
},remove_dragStart:function(_1e){
this.get_events().removeHandler("dragStart",_1e);
},add_dragStop:function(_1f){
this.get_events().addHandler("dragStop",_1f);
},remove_dragStop:function(_20){
this.get_events().removeHandler("dragStop",_20);
},initialize:function(){
Telerik.Web.IEDragDropManager.callBaseMethod(this,"initialize");
this._mouseUpHandler=Function.createDelegate(this,this._onMouseUp);
this._documentMouseMoveHandler=Function.createDelegate(this,this._onDocumentMouseMove);
this._documentDragOverHandler=Function.createDelegate(this,this._onDocumentDragOver);
this._dragStartHandler=Function.createDelegate(this,this._onDragStart);
this._mouseMoveHandler=Function.createDelegate(this,this._onMouseMove);
this._dragEnterHandler=Function.createDelegate(this,this._onDragEnter);
this._dragLeaveHandler=Function.createDelegate(this,this._onDragLeave);
this._dragOverHandler=Function.createDelegate(this,this._onDragOver);
this._dropHandler=Function.createDelegate(this,this._onDrop);
},dispose:function(){
if(this._dropTargets){
for(var i=0;i<this._dropTargets;i++){
this.unregisterDropTarget(this._dropTargets[i]);
}
this._dropTargets=null;
}
Telerik.Web.IEDragDropManager.callBaseMethod(this,"dispose");
},startDragDrop:function(_22,_23,_24){
var ev=window._event;
if(this._isDragging){
return;
}
this._underlyingTarget=null;
this._activeDragSource=_22;
this._activeDragVisual=_23;
this._activeContext=_24;
var _26={x:ev.clientX,y:ev.clientY};
_23.originalPosition=_23.style.position;
var _27=$telerik.getLocation(_23);
_23.style.position="absolute";
document._lastPosition=_26;
_23.startingPoint=_26;
var _28=this.getScrollOffset(_23,true);
_23.startingPoint=this.addPoints(_23.startingPoint,_28);
if(_23.style.position=="absolute"){
_23.startingPoint=this.subtractPoints(_23.startingPoint,_27);
}else{
var _29=parseInt(_23.style.left);
var top=parseInt(_23.style.top);
if(isNaN(_29)){
_29="0";
}
if(isNaN(top)){
top="0";
}
_23.startingPoint=this.subtractPoints(_23.startingPoint,{x:_29,y:top});
}
this._prepareForDomChanges();
_22.onDragStart();
var _2b=new Telerik.Web.DragDropEventArgs(_22.get_dragMode(),_22.get_dragDataType(),_22.getDragData(_24));
var _2c=this.get_events().getHandler("dragStart");
if(_2c){
_2c(this,_2b);
}
this._recoverFromDomChanges();
this._unwireEvents();
this._wireEvents();
this._drag(true);
},_stopDragDrop:function(_2d){
var ev=window._event;
if(this._activeDragSource!=null){
this._unwireEvents();
if(!_2d){
_2d=(this._underlyingTarget==null);
}
if(!_2d&&this._underlyingTarget!=null){
this._underlyingTarget.drop(this._activeDragSource.get_dragMode(),this._activeDragSource.get_dragDataType(),this._activeDragSource.getDragData(this._activeContext));
}
this._activeDragSource.onDragEnd(_2d);
var _2f=this.get_events().getHandler("dragStop");
if(_2f){
_2f(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;
ev.preventDefault();
}
},_drag:function(_30){
var ev=window._event;
var _32={x:ev.clientX,y:ev.clientY};
document._lastPosition=_32;
var _33=this.getScrollOffset(this._activeDragVisual,true);
var _34=this.addPoints(this.subtractPoints(_32,this._activeDragVisual.startingPoint),_33);
if(!_30&&parseInt(this._activeDragVisual.style.left)==_34.x&&parseInt(this._activeDragVisual.style.top)==_34.y){
return;
}
$telerik.setLocation(this._activeDragVisual,_34);
this._prepareForDomChanges();
this._activeDragSource.onDrag();
this._recoverFromDomChanges();
this._potentialTarget=this._findPotentialTarget(this._activeDragSource,this._activeDragVisual);
var _35=(this._potentialTarget!=this._underlyingTarget||this._potentialTarget==null);
if(_35&&this._underlyingTarget!=null){
this._leaveTarget(this._activeDragSource,this._underlyingTarget);
}
if(this._potentialTarget!=null){
if(_35){
this._underlyingTarget=this._potentialTarget;
this._enterTarget(this._activeDragSource,this._underlyingTarget);
}else{
this._moveInTarget(this._activeDragSource,this._underlyingTarget);
}
}else{
this._underlyingTarget=null;
}
},_wireEvents:function(){
$addHandler(document,"mouseup",this._mouseUpHandler);
$addHandler(document,"mousemove",this._documentMouseMoveHandler);
$addHandler(document.body,"dragover",this._documentDragOverHandler);
$addHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);
$addHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);
$addHandler(this._activeDragVisual,"drag",this._mouseMoveHandler);
this._areEventsWired=true;
},_unwireEvents:function(){
if(!this._areEventsWired){
return;
}
$removeHandler(this._activeDragVisual,"drag",this._mouseMoveHandler);
$removeHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);
$removeHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);
$removeHandler(document.body,"dragover",this._documentDragOverHandler);
$removeHandler(document,"mousemove",this._documentMouseMoveHandler);
$removeHandler(document,"mouseup",this._mouseUpHandler);
this._areEventsWired=false;
},registerDropTarget:function(_36,_37){
if(this._dropTargets==null){
this._dropTargets=[];
}
if(_37){
Array.add(this._dropTargets,_36);
}else{
Array.insert(this._dropTargets,0,_36);
}
this._wireDropTargetEvents(_36);
},unregisterDropTarget:function(_38){
this._unwireDropTargetEvents(_38);
if(this._dropTargets){
Array.remove(this._dropTargets,_38);
}
},_wireDropTargetEvents:function(_39){
var _3a=_39.get_dropTargetElement();
_3a._dropTarget=_39;
$addHandler(_3a,"dragenter",this._dragEnterHandler);
$addHandler(_3a,"dragleave",this._dragLeaveHandler);
$addHandler(_3a,"dragover",this._dragOverHandler);
$addHandler(_3a,"drop",this._dropHandler);
},_unwireDropTargetEvents:function(_3b){
var _3c=_3b.get_dropTargetElement();
if(_3c._dropTarget){
_3c._dropTarget=null;
$removeHandler(_3c,"dragenter",this._dragEnterHandler);
$removeHandler(_3c,"dragleave",this._dragLeaveHandler);
$removeHandler(_3c,"dragover",this._dragOverHandler);
$removeHandler(_3c,"drop",this._dropHandler);
}
},_onDragStart:function(ev){
window._event=ev;
document.selection.empty();
var dt=ev.dataTransfer;
if(!dt&&ev.rawEvent){
dt=ev.rawEvent.dataTransfer;
}
var _3f=this._activeDragSource.get_dragDataType().toLowerCase();
var _40=this._activeDragSource.getDragData(this._activeContext);
if(_40){
if(_3f!="text"&&_3f!="url"){
_3f="text";
if(_40.innerHTML!=null){
_40=_40.innerHTML;
}
}
dt.effectAllowed="move";
dt.setData(_3f,_40.toString());
}
},_onMouseUp:function(ev){
window._event=ev;
this._stopDragDrop(false);
},_onDocumentMouseMove:function(ev){
window._event=ev;
this._dragDrop();
},_onDocumentDragOver:function(ev){
window._event=ev;
if(this._potentialTarget){
ev.preventDefault();
}
},_onMouseMove:function(ev){
window._event=ev;
this._drag();
},_onDragEnter:function(ev){
window._event=ev;
if(this._isDragging){
ev.preventDefault();
}else{
var _46=Telerik.Web.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
for(var i=0;i<_46.length;i++){
this._dropTarget.onDragEnterTarget(Telerik.Web.DragMode.Copy,_46[i].type,_46[i].value);
}
}
},_onDragLeave:function(ev){
window._event=ev;
if(this._isDragging){
ev.preventDefault();
}else{
var _49=Telerik.Web.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
for(var i=0;i<_49.length;i++){
this._dropTarget.onDragLeaveTarget(Telerik.Web.DragMode.Copy,_49[i].type,_49[i].value);
}
}
},_onDragOver:function(ev){
window._event=ev;
if(this._isDragging){
ev.preventDefault();
}else{
var _4c=Telerik.Web.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
for(var i=0;i<_4c.length;i++){
this._dropTarget.onDragInTarget(Telerik.Web.DragMode.Copy,_4c[i].type,_4c[i].value);
}
}
},_onDrop:function(ev){
window._event=ev;
if(!this._isDragging){
var _4f=Telerik.Web.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
for(var i=0;i<_4f.length;i++){
this._dropTarget.drop(Telerik.Web.DragMode.Copy,_4f[i].type,_4f[i].value);
}
}
ev.preventDefault();
},_getDropTarget:function(_51){
while(_51){
if(_51._dropTarget!=null){
return _51._dropTarget;
}
_51=_51.parentNode;
}
return null;
},_dragDrop:function(){
if(this._isDragging){
return;
}
this._isDragging=true;
this._activeDragVisual.dragDrop();
document.selection.empty();
},_moveInTarget:function(_52,_53){
this._prepareForDomChanges();
_53.onDragInTarget(_52.get_dragMode(),_52.get_dragDataType(),_52.getDragData(this._activeContext));
this._recoverFromDomChanges();
},_enterTarget:function(_54,_55){
this._prepareForDomChanges();
_55.onDragEnterTarget(_54.get_dragMode(),_54.get_dragDataType(),_54.getDragData(this._activeContext));
this._recoverFromDomChanges();
},_leaveTarget:function(_56,_57){
this._prepareForDomChanges();
_57.onDragLeaveTarget(_56.get_dragMode(),_56.get_dragDataType(),_56.getDragData(this._activeContext));
this._recoverFromDomChanges();
},_findPotentialTarget:function(_58,_59){
var ev=window._event;
if(this._dropTargets==null){
return null;
}
var _5b=_58.get_dragDataType();
var _5c=_58.get_dragMode();
var _5d=_58.getDragData(this._activeContext);
var _5e=this.getScrollOffset(document.body,true);
var x=ev.clientX+_5e.x;
var y=ev.clientY+_5e.y;
var _61={x:x-this._radius,y:y-this._radius,width:this._radius*2,height:this._radius*2};
var _62;
for(var i=0;i<this._dropTargets.length;i++){
_62=$telerik.getBounds(this._dropTargets[i].get_dropTargetElement());
if(this._overlaps(_61,_62)&&this._dropTargets[i].canDrop(_5c,_5b,_5d)){
return this._dropTargets[i];
}
}
return null;
},_overlaps:function(r1,r2){
var _66=(r1.x>=r2.x&&r1.x<=(r2.x+r2.width));
var _67=((r1.x+r1.width)>=r2.x&&(r1.x+r1.width)<=r2.x+r2.width);
var _68=((r1.x<r2.x)&&((r1.x+r1.width)>(r2.x+r2.width)));
var _69=(r1.y>=r2.y&&r1.y<=(r2.y+r2.height));
var _6a=((r1.y+r1.height)>=r2.y&&(r1.y+r1.height)<=r2.y+r2.height);
var _6b=((r1.y<r2.y)&&((r1.y+r1.height)>(r2.y+r2.height)));
if((_66||_67||_68)&&(_69||_6a||_6b)){
return true;
}
return false;
},_prepareForDomChanges:function(){
this._oldOffset=$telerik.getLocation(this._activeDragVisual);
},_recoverFromDomChanges:function(){
var _6c=$telerik.getLocation(this._activeDragVisual);
if(this._oldOffset.x!=_6c.x||this._oldOffset.y!=_6c.y){
this._activeDragVisual.startingPoint=this.subtractPoints(this._activeDragVisual.startingPoint,this.subtractPoints(this._oldOffset,_6c));
scrollOffset=this.getScrollOffset(this._activeDragVisual,true);
var _6d=this.addPoints(this.subtractPoints(document._lastPosition,this._activeDragVisual.startingPoint),scrollOffset);
$telerik.setLocation(this._activeDragVisual,_6d);
}
},addPoints:function(p1,p2){
return {x:p1.x+p2.x,y:p1.y+p2.y};
},subtractPoints:function(p1,p2){
return {x:p1.x-p2.x,y:p1.y-p2.y};
},getScrollOffset:function(_72,_73){
var _74=_72.scrollLeft;
var top=_72.scrollTop;
if(_73){
var _76=_72.parentNode;
while(_76!=null&&_76.scrollLeft!=null){
_74+=_76.scrollLeft;
top+=_76.scrollTop;
if(_76==document.body&&(_74!=0&&top!=0)){
break;
}
_76=_76.parentNode;
}
}
return {x:_74,y:top};
},getBrowserRectangle:function(){
var _77=window.innerWidth;
var _78=window.innerHeight;
if(_77==null){
_77=document.body.clientWidth;
}
if(_78==null){
_78=document.body.clientHeight;
}
return {x:0,y:0,width:_77,height:_78};
},getNextSibling:function(_79){
for(_79=_79.nextSibling;_79!=null;_79=_79.nextSibling){
if(_79.innerHTML!=null){
return _79;
}
}
return null;
},hasParent:function(_7a){
return (_7a.parentNode!=null&&_7a.parentNode.tagName!=null);
}};
Telerik.Web.IEDragDropManager.registerClass("Telerik.Web.IEDragDropManager",Sys.Component);
Telerik.Web.IEDragDropManager._getDataObjectsForDropTarget=function(_7b){
if(_7b==null){
return [];
}
var ev=window._event;
var _7d=[];
var _7e=["URL","Text"];
var _7f;
for(var i=0;i<_7e.length;i++){
var dt=ev.dataTransfer;
if(!dt&&ev.rawEvent){
dt=ev.rawEvent.dataTransfer;
}
_7f=dt.getData(_7e[i]);
if(_7b.canDrop(Telerik.Web.DragMode.Copy,_7e[i],_7f)){
if(_7f){
Array.add(_7d,{type:_7e[i],value:_7f});
}
}
}
return _7d;
};
Telerik.Web.GenericDragDropManager=function(){
Telerik.Web.GenericDragDropManager.initializeBase(this);
this._dropTargets=null;
this._scrollEdgeConst=40;
this._scrollByConst=10;
this._scroller=null;
this._scrollDeltaX=0;
this._scrollDeltaY=0;
this._activeDragVisual=null;
this._activeContext=null;
this._activeDragSource=null;
this._oldOffset=null;
this._potentialTarget=null;
this._mouseUpHandler=null;
this._mouseMoveHandler=null;
this._keyPressHandler=null;
this._scrollerTickHandler=null;
this._areEventsWired=false;
};
Telerik.Web.GenericDragDropManager.prototype={initialize:function(){
Telerik.Web.GenericDragDropManager.callBaseMethod(this,"initialize");
this._mouseUpHandler=Function.createDelegate(this,this._onMouseUp);
this._mouseMoveHandler=Function.createDelegate(this,this._onMouseMove);
this._keyPressHandler=Function.createDelegate(this,this._onKeyPress);
this._scrollerTickHandler=Function.createDelegate(this,this._onScrollerTick);
if(Sys.Browser.agent===Sys.Browser.Safari){
Telerik.Web.GenericDragDropManager.__loadSafariCompatLayer(this);
}
this._scroller=new Telerik.Web.Timer();
this._scroller.set_interval(10);
this._scroller.add_tick(this._scrollerTickHandler);
},startDragDrop:function(_82,_83,_84){
this._activeDragSource=_82;
this._activeDragVisual=_83;
this._activeContext=_84;
Telerik.Web.GenericDragDropManager.callBaseMethod(this,"startDragDrop",[_82,_83,_84]);
},_stopDragDrop:function(_85){
this._scroller.set_enabled(false);
Telerik.Web.GenericDragDropManager.callBaseMethod(this,"_stopDragDrop",[_85]);
},_drag:function(_86){
Telerik.Web.GenericDragDropManager.callBaseMethod(this,"_drag",[_86]);
this._autoScroll();
},_wireEvents:function(){
$addHandler(document,"mouseup",this._mouseUpHandler);
$addHandler(document,"mousemove",this._mouseMoveHandler);
$addHandler(document,"keypress",this._keyPressHandler);
this._areEventsWired=true;
},_unwireEvents:function(){
if(!this._areEventsWired){
return;
}
$removeHandler(document,"keypress",this._keyPressHandler);
$removeHandler(document,"mousemove",this._mouseMoveHandler);
$removeHandler(document,"mouseup",this._mouseUpHandler);
this._areEventsWired=false;
},_wireDropTargetEvents:function(_87){
},_unwireDropTargetEvents:function(_88){
},_onMouseUp:function(e){
window._event=e;
this._stopDragDrop(false);
},_onMouseMove:function(e){
window._event=e;
this._drag();
},_onKeyPress:function(e){
window._event=e;
var k=e.keyCode?e.keyCode:e.rawEvent.keyCode;
if(k==27){
this._stopDragDrop(true);
}
},_autoScroll:function(){
var ev=window._event;
var _8e=this.getBrowserRectangle();
if(_8e.width>0){
this._scrollDeltaX=this._scrollDeltaY=0;
if(ev.clientX<_8e.x+this._scrollEdgeConst){
this._scrollDeltaX=-this._scrollByConst;
}else{
if(ev.clientX>_8e.width-this._scrollEdgeConst){
this._scrollDeltaX=this._scrollByConst;
}
}
if(ev.clientY<_8e.y+this._scrollEdgeConst){
this._scrollDeltaY=-this._scrollByConst;
}else{
if(ev.clientY>_8e.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);
}
}
},_onScrollerTick:function(){
var _8f=document.body.scrollLeft;
var _90=document.body.scrollTop;
window.scrollBy(this._scrollDeltaX,this._scrollDeltaY);
var _91=document.body.scrollLeft;
var _92=document.body.scrollTop;
var _93=this._activeDragVisual;
var _94={x:parseInt(_93.style.left)+(_91-_8f),y:parseInt(_93.style.top)+(_92-_90)};
$telerik.setLocation(_93,_94);
}};
Telerik.Web.GenericDragDropManager.registerClass("Telerik.Web.GenericDragDropManager",Telerik.Web.IEDragDropManager);
if(Sys.Browser.agent===Sys.Browser.Safari){
Telerik.Web.GenericDragDropManager.__loadSafariCompatLayer=function(ddm){
ddm._getScrollOffset=ddm.getScrollOffset;
ddm.getScrollOffset=function(_96,_97){
return {x:0,y:0};
};
ddm._getBrowserRectangle=ddm.getBrowserRectangle;
ddm.getBrowserRectangle=function(){
var _98=ddm._getBrowserRectangle();
var _99=ddm._getScrollOffset(document.body,true);
return {x:_98.x+_99.x,y:_98.y+_99.y,width:_98.width+_99.x,height:_98.height+_99.y};
};
};
}
Type.registerNamespace("Telerik.Web");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.ModalExtender=function(_9a){
this._windowResizeDelegate=null;
this._windowScrollDelegate=null;
this._xCoordinate=-1;
this._yCoordinate=-1;
this._backgroundElement=null;
this._foregroundElement=_9a;
this._saveTabIndexes=new Array();
this._saveDesableSelect=new Array();
this._tagWithTabIndex=new Array("A","AREA","BUTTON","INPUT","OBJECT","SELECT","TEXTAREA","IFRAME");
};
Telerik.Web.UI.ModalExtender.prototype={dispose:function(){
this.hide();
this._backgroundElement=null;
this._foregroundElement=null;
},show:function(){
this._attachWindowHandlers(true);
var _9b=this._getModalOverlay();
this._foregroundElement.parentNode.appendChild(_9b);
_9b.style.zIndex=$telerik.getCurrentStyle(this._foregroundElement,"zIndex",this._foregroundElement.style.zIndex)-1;
_9b.style.display="";
this._disableTab();
this._updatePageLayout();
this._updatePageLayout();
},_storeBrowserPosition:function(){
var _9c=document.body;
var _9d=document.documentElement;
this._browserTop=_9c.scrollTop>_9d.scrollTop?_9c.scrollTop:_9d.scrollTop;
this._browserLeft=_9c.scrollLeft>_9d.scrollLeft?_9c.scrollTop:_9d.scrollLeft;
},_restoreBrowserPosition:function(_9e,top){
try{
if(null==_9e){
_9e=this._browserLeft;
}
if(null==top){
top=this._browserTop;
}
var _a0=document.body;
var _a1=document.documentElement;
_a0.scrollTop=top;
_a0.scrollLeft=_9e;
_a1.scrollTop=top;
_a1.scrollLeft=_9e;
}
catch(ex){
}
},hide:function(){
this._backgroundElement.style.display="none";
this._restoreTab();
this._attachWindowHandlers(false);
},_enableScroll:function(_a2){
if(_a2){
document.body.style.overflow=null!=this._overflow?this._overflow:"";
document.documentElement.style.overflow=null!=this._documentOverflow?this._documentOverflow:"";
document.body.style.marginRight="";
}else{
this._overflow=document.body.style.overflow;
document.body.style.overflow="hidden";
this._documentOverflow=document.documentElement.style.overflow;
document.documentElement.style.overflow="hidden";
document.body.style.marginRight="18px";
}
},_getModalOverlay:function(){
if(!this._backgroundElement){
var div=document.createElement("div");
div.style.display="none";
div.style.position="absolute";
div.style.left="0px";
div.style.top="0px";
div.style.zIndex=10000;
div.style.backgroundColor="#aaaaaa";
div.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=50)";
div.style.opacity=".5";
div.style.mozOpacity=".5";
div.className="TelerikModalOverlay";
this._backgroundElement=div;
}
return this._backgroundElement;
},_attachWindowHandlers:function(_a4){
var _a5=window;
if(true==_a4){
this._windowResizeDelegate=Function.createDelegate(this,this._updatePageLayout);
$addHandler(_a5,"resize",this._windowResizeDelegate);
this._windowScrollDelegate=Function.createDelegate(this,this._updatePageLayout);
$addHandler(_a5,"scroll",this._windowScrollDelegate);
}else{
if(this._windowResizeDelegate){
$removeHandler(_a5,"resize",this._windowResizeDelegate);
}
this._windowResizeDelegate=null;
if(this._windowScrollDelegate){
$removeHandler(_a5,"scroll",this._windowScrollDelegate);
}
this._windowScrollDelegate=null;
}
},_updatePageLayout:function(){
var _a6=(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);
var _a7=(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);
var _a8=$telerik.getClientBounds();
var _a9=_a8.width;
var _aa=_a8.height;
var _ab=this._getModalOverlay();
_ab.style.width=Math.max(Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),_a9)+"px";
_ab.style.height=Math.max(Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),_aa)+"px";
},_disableTab:function(){
var i=0;
var _ad;
var _ae=new Array();
Array.clear(this._saveTabIndexes);
for(var j=0;j<this._tagWithTabIndex.length;j++){
_ad=this._foregroundElement.getElementsByTagName(this._tagWithTabIndex[j]);
for(var k=0;k<_ad.length;k++){
_ae[i]=_ad[k];
i++;
}
}
i=0;
for(var j=0;j<this._tagWithTabIndex.length;j++){
_ad=document.getElementsByTagName(this._tagWithTabIndex[j]);
for(var k=0;k<_ad.length;k++){
if(Array.indexOf(_ae,_ad[k])==-1){
this._saveTabIndexes[i]={tag:_ad[k],index:_ad[k].tabIndex};
_ad[k].tabIndex="-1";
i++;
}
}
}
i=0;
if((Sys.Browser.agent===Sys.Browser.InternetExplorer)&&(Sys.Browser.version<7)){
var _b1=new Array();
for(var j=0;j<this._tagWithTabIndex.length;j++){
_ad=this._foregroundElement.getElementsByTagName("SELECT");
for(var k=0;k<_ad.length;k++){
_b1[i]=_ad[k];
i++;
}
}
i=0;
Array.clear(this._saveDesableSelect);
_ad=document.getElementsByTagName("SELECT");
for(var k=0;k<_ad.length;k++){
if(Array.indexOf(_b1,_ad[k])==-1){
this._saveDesableSelect[i]={tag:_ad[k],visib:$telerik.getCurrentStyle(_ad[k],"visibility")};
_ad[k].style.visibility="hidden";
i++;
}
}
}
},_restoreTab:function(){
for(var i=0;i<this._saveTabIndexes.length;i++){
this._saveTabIndexes[i].tag.tabIndex=this._saveTabIndexes[i].index;
}
if((Sys.Browser.agent===Sys.Browser.InternetExplorer)&&(Sys.Browser.version<7)){
for(var k=0;k<this._saveDesableSelect.length;k++){
this._saveDesableSelect[k].tag.style.visibility=this._saveDesableSelect[k].visib;
}
}
}};
Telerik.Web.UI.ModalExtender.registerClass("Telerik.Web.UI.ModalExtender",null);
Type.registerNamespace("Telerik.Web");
Telerik.Web.PositioningMode=function(){
throw Error.invalidOperation();
};
Telerik.Web.PositioningMode.prototype={Absolute:0,Center:1,BottomLeft:2,BottomRight:3,TopLeft:4,TopRight:5};
Telerik.Web.PositioningMode.registerEnum("Telerik.Web.PositioningMode");
Telerik.Web.PopupBehavior=function(_b4){
Telerik.Web.PopupBehavior.initializeBase(this,[_b4]);
this._x=0;
this._y=0;
this._positioningMode=Telerik.Web.PositioningMode.Absolute;
this._parentElement=null;
this._parentElementID=null;
this._moveHandler=null;
this._firstPopup=true;
this._originalParent=null;
this._overlay=false;
this._keepInScreenBounds=true;
};
Telerik.Web.PopupBehavior._ie6pinnedList={};
Telerik.Web.PopupBehavior.prototype={getPageOffset:function(){
var _b5={x:(document.documentElement.scrollLeft||document.body.scrollLeft),y:(document.documentElement.scrollTop||document.body.scrollTop)};
return _b5;
},pin:function(_b6){
var _b7=this.get_element();
var _b8=this.getPageOffset();
if($telerik.isIE6){
var id=this.get_id();
if(_b6){
if(Telerik.Web.PopupBehavior._ie6pinnedList[id]){
return;
}
var _ba=$telerik.getBounds(_b7);
Telerik.Web.PopupBehavior._ie6pinnedList[id]=window.setInterval(Function.createDelegate(this,function(){
var _bb=this.getPageOffset();
var x=_ba.x-_b8.x+_bb.x;
var y=_ba.y-_b8.y+_bb.y;
var _be=this.get_parentElement();
this.set_parentElement(document.documentElement);
this.set_x(x);
this.set_y(y);
this.show();
this.set_parentElement(_be);
}),130);
}else{
var _bf=Telerik.Web.PopupBehavior._ie6pinnedList[id];
if(_bf){
window.clearInterval(_bf);
}
delete Telerik.Web.PopupBehavior._ie6pinnedList[id];
}
}else{
var _c0=_b6?"fixed":"absolute";
if(_b7.style.position==_c0){
return;
}
var _ba=$telerik.getBounds(_b7);
if(_b6&&(_b8.x||_b8.y)){
this._x=_ba.x-_b8.x;
this._y=_ba.y-_b8.y;
$telerik.setLocation(_b7,{x:this._x,y:this._y});
}
_b7.style.position=_c0;
}
},center:function(){
var _c1=this.get_element();
$telerik.setVisible(_c1,true);
var _c2=$telerik.getClientBounds();
var _c3=$telerik.getBounds(_c1);
var x=parseInt((_c2.width-_c3.width)/2);
var y=parseInt((_c2.height-_c3.height)/2);
var _c6=this.get_parentElement();
this.set_parentElement(document.documentElement);
this.set_x(x);
this.set_y(y);
this.show();
this.set_parentElement(_c6);
},get_parentElement:function(){
if(!this._parentElement&&this._parentElementID){
this.set_parentElement($get(this._parentElementID));
Sys.Debug.assert(this._parentElement!=null,String.format("Couldn't find parent element \"{0}\"",this._parentElementID));
}
return this._parentElement;
},set_parentElement:function(_c7){
this._parentElement=_c7;
},get_parentElementID:function(){
if(this._parentElement){
return this._parentElement.id;
}
return this._parentElementID;
},set_parentElementID:function(_c8){
this._parentElementID=_c8;
if(this.get_isInitialized()){
this.set_parentElement($get(_c8));
}
},get_positioningMode:function(){
return this._positioningMode;
},set_positioningMode:function(_c9){
this._positioningMode=_c9;
},get_x:function(){
return this._x;
},set_x:function(_ca){
if(_ca!=this._x){
this._x=_ca;
if($telerik.getVisible(this.get_element())){
this.show();
}
}
},get_y:function(){
return this._y;
},set_y:function(_cb){
if(_cb!=this._y){
this._y=_cb;
if($telerik.getVisible(this.get_element())){
this.show();
}
}
},get_overlay:function(){
return this._overlay;
},set_overlay:function(_cc){
this._overlay=_cc;
this._attachWindowHandlers(false);
if(this._overlay){
this._attachWindowHandlers(true);
}else{
if(!((Sys.Browser.agent===Sys.Browser.InternetExplorer)&&(Sys.Browser.version<7))){
var elt=this.get_element();
var _ce=elt._hideWindowedElementsIFrame;
if(_ce){
_ce.style.display="none";
}
}
}
},get_keepInScreenBounds:function(){
return this._keepInScreenBounds;
},set_keepInScreenBounds:function(_cf){
this._keepInScreenBounds=_cf;
},hide:function(){
var elt=this.get_element();
$telerik.setVisible(elt,false);
if(elt.originalWidth){
elt.style.width=elt.originalWidth+"px";
elt.originalWidth=null;
}
if(Sys.Browser.agent===Sys.Browser.InternetExplorer||this._overlay){
var _d1=elt._hideWindowedElementsIFrame;
if(_d1){
_d1.style.display="none";
}
}
},show:function(){
var elt=this.get_element();
if($telerik.isFirefox){
var doc=document.documentElement;
var _d4=$telerik.getCurrentStyle(doc,"overflow");
if("hidden"==_d4){
elt.style.left=doc.scrollLeft+"px";
elt.style.top=doc.scrollLeft+"px";
}
}
$telerik.setVisible(elt,true);
var _d5=elt.offsetParent||document.documentElement;
var _d6;
var _d7;
if(this._parentElement){
_d7=$telerik.getBounds(this._parentElement);
var _d8=$telerik.getLocation(_d5);
_d6={x:_d7.x-_d8.x,y:_d7.y-_d8.y};
}else{
_d7=$telerik.getBounds(_d5);
_d6={x:0,y:0};
}
var _d9=elt.offsetWidth-(elt.clientLeft?elt.clientLeft*2:0);
var _da=elt.offsetHeight-(elt.clientTop?elt.clientTop*2:0);
var _db;
switch(this._positioningMode){
case Telerik.Web.PositioningMode.Center:
_db={x:Math.round(_d7.width/2-_d9/2),y:Math.round(_d7.height/2-_da/2)};
break;
case Telerik.Web.PositioningMode.BottomLeft:
_db={x:0,y:_d7.height};
break;
case Telerik.Web.PositioningMode.BottomRight:
_db={x:_d7.width-_d9,y:_d7.height};
break;
case Telerik.Web.PositioningMode.TopLeft:
_db={x:0,y:-elt.offsetHeight};
break;
case Telerik.Web.PositioningMode.TopRight:
_db={x:_d7.width-_d9,y:-elt.offsetHeight};
break;
default:
_db={x:0,y:0};
}
_db.x+=this._x+_d6.x;
_db.y+=this._y+_d6.y;
$telerik.setLocation(elt,_db);
if(this._firstPopup){
elt.style.width=_d9+"px";
}
this._firstPopup=false;
var _dc=$telerik.getBounds(elt);
var _dd=this._getViewportBounds();
if(this._keepInScreenBounds){
var _de=false;
var _df=self.innerWidth?self.innerWidth:document.documentElement.clientWidth;
if(!_df){
_df=document.body.clientWidth;
}
if(_dc.x+_dc.width-_dd.scrollLeft>_df){
_db.x-=_dc.x+_dc.width-_df+_dd.scrollLeft;
_de=true;
}
if(_dc.x<0){
_db.x-=_dc.x;
_de=true;
}
if(_dc.y<0){
_db.y-=_dc.y;
_de=true;
}
if(_dd.height<_dc.y+_dc.height-_dd.scrollTop){
if(_dd.height-_dc.height>0){
_db.y=_dd.height-_dc.height+_dd.scrollTop;
_de=true;
}
}
if(_de){
$telerik.setLocation(elt,_db);
_dc=$telerik.getBounds(elt);
}
}
elt.zIndex=1000;
if(((Sys.Browser.agent===Sys.Browser.InternetExplorer)&&(Sys.Browser.version<7))||this._overlay){
var _e0=elt._hideWindowedElementsIFrame;
if(!_e0){
_e0=document.createElement("iframe");
_e0.src="javascript:'<html></html>';";
_e0.style.position="absolute";
_e0.style.display="none";
_e0.scrolling="no";
_e0.frameBorder="0";
_e0.tabIndex="-1";
_e0.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
elt.parentNode.insertBefore(_e0,elt);
elt._hideWindowedElementsIFrame=_e0;
this._moveHandler=Function.createDelegate(this,this._onMove);
Sys.UI.DomEvent.addHandler(elt,"move",this._moveHandler);
}
$telerik.setBounds(_e0,_dc);
if(Sys.Browser.agent===Sys.Browser.Firefox){
_e0.style.top=parseInt(_dc.y)-_dd.scrollTop+"px";
_e0.style.left=parseInt(_dc.x)-_dd.scrollLeft+"px";
_e0.style.position="fixed";
}
if($telerik.quirksMode){
return;
}
_e0.style.display=elt.style.display;
if(elt.currentStyle&&elt.currentStyle.zIndex){
_e0.style.zIndex=elt.currentStyle.zIndex;
}else{
if(elt.style.zIndex){
_e0.style.zIndex=elt.style.zIndex;
}
}
}
},_getViewportBounds:function(){
var _e1=$telerik.getClientBounds();
var _e2=document.documentElement.scrollLeft||document.body.scrollLeft;
var _e3=document.documentElement.scrollTop||document.body.scrollTop;
_e1.scrollLeft=_e2;
_e1.scrollTop=_e3;
return _e1;
},_setCoordinates:function(x,y){
var _e6=false;
if(x!=this._x){
this._x=x;
_e6=true;
}
if(y!=this._y){
this._y=y;
_e6=true;
}
if($telerik.getVisible(this.get_element())&&_e6){
this.show();
}
},initialize:function(){
Telerik.Web.PopupBehavior.callBaseMethod(this,"initialize");
this.hide();
this.get_element().style.position="absolute";
},dispose:function(){
var elt=this.get_element();
if(elt){
if(this._moveHandler){
Sys.UI.DomEvent.removeHandler(elt,"move",this._moveHandler);
this._moveHandler=null;
}
this._attachWindowHandlers(false);
if($telerik.getVisible(elt)){
this.hide();
}
if(this._originalParent){
elt.parentNode.removeChild(elt);
this._originalParent.appendChild(elt);
this._originalParent=null;
}
}
this._parentElement=null;
Telerik.Web.PopupBehavior.callBaseMethod(this,"dispose");
},_onMove:function(){
var elt=this.get_element();
var _e9=elt._hideWindowedElementsIFrame;
if(_e9){
if(Sys.Browser.agent===Sys.Browser.Firefox){
var _ea=this._getViewportBounds();
_e9.style.top=parseInt(elt.style.top)-_ea.scrollTop+"px";
_e9.style.left=parseInt(elt.style.left)-_ea.scrollLeft+"px";
_e9.style.position="fixed";
}else{
_e9.style.top=elt.style.top;
_e9.style.left=elt.style.left;
}
}
},_handleElementResize:function(){
var elt=this.get_element();
var _ec=elt._hideWindowedElementsIFrame;
if(_ec){
var _ed=$telerik.getBounds(elt);
$telerik.setBounds(_ec,_ed);
}
},_attachWindowHandlers:function(_ee){
if(!Sys.Browser.agent===Sys.Browser.Firefox){
return;
}
var _ef=window;
if(true==_ee){
this._windowResizeDelegate=Function.createDelegate(this,this._onMove);
$addHandler(_ef,"resize",this._windowResizeDelegate);
this._windowScrollDelegate=Function.createDelegate(this,this._onMove);
$addHandler(_ef,"scroll",this._windowScrollDelegate);
}else{
if(this._windowResizeDelegate){
$removeHandler(_ef,"resize",this._windowResizeDelegate);
}
this._windowResizeDelegate=null;
if(this._windowScrollDelegate){
$removeHandler(_ef,"scroll",this._windowScrollDelegate);
}
this._windowScrollDelegate=null;
}
}};
Telerik.Web.PopupBehavior.registerClass("Telerik.Web.PopupBehavior",Telerik.Web.BehaviorBase);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.ResizeExtender=function(_f0,_f1,_f2,_f3,doc){
this._document=doc?doc:document;
this._documentMouseMoveDelegate=null;
this._documentMouseUpDelegate=null;
this._element=null;
this._tableElement=null;
this._enabled=true;
this._jsOwner=null;
this._saveDelegates={};
this.makeResizable(_f0,_f1,_f2,_f3);
};
Telerik.Web.UI.ResizeExtender.prototype={dispose:function(){
this._attachDocumentHandlers(false);
this._configureHandleElements(false);
this._jsOwner=null;
},enable:function(_f5){
this._enabled=_f5;
},makeResizable:function(_f6,_f7,_f8,_f9){
if(!_f7){
return;
}
if(this._element){
alert("Element "+_f7.getAttribute("id")+" cannot be made resizable, as the resizeExtender already has the element "+this._element.getAttribute("id")+" associated with it. You must create a new extender resizer object");
return;
}
this._jsOwner=_f6;
this._element=_f7;
this._tableElement=_f9;
this._resizeHandles=_f8;
this._startX=0;
this._startY=0;
this._stopResize=true;
this._attachDocumentHandlers(true);
this._configureHandleElements(true);
},_onResizeStart:function(){
this._clearSelection();
this._setIframesVisible(false);
this._raiseEvent("ResizeStart");
},_onResizing:function(_fa){
return this._raiseEvent("Resizing",_fa);
},_onResize:function(){
var dir=this._resizeDir;
if(dir.south||dir.north){
var _fc=this._element.style.height;
var _fd=this._tableElement;
if(_fd){
_fd.style.height=_fc;
this._fixIeHeight(_fd,_fc);
}
}
this._raiseEvent("Resize");
},_onResizeEnd:function(){
this._clearSelection();
this._setIframesVisible(true);
this._raiseEvent("ResizeEnd");
},_raiseEvent:function(_fe,ev){
if(this._jsOwner&&this._jsOwner["on"+_fe]){
if(!ev){
ev=new Sys.EventArgs();
}else{
if(_fe=="Resize"){
ev=this._resizeDir;
}else{
if(_fe=="Resizing"){
var ev=this._getProposedBounds(ev);
}
}
}
return this._jsOwner["on"+_fe](ev);
}
return true;
},_getProposedBounds:function(b1){
var b2=$telerik.getBounds(this._element);
return {x:b1.x||b2.x,y:b1.y||b2.y,width:b1.width||b2.width,height:b1.height||b2.height};
},_resize:function(e){
if(!this._enabled||this._stopResize){
return false;
}
var _103=0;
var _104=0;
var _105=0;
var nTop=0;
var _107=this._originalBounds;
if(this._resizeDir.move){
_105=_107.x+(e.clientX-this._startX);
nTop=_107.y+(e.clientY-this._startY);
}else{
if(this._resizeDir.east){
_103=_107.width+(e.clientX-this._startX);
}else{
if(this._resizeDir.west){
_105=e.clientX;
_103=_107.width-(e.clientX-this._startX);
}
}
if(this._resizeDir.south){
_104=_107.height+(e.clientY-this._startY);
}else{
if(this._resizeDir.north){
nTop=e.clientY;
_104=_107.height-(e.clientY-this._startY);
}
}
}
if(this._offsetLocation){
_105-=this._offsetLocation.x;
nTop-=this._offsetLocation.y;
}
var _108=this._onResizing(new Sys.UI.Bounds(_105,nTop,_103,_104));
if(false==_108){
return true;
}
if(_105>0){
this._element.style.left=_105+"px";
}
if(nTop>0){
this._element.style.top=nTop+"px";
}
if(_103>0){
this._element.style.width=_103+"px";
}
if(_104>0){
this._element.style.height=_104+"px";
}
this._onResize();
return true;
},_storeStartCoords:function(e){
if(!this._enabled){
return;
}
this._stopResize=false;
this._startX=e.clientX;
this._startY=e.clientY;
var _10a=$telerik.getBounds(this._element);
this._originalBounds=_10a;
var _10b=("relative"==$telerik.getCurrentStyle(this._element.parentNode,"position"));
this._offsetLocation=(_10b?$telerik.getLocation(this._element.parentNode):null);
var _10c=e.target?e.target:e.srcElement;
if(_10c&&_10c.type==3){
_10c=_10c.parentNode;
}
this._resizeType=$telerik.getCurrentStyle(_10c,"cursor");
this._resizeDir={north:this._resizeType.match(/n.?-/)?1:0,east:this._resizeType.match(/e-/)?1:0,south:this._resizeType.match(/s.?-/)?1:0,west:this._resizeType.match(/w-/)?1:0,move:this._resizeType.match(/move/)?1:0};
this._onResizeStart();
},_setIframesVisible:function(_10d){
var _10e=this._document.getElementsByTagName("IFRAME");
for(var i=0;i<_10e.length;i++){
_10e[i].style.visibility=_10d?"":"hidden";
}
},_configureHandleElements:function(_110){
var _111=["nw","n","ne","w","e","sw","s","se","move"];
for(var i=0;i<_111.length;i++){
var _113=_111[i];
var _114=this._resizeHandles[_113];
if(_114){
if(_114 instanceof Array){
for(var j=0;j<_114.length;j++){
this._configureHandle("id"+i+"_"+j,_110,_114[j],_113);
}
}else{
this._configureHandle("id"+i,_110,_114,_113);
}
}
}
if(!_110){
this._saveDelegates={};
}
},_configureHandle:function(_116,_117,_118,_119){
if(_117){
var _11a=Function.createDelegate(this,this._onHandleMouseDown);
$telerik.addExternalHandler(_118,"mousedown",_11a);
this._saveDelegates[_116]={delegate:_11a,element:_118};
var _11b=(_119=="move"?"move":_119+"-resize");
_118.style.cursor=_11b;
}else{
$telerik.removeExternalHandler(_118,"mousedown",this._saveDelegates[_116].delegate);
_118.style.cursor="";
}
},_attachDocumentHandlers:function(_11c){
var _11d=this._document;
if(true==_11c){
this._documentMouseMoveDelegate=Function.createDelegate(this,this._onDocumentMouseMove);
$telerik.addExternalHandler(_11d,"mousemove",this._documentMouseMoveDelegate);
this._documentMouseUpDelegate=Function.createDelegate(this,this._onDocumentMouseUp);
$telerik.addExternalHandler(_11d,"mouseup",this._documentMouseUpDelegate);
}else{
if(this._documentMouseMoveDelegate){
$telerik.removeExternalHandler(_11d,"mousemove",this._documentMouseMoveDelegate);
}
this._documentMouseMoveDelegate=null;
if(this._documentMouseUpDelegate){
$telerik.removeExternalHandler(_11d,"mouseup",this._documentMouseUpDelegate);
}
this._documentMouseUpDelegate=null;
}
},_onDocumentMouseMove:function(e){
var _11f=this._resize(e);
if(_11f){
return this._cancelEvent(e);
}
},_onDocumentMouseUp:function(e){
var _121=!this._stopResize;
this._stopResize=true;
if(_121){
this._onResizeEnd();
}
},_onHandleMouseDown:function(e){
this._storeStartCoords(e);
return this._cancelEvent(e);
},_clearSelection:function(){
if(this._document.selection&&this._document.selection.empty){
this._document.selection.empty();
}
},_cancelEvent:function(e){
if(e){
e.returnValue=false;
e.cancelBubble=true;
if(e.preventDefault){
e.preventDefault();
}
if(e.stopPropagation){
e.stopPropagation();
}
}
return false;
},_fixIeHeight:function(_124,_125){
if("CSS1Compat"==document.compatMode){
var _126=(_124.offsetHeight-parseInt(_125));
if(_126>0){
var _127=(parseInt(_124.style.height)-_126);
if(_127>0){
_124.style.height=_127+"px";
}
}
}
}};
Telerik.Web.UI.ResizeExtender.registerClass("Telerik.Web.UI.ResizeExtender",null);


/* END Telerik.Web.UI.Common.Popup.PopupScripts.js */
/* START Telerik.Web.UI.Window.RadWindow.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadWindowControllerClass=function(){
this._activeWindow=null;
this._historyStack=[];
this._registerGlobalBodyEventHandlers();
};
Telerik.Web.UI.RadWindowControllerClass.prototype={getInstance:function(){
return this;
},_registerGlobalBodyEventHandlers:function(){
var _1=Function.createDelegate(null,function(e){
if(e.keyCode==27){
Telerik.Web.UI.RadWindowController.hideCurrentWindowIfNonModal();
}
});
$addHandler(document.documentElement,"keydown",_1);
Sys.Application.add_unload(function(){
$removeHandler(document.documentElement,"keydown",_1);
});
},hideCurrentWindowIfNonModal:function(){
if(this._activeWindow!=null&&this._activeWindow.isModal&&!this._activeWindow.isModal()){
this._activeWindow.close();
}
this._activeWindow=null;
},inactivateCurrentWindow:function(){
if(this._activeWindow!=null){
this._activeWindow.setActive(false);
}
this._activeWindow=null;
},set_activeWindow:function(_3){
if(_3==this._activeWindow){
return;
}
this.inactivateCurrentWindow();
this._activeWindow=_3;
Array.remove(this._historyStack,_3);
Array.add(this._historyStack,_3);
},notifyWindowClosed:function(_4){
if(this._activeWindow==_4){
this._activeWindow=null;
}
Array.remove(this._historyStack,_4);
this._activatePreviousWindow();
},_activatePreviousWindow:function(){
var _5=this._historyStack;
var i=_5.length-1;
for(;i>=0;i--){
var _7=_5[i];
if(!_7){
return;
}
if(_7.isCreated()&&!_7.isClosed()&&!_7.isMinimized()){
_7.setActive(true);
break;
}else{
Array.removeAt(_5,i);
}
}
},get_activeWindow:function(){
return this._activeWindow;
}};
Telerik.Web.UI.RadWindowControllerClass.registerClass("Telerik.Web.UI.RadWindowControllerClass",null);
if(!Telerik.Web.UI.RadWindowController){
Telerik.Web.UI.RadWindowController=new Telerik.Web.UI.RadWindowControllerClass();
}
Type.registerNamespace("Telerik.Web.UI");
Type.registerNamespace("Telerik.Web.UI.RadWindowUtils");
Telerik.Web.UI.RadWindowUtils.Localization={"Close":"Close","Minimize":"Minimize","Maximize":"Maximize","Reload":"Reload","PinOn":"Pin on","PinOff":"Pin off","Restore":"Restore","OK":"OK","Cancel":"Cancel","Yes":"Yes","No":"No"};
Telerik.Web.UI.RadWindow=function(_8){
Telerik.Web.UI.RadWindow.initializeBase(this,[_8]);
this._eventNames=["resize","activate","dragStart","dragEnd","show","pageLoad","close","command"];
this._bodyElement=($telerik.standardsMode)?document.documentElement:document.body;
this._openerElement=null;
this._offsetElement=null;
this._popupElement=null;
this._tableElement=null;
this._contentElement=null;
this._contentCell=null;
this._titleElement=null;
this._titleCell=null;
this._titlebarElement=null;
this._statusCell=null;
this._statusMessageElement=null;
this._iframe=null;
this._buttonsElement=null;
this._buttonsArray=[];
this.isIE=($telerik.isIE);
this._openerElementID=null;
this._offsetElementID=null;
this._behaviors=Telerik.Web.UI.WindowBehaviors.Default;
this._initialBehaviors=Telerik.Web.UI.WindowBehaviors.None;
this._navigateUrl=null;
this._left="";
this._top="";
this._formID=null;
this._skin="Default";
this._title="";
this._width="300px";
this._height="300px";
this._minimizeZoneID=null;
this._restrictionZoneID="";
this._clientCallBackFunction=null;
this._reloadOnShow=false;
this._visibleOnPageLoad=false;
this._destroyOnClose=false;
this._visibleTitlebar=true;
this._visibleStatusbar=true;
this._showContentDuringLoad=true;
this._modal=false;
this._overlay=false;
this._keepInScreenBounds=true;
this._iconUrl=null;
this._minimizeIconUrl=null;
this._animation=Telerik.Web.UI.WindowAnimation.None;
this._windowAnimation=null;
this._onMouseDownDelegate=null;
this._onClickDelegate=null;
this._onTitlebarDblclickDelegate=null;
this._onTitlebarClickDelegate=null;
this._onWindowResizeDelegate=null;
this._onIframeLoadDelegate=null;
this._onChildPageUnloadDelegate=null;
this._onChildPageClickDelegate=null;
this._onModalShowHandler=null;
this._onModalCloseHandler=null;
this._loaded=false;
this._isCloned=false;
this._restoreRect=null;
this._popupBehavior=null;
this._popupVisible=false;
this._windowManager;
this.GetWindowManager=this.get_windowManager;
this.BrowserWindow=window;
this.GetContentFrame=this.get_contentFrame;
this.GetLeftPosition=function(){
this.getWindowBounds().x;
};
this.GetTopPosition=function(){
this.getWindowBounds().y;
};
this.GetTitlebar=function(){
return this._titleCell;
};
this.GetStatusbar=function(){
return this._statusCell;
};
this.SetOpenerElementId=this.set_openerElementID;
this.SetStatus=this.set_status;
this.GetStatus=this.get_status;
this.SetModal=this.set_modal;
this.SetWidth=this.set_width;
this.SetHeight=this.set_height;
this.GetWidth=this.get_width;
this.GetHeight=this.get_height;
this.SetOffsetElementId=this.set_offsetElementID;
this.SetTitle=this.set_title;
this.MoveTo=this.moveTo;
this.Center=this.center;
this.SetVisible=this.setVisible;
this.SetSize=this.setSize;
this.Show=this.show;
this.Hide=this.hide;
this.GetUrl=this.get_navigateUrl;
this.SetUrl=this.setUrl;
this.Reload=this.reload;
this.SetActive=this.setActive;
this.Minimize=this.minimize;
this.Restore=this.restore;
this.Maximize=this.maximize;
this.Close=this.close;
this.TogglePin=this.togglePin;
this.IsMaximized=this.isMaximized;
this.IsMinimized=this.isMinimized;
this.IsModal=this.isModal;
this.IsClosed=this.isClosed;
this.IsPinned=this.isPinned;
this.IsVisible=this.isVisible;
this.IsActive=this.isActive;
this.IsBehaviorEnabled=this.isBehaviorEnabled;
};
Telerik.Web.UI.RadWindow.prototype={_getLocalization:function(){
return Telerik.Web.UI.RadWindowUtils.Localization;
},_registerIframeLoadHandler:function(_9){
if(!this._iframe){
return;
}
if(_9){
this._onIframeLoadDelegate=Function.createDelegate(this,this._onIframeLoad);
$addHandler(this._iframe,"load",this._onIframeLoadDelegate);
}else{
if(this._onIframeLoadDelegate){
$removeHandler(this._iframe,"load",this._onIframeLoadDelegate);
this._onIframeLoadDelegate=null;
}
}
},_registerWindowResizeHandler:function(_a){
if(_a){
this._onWindowResizeDelegate=Function.createDelegate(this,this._maintainMaximizedSize);
$addHandler(window,"resize",this._onWindowResizeDelegate);
}else{
if(this._onWindowResizeDelegate){
$removeHandler(window,"resize",this._onWindowResizeDelegate);
this._onWindowResizeDelegate=null;
}
}
},_registerOpenerElementHandler:function(_b,_c){
if(!_b){
return;
}
if(true==_c){
this._onClickDelegate=Function.createDelegate(this,this._onClick);
$addHandler(_b,"click",this._onClickDelegate);
}else{
var _d=$removeHandler(_b,"click",this._onClickDelegate);
this._onClickDelegate=null;
}
},_registerTitlebarHandlers:function(_e){
var _f=this._titleCell;
if(_e){
this._onTitlebarDblclickDelegate=Function.createDelegate(this,function(){
if(this.isMinimized()||this.isMaximized()){
this.restore();
}else{
this.maximize();
}
});
this._onTitlebarClickDelegate=Function.createDelegate(this,function(){
this.setActive(true);
});
$addHandler(_f,"dblclick",this._onTitlebarDblclickDelegate);
$addHandler(_f,"click",this._onTitlebarClickDelegate);
}else{
if(this._titleCell){
if(this._onTitlebarDblclickDelegate){
$removeHandler(_f,"dblclick",this._onTitlebarDblclickDelegate);
this._onTitlebarDblclickDelegate=null;
}
if(this._onTitlebarClickDelegate){
$removeHandler(_f,"click",this._onTitlebarClickDelegate);
this._onTitlebarClickDelegate=null;
}
}
}
},_makeModal:function(_10){
if(this._onModalShowHandler){
this.remove_show(this._onModalShowHandler);
this._onModalShowHandler=null;
}
if(this._onModalCloseHandler){
this.remove_close(this._onModalCloseHandler);
this._onModalCloseHandler=null;
}
if(this._modalExtender){
this._modalExtender.dispose();
this._modalExtender=null;
}
if(!_10){
return;
}
if(typeof (Telerik.Web.UI.RadWindowManager)!="undefined"&&Telerik.Web.UI.RadWindowManager.isInstanceOfType(this)){
return;
}
this._onModalShowHandler=function(_11){
if(!_11._modalExtender){
_11._modalExtender=new Telerik.Web.UI.ModalExtender(_11._popupElement);
}
_11._modalExtender.show();
_11.center();
};
this.add_show(this._onModalShowHandler);
this._onModalCloseHandler=function(_12){
window.setTimeout(function(){
if(_12._modalExtender){
_12._modalExtender.hide();
}
},10);
};
this.add_close(this._onModalCloseHandler);
},_makeResizeable:function(_13){
if(this._resizeExtender){
this._resizeExtender.dispose();
this._resizeExtender=null;
}
if(!_13){
return;
}
if(!this._popupElement){
return;
}
if(!this.isBehaviorEnabled(Telerik.Web.UI.WindowBehaviors.Resize)){
return;
}
var _14=this._tableElement.rows;
var _15={nw:_14[0].cells[0],n:this._topResizer,ne:_14[0].cells[2],w:[_14[1].cells[0],_14[2].cells[0]],e:[_14[1].cells[2],_14[2].cells[2]],sw:_14[3].cells[0],s:_14[3].cells[1],se:[_14[3].cells[2],this._bottomResizer]};
this._resizeExtender=new Telerik.Web.UI.ResizeExtender(this,this._popupElement,_15,this._tableElement);
},onResizing:function(_16){
return this._isInZoneBounds(_16);
},onResizeEnd:function(){
var _17=this._getCurrentBounds();
this.moveTo(_17.x,_17.y);
if(this._overlay&&Sys.Browser.agent===Sys.Browser.Firefox){
this._popupBehavior._onMove();
}
this.raiseEvent("resize",new Sys.EventArgs());
},_setIframesVisible:function(_18){
var _19=document.getElementsByTagName("IFRAME");
for(var i=0;i<_19.length;i++){
_19[i].style.visibility=_18?"":"hidden";
}
},_makeMoveable:function(_1b){
var _1c=this._titleCell;
if(_1b&&this.isBehaviorEnabled(Telerik.Web.UI.WindowBehaviors.Move)){
_1c.style.cursor="move";
this._onMouseDownDelegate=Function.createDelegate(this,this._mouseDownHandler);
$addHandler(_1c,"mousedown",this._onMouseDownDelegate);
}else{
if(_1c&&this._onMouseDownDelegate){
_1c.style.cursor="";
$removeHandler(_1c,"mousedown",this._onMouseDownDelegate);
this._onMouseDownDelegate=null;
}
}
},_mouseDownHandler:function(e){
window._event=e;
var _1e=(0>Array.indexOf(["input","button","select","textarea","label","a"],e.target.tagName.toLowerCase()));
if(_1e){
this._cancelEvent(e);
var _1f=this._popupElement;
_1f.removeAttribute("unselectable");
this._startDragDrop(_1f);
}
},_startDragDrop:function(_20){
if(this.isPinned()){
return;
}
var _21=$telerik.getLocation(_20);
$telerik.setLocation(_20,_21);
Telerik.Web.DragDropManager.startDragDrop(this,_20,null);
},get_dragDataType:function(){
return Telerik.Web.UI.RadWindowUtils.DragDataType;
},getDragData:function(_22){
return this;
},get_dragMode:function(){
return Telerik.Web.DragMode.Move;
},onDrag:function(e){
},onDragStart:function(){
this.setActive(true);
this._setIframesVisible(false);
var _24=this._getRestrictionZoneBounds();
if(_24){
Telerik.Web.IEDragDropManager.prototype.old_drag=Telerik.Web.IEDragDropManager.prototype._drag;
Telerik.Web.IEDragDropManager.prototype._drag=this._DragDropManagerNewDragImpl;
}
this.raiseEvent("dragStart",new Sys.EventArgs());
},onDragEnd:function(_25){
this._setIframesVisible(true);
if(this._overlay&&Sys.Browser.agent===Sys.Browser.Firefox){
this._popupBehavior._onMove();
}
var _26=this._getRestrictionZoneBounds();
if(_26){
Telerik.Web.IEDragDropManager.prototype._drag=Telerik.Web.IEDragDropManager.prototype.old_drag;
Telerik.Web.IEDragDropManager.prototype.old_drag=null;
}
this.raiseEvent("dragEnd",new Sys.EventArgs());
this._storeBounds();
this.setActive(true);
},_DragDropManagerNewDragImpl:function(_27){
var wnd=this._activeDragSource;
var _29=wnd._getRestrictionZoneBounds();
if(_29){
var ev=window._event;
var _2b={x:ev.clientX,y:ev.clientY};
var _2c=this.getScrollOffset(this._activeDragVisual,true);
var _2d=this.addPoints(this.subtractPoints(_2b,this._activeDragVisual.startingPoint),_2c);
var _2e=$telerik.getBounds(wnd._popupElement);
var _2f=wnd._isInBounds(_2d,_29,_2e);
if(!_2f){
if(_2e.x<_29.x){
_2e.x=_29.x;
}
if(_2e.y<_29.y){
_2e.y=_29.y;
}
if(_2e.x+_2e.width>_29.x+_29.width){
_2e.x-=_2e.x+_2e.width-(_29.width+_29.x);
}
if(_2e.y+_2e.height>_29.height+_29.y){
_2e.y-=_2e.y+_2e.height-(_29.height+_29.y);
}
this._activeDragVisual.startingPoint=this.addPoints(this.subtractPoints(_2b,_2e),_2c);
}
}
Telerik.Web.IEDragDropManager.prototype.old_drag.call(this,_27);
},_isInBounds:function(_30,_31,_32){
var _33=$telerik.containsPoint(_31,_30.x,_30.y);
if(_33){
var x=_30.x+_32.width;
var y=_30.y+_32.height;
_33=$telerik.containsPoint(_31,x,y);
}
return _33;
},initialize:function(){
Telerik.Web.UI.RadWindow.callBaseMethod(this,"initialize");
if(this._visibleOnPageLoad){
this.show();
}
this._registerWindowResizeHandler(true);
},dispose:function(){
var _36=this.get_windowManager();
if(_36){
if(_36.get_preserveClientState()){
_36.saveWindowState(this);
}
if(this._destroyOnClose){
_36.removeWindow(this);
}
}
if(this._windowAnimation){
this._windowAnimation.dispose();
}
if(this._popupBehavior){
this._popupBehavior.dispose();
this._popupBehavior=null;
}
this._makeMoveable(false);
this._makeResizeable(false);
this._makeModal(false);
this._registerTitlebarHandlers(false);
this._registerWindowResizeHandler(false);
this._registerIframeLoadHandler(false);
if(this._openerElement){
this._registerOpenerElementHandler(this._openerElement,false);
}
this.set_behaviors(Telerik.Web.UI.WindowBehaviors.None);
if(this._iframe){
this._iframe.src="javascript:'<html></html>';";
}
if(this._contentElement){
this._contentElement.innerHTML="";
}
Telerik.Web.UI.RadWindow.callBaseMethod(this,"dispose");
},hide:function(){
this._hide();
return true;
},clone:function(_37,_38){
if(!_37){
alert("Telerik.Web.UI.RadWindow.clone called without providing a name argument");
return;
}
var evs=(_38!=false)?this._getEventsParameter():null;
var _3a=this._getPropertiesParameter();
var _3b=document.createElement("SPAN");
_3b.setAttribute("id",_37);
var wnd=$create(Telerik.Web.UI.RadWindow,_3a,evs,null,_3b);
wnd.set_name(_37);
wnd._isCloned=true;
return wnd;
},set_contentElement:function(_3d){
this._createUI();
if(this._iframe){
this._iframe.style.display="none";
}
if(_3d.parentNode&&_3d.parentNode.removeChild){
_3d.parentNode.removeChild(_3d);
}
this._contentCell.appendChild(_3d);
_3d.style.display="";
this._contentElement=_3d;
},get_contentElement:function(){
return this._contentElement;
},isCreated:function(){
return this._popupElement!=null;
},show:function(){
var _3e=this.isCreated();
this._createUI();
if(this._navigateUrl&&(!_3e||this._reloadOnShow)){
this.setUrl(this._navigateUrl);
}
if(!_3e&&(this._initialBehaviors!=Telerik.Web.UI.WindowBehaviors.None)){
this._show();
this._afterShow();
if(this.isInitialBehaviorEnabled(Telerik.Web.UI.WindowBehaviors.Minimize)){
this.minimize();
}
if(this.isInitialBehaviorEnabled(Telerik.Web.UI.WindowBehaviors.Maximize)){
this.maximize();
}
if(this.isInitialBehaviorEnabled(Telerik.Web.UI.WindowBehaviors.Pin)){
this.togglePin();
}
return;
}
if(this._animation==Telerik.Web.UI.WindowAnimation.None){
this._show();
this._afterShow();
}else{
this._playAnimation();
}
},_show:function(){
this.raiseEvent("beforeShow",new Sys.EventArgs());
if(this.get_offsetElementID()&&!this._offsetElement){
var _3f=$get(this.get_offsetElementID());
if(_3f){
this._offsetElement=_3f;
}
}
this._popupBehavior.set_parentElement(this._bodyElement);
if(this._offsetElement&&!this._offsetSet){
this._popupBehavior.set_parentElement(this._offsetElement);
this._offsetSet=true;
}
this.set_visibleTitlebar(this._visibleTitlebar);
this.set_visibleStatusbar(this._visibleStatusbar);
this._reSetWindowPosition();
this._popupBehavior.set_parentElement(this._bodyElement);
this._popupVisible=true;
},_hide:function(){
if(this._windowAnimation){
this._windowAnimation.stop();
}
if(this._windowAnimation){
this._windowAnimation.play(true);
}else{
this._afterHide();
}
},_afterHide:function(){
if(!this._popupBehavior){
return;
}
if(this.isMaximized()){
this._restoreBounds();
}
this._popupBehavior.hide(true);
this._popupVisible=false;
this._getWindowController().notifyWindowClosed(this);
this.raiseEvent("close",new Sys.EventArgs());
},_afterShow:function(){
this.setActive(true);
this._storeBounds();
this.raiseEvent("show",new Sys.EventArgs());
},_playAnimation:function(){
var _40=function(){
var wnd=this.controller;
var _42=wnd._getCalculatedPopupBounds();
wnd._setPopupVisible(_42.x,_42.y);
var _43=$telerik.getBounds(wnd._popupElement);
wnd._popupBehavior.hide();
this.set_endBounds(_43);
};
if(!this._windowAnimation){
if(this._animation==Telerik.Web.UI.WindowAnimation.Fade){
this._windowAnimation=new Telerik.Web.UI.Animations.FadeAnimation(this,0.4,null,this._popupElement,null,this._openerElement);
this._windowAnimation.onShowStart=function(){
this.controller._show();
};
}else{
if(this._animation==Telerik.Web.UI.WindowAnimation.Slide){
this._windowAnimation=new Telerik.Web.UI.Animations.SlideAnimation(this,0.2,null,this._popupElement,null,this._openerElement);
this._windowAnimation.onShowStart=_40;
}else{
if(this._animation==Telerik.Web.UI.WindowAnimation.FlyIn){
this._windowAnimation=new Telerik.Web.UI.Animations.FlyInAnimation(this,null,null,this._popupElement,null,this._openerElement);
this._windowAnimation.onShowStart=_40;
}else{
if(this._animation==Telerik.Web.UI.WindowAnimation.Resize){
this._windowAnimation=new Telerik.Web.UI.Animations.ResizeAnimation(this,0.2,50,this._popupElement,null,this._openerElement);
this._windowAnimation.onShowStart=_40;
}
}
}
}
}
if(this._windowAnimation){
this._windowAnimation.onShowEnd=function(){
this.controller._show();
this.controller._afterShow();
};
this._windowAnimation.onHideEnd=function(){
this.controller._afterHide();
};
this._windowAnimation.play();
}
},_onClick:function(e){
this.show();
return this._cancelEvent(e);
},_cancelEvent:function(e){
if(e){
e.returnValue=false;
e.cancelBubble=true;
e.preventDefault();
e.stopPropagation();
}
return false;
},_getWindowController:function(){
return Telerik.Web.UI.RadWindowController.getInstance();
},_getReloadOnShowUrl:function(_46){
var str="rwndrnd="+Math.random();
if(_46.indexOf("?")>-1){
str="&"+str;
}else{
str="?"+str;
}
_46+=str;
return _46;
},_getPropertiesParameter:function(){
if(!this._propertiesParameter){
var _48={};
for(var _49 in Telerik.Web.UI.RadWindow.prototype){
var _4a=this[_49];
if(typeof (_4a)=="function"&&_49.indexOf("get_")==0){
var _4b=_49.substring(4);
if(null==this["set_"+_4b]){
continue;
}
var _4c=_4a.call(this);
if(null==_4c){
continue;
}
_48[_4b]=_4c;
if(_4b=="skin"){
break;
}
}
}
this._propertiesParameter=_48;
}
var _4d=this._cloneObject(this._propertiesParameter);
return _4d;
},_getEventsParameter:function(){
if(!this._eventsParameter){
var _4e={};
var _4f=this.get_events();
var _50=this._eventNames;
for(var i=0;i<_50.length;i++){
var _52=_50[i];
var _53=_4f.getHandler(_52);
if(_53&&typeof (eval(_53))=="function"){
_4e[_52]=eval(_53);
}
}
this._eventsParameter=_4e;
}
return this._eventsParameter;
},_cloneObject:function(_54){
var _55={};
for(var _56 in _54){
_55[_56]=_54[_56];
}
return _55;
},getWindowBounds:function(){
return this._getCalculatedPopupBounds();
},toString:function(){
return "[RadWindow id="+this.get_id()+"]";
},center:function(){
var _57=this._getCentralBounds();
this.moveTo(_57.x,_57.y);
},moveTo:function(x,y){
x=parseInt(x);
y=parseInt(y);
this._createUI();
this._setPopupVisible(x,y);
this._storeBounds();
},setSize:function(_5a,_5b){
this._firstShow=false;
this.set_width(_5a);
this.set_height(_5b);
this._storeBounds();
},_maintainMaximizedSize:function(){
if(!this.isMaximized()){
return;
}
var _5c=this._popupElement;
if(!_5c){
return;
}
var _5d=this._getViewportBounds();
_5c.style.top=(_5d.scrollTop+_5d.y)+"px";
_5c.style.left=(_5d.scrollLeft+_5d.x)+"px";
_5c.style.width=_5d.width+"px";
_5c.style.height=_5d.height+"px";
var _5e=this._getRestrictionZoneBounds();
if(!_5e){
this._enablePageScrolling(false);
}
var _5f=this._tableElement;
_5d=this._getViewportBounds();
_5f.style.height=_5d.height+"px";
this._fixIeHeight(_5f,_5d.height);
},_enablePageScrolling:function(_60){
if(_60){
var _61=this._documentOverflowX;
if(null!=_61){
this._documentOverflowX=null;
document.documentElement.style.overflowX=_61?_61:"";
}
_61=this._documentOverflowY;
if(null!=_61){
this._documentOverflowY=null;
document.documentElement.style.overflowY=_61?_61:"";
}
_61=this._bodyOverflowX;
if(null!=_61){
this._bodyOverflowX=null;
document.body.style.overflowX=_61?_61:"";
}
_61=this._bodyOverflowY;
if(null!=_61){
this._bodyOverflowY=null;
document.body.style.overflowY=_61?_61:"";
}
}else{
if(!this._documentOverflowX){
this._documentOverflowX=$telerik.getCurrentStyle(document.documentElement,"overflowX");
}
if(!this._documentOverflowY){
this._documentOverflowY=$telerik.getCurrentStyle(document.documentElement,"overflowY");
}
if(!this._bodyOverflowX){
this._bodyOverflowX=$telerik.getCurrentStyle(document.body,"overflowX");
}
if(!this._bodyOverflowY){
this._bodyOverflowY=$telerik.getCurrentStyle(document.body,"overflowY");
}
document.body.style.overflow="hidden";
document.documentElement.style.overflow="hidden";
}
},_isInZoneBounds:function(_62){
var _63=this._getRestrictionZoneBounds();
if(!_63){
return true;
}
if(!_62){
_62=$telerik.getBounds(this._popupElement);
}
var _64=$telerik.containsPoint(_63,_62.x,_62.y);
if(_64){
var x=_62.x+_62.width;
var y=_62.y+_62.height;
_64=$telerik.containsPoint(_63,x,y);
}
return _64;
},_getRestrictionZoneBounds:function(){
if(!this._zoneBounds){
if(this.get_restrictionZoneID()){
var _67=$get(this.get_restrictionZoneID());
if(_67){
var _68=$telerik.getBounds(_67);
_68.scrollLeft=0;
_68.scrollTop=0;
this._zoneBounds=_68;
}
}
}
return this._zoneBounds;
},_storeBounds:function(){
if(!this.isCreated()){
return;
}
var _69=this._getCurrentBounds();
if(this.isMaximized()){
return false;
}
if(this.isMinimized()){
if(this._restoreRect){
_69.width=this._restoreRect.width;
_69.height=this._restoreRect.height;
}else{
_69.width=this.get_width();
_69.height=this.get_height();
}
}
this._restoreRect=_69;
},_restoreBounds:function(){
if(!this._restoreRect){
return;
}
var _6a=this._restoreRect;
this.setSize(_6a.width,_6a.height);
this.moveTo(_6a.x,_6a.y);
},_getStoredBounds:function(){
if(this._restoreRect){
return this._restoreRect;
}
},_deleteStoredBounds:function(){
this._restoreRect=null;
},_getCurrentBounds:function(){
var _6b=(this._popupElement.style.display=="none")?true:false;
this._popupElement.style.display="";
if(this._firstShow!=true){
this._updateWindowSize(this._height);
this._firstShow=true;
}
var _6c=$telerik.getBounds(this._popupElement);
if(_6b){
this._popupElement.style.display="none";
}
var _6d=this._getRestrictionZoneBounds();
if(_6d){
_6c.x-=_6d.x;
_6c.y-=_6d.y;
}
return _6c;
},_getCentralBounds:function(){
var _6e=this._getCurrentBounds();
var _6f=this._getViewportBounds();
var x=parseInt((_6f.width-_6e.width)/2);
var y=parseInt((_6f.height-_6e.height)/2);
_6e.x=x+_6f.scrollLeft;
_6e.y=y+_6f.scrollTop;
return _6e;
},_getViewportBounds:function(){
var _72=this._getRestrictionZoneBounds();
if(_72){
return _72;
}
var _73=$telerik.getClientBounds();
var _74=document.documentElement.scrollLeft||document.body.scrollLeft;
var _75=document.documentElement.scrollTop||document.body.scrollTop;
_73.scrollLeft=_74;
_73.scrollTop=_75;
if(this.isIE){
if(_73.width==0){
_73.width=document.body.clientWidth;
}
if(_73.height==0){
_73.height=document.body.clientHeight;
}
}
return _73;
},_getCalculatedPopupBounds:function(){
var _76=this._getStoredBounds();
if(_76){
return _76;
}
var _77=this._getCurrentBounds();
var _78=this._offsetElement;
if(!this._top&&!this._left&&!_78){
_77=this._getCentralBounds();
}else{
if(_78){
_77.y=0;
_77.x=0;
}else{
var _79=this._getViewportBounds();
_77.x=_79.scrollLeft;
_77.y=_79.scrollTop;
}
var _7a=this._left?this._left:0;
_77.x+=_7a;
var top=this._top?this._top:0;
_77.y+=top;
}
return _77;
},_reSetWindowPosition:function(){
var _7c=this._getCalculatedPopupBounds();
this._setPopupVisible(_7c.x,_7c.y);
},_fixIeHeight:function(_7d,_7e){
if("CSS1Compat"==document.compatMode){
var _7f=(_7d.offsetHeight-parseInt(_7e));
if(_7f>0){
var _80=(parseInt(_7d.style.height)-_7f);
if(_80>0){
_7d.style.height=_80+"px";
}
}
}
},_setPopupVisible:function(x,y){
var _83=this._getRestrictionZoneBounds();
if(_83){
x+=_83.x;
y+=_83.y;
}
this._popupBehavior._setCoordinates(x,y);
this._popupBehavior.show();
if(!this.get_width()){
this._popupElement.style.width="";
}
this._updateTitleWidth();
},_createDefaultTable:function(){
var _84=document.createElement("TABLE");
_84.align="left";
_84.cellSpacing=0;
_84.cellPadding=0;
_84.insertRow(-1);
return _84;
},_createUI:function(){
if(!this._popupElement){
var _85=this.get_id();
var _86="RadWindowWrapper_"+_85;
var _87=document.createElement("DIV");
_87.id=_86;
_87.className=this._getFullSkinName();
_87.style.width=this._width;
_87.style.height=this._height;
_87.setAttribute("unselectable","on");
this._popupElement=_87;
var _88=document.createElement("TABLE");
_88.cellSpacing=0;
_88.cellPadding=0;
this._tableElement=_88;
var _89=["corner topleft","titlebar","corner topright","corner bodyleft","windowcontent","corner bodyright","corner bodyleft","statusbar","corner bodyright","corner footerleft","footercenter","corner footerright"];
var _8a=["titlerow","contentrow","statusbarrow","footerrow"];
var _8b=0;
for(var i=0;i<4;i++){
var row=_88.insertRow(-1);
row.className=_8a[i];
for(var j=1;j<=3;j++){
var _8f=row.insertCell(-1);
_8f.innerHTML="&nbsp;";
_8f.className=_89[_8b];
_8b++;
}
}
var _90=_88.rows[0].cells[1];
_90.innerHTML="";
this._titleCell=_90;
var _91=document.createElement("DIV");
_91.className="topresize";
_91.innerHTML="<!-- / -->";
this._topResizer=_91;
this._titleCell.appendChild(this._topResizer);
var _92=this._createDefaultTable();
_92.className="titlebarcontrols";
this._titlebarElement=_92;
this._titleCell.appendChild(this._titlebarElement);
var _93=this._getTitleIcon();
var _94=this._titlebarElement.rows[0].insertCell(-1);
_94.appendChild(_93);
var _95=this._getTitleElement();
var _90=this._titlebarElement.rows[0].insertCell(-1);
_90.appendChild(_95);
this.set_title(this._title);
var _96=this._titlebarElement.rows[0].insertCell(-1);
_96.noWrap=true;
_96.style.whiteSpace="nowrap";
_96.appendChild(this._getTitleCommandButtonsHolder());
var _97=_88.rows[1].cells[1];
_97.vAlign="top";
_97.innerHTML="";
this._contentCell=_97;
var _98=this.get_name();
var _99=($telerik.isIE)?document.createElement("<iframe name='"+_98+"'>"):document.createElement("iframe");
_99.name=_98;
_99.src="javascript:'<html></html>';";
_99.style.width="100%";
_99.style.height="100%";
_99.style.border="0px";
_99.frameBorder="0";
this._iframe=_99;
this._contentCell.appendChild(this._iframe);
var _9a=this._createDefaultTable();
_9a.style.width="100%";
this._statusCell=_88.rows[2].cells[1];
this._statusCell.innerHTML="";
this._statusCell.appendChild(_9a);
var _9b=_9a.rows[0].insertCell(-1);
_9b.style.width="100%";
var _9c=this._getStatusMessageElement();
_9b.appendChild(_9c);
var _9d=_9a.rows[0].insertCell(-1);
_9d.style.width="15px";
var _9e=document.createElement("DIV");
_9d.appendChild(_9e);
this._bottomResizer=_9e;
this._createBackReference();
this._popupElement.appendChild(this._tableElement);
this._popupElement.style.display="none";
this._popupElement.style.position="absolute";
this._addWindowToDocument();
this.set_behaviors(this._behaviors);
this._registerTitlebarHandlers(true);
this.set_visibleTitlebar(this._visibleTitlebar);
this.set_visibleStatusbar(this._visibleStatusbar);
}
if(!this._popupBehavior){
this._popupBehavior=$create(Telerik.Web.PopupBehavior,{"id":(new Date()-100)+"PopupBehavior","parentElement":null,"overlay":this._overlay,"keepInScreenBounds":this._keepInScreenBounds},null,null,this._popupElement);
}
},_getStatusMessageElement:function(){
if(null==this._statusMessageElement){
var el=document.createElement("INPUT");
el.readOnly="readonly";
el.setAttribute("unselectable","on");
this._statusMessageElement=el;
}
return this._statusMessageElement;
},_getTitleCommandButtonsHolder:function(){
if(null==this._buttonsElement){
var ul=document.createElement("UL");
ul.className="controlbuttons";
this._buttonsElement=ul;
}
return this._buttonsElement;
},_getTitleElement:function(){
if(!this._titleElement){
this._titleElement=document.createElement("EM");
this._titleElement.setAttribute("unselectable","on");
}
return this._titleElement;
},_getTitleIcon:function(){
if(null==this._titleIconElement){
var _a1=document.createElement("A");
this._titleIconElement=_a1;
_a1.className="windowicon";
if(this.get_iconUrl()){
_a1.style.background="transparent url("+this.get_iconUrl()+") no-repeat scroll 0px 0px";
}
}
return this._titleIconElement;
},_getTitleCommandButton:function(_a2){
if(!_a2||!this._buttonsArray){
return null;
}
_a2=_a2.toLowerCase()+"button";
var _a3=this._buttonsArray.length;
for(var i=0;i<_a3;i++){
var _a5=this._buttonsArray[i];
if(_a5&&Sys.UI.DomElement.containsCssClass(_a5,_a2)){
return _a5;
}
}
return null;
},_updateTitleWidth:function(){
if(this._visibleTitlebar){
var _a6=this._getTitleElement();
if(!_a6){
return;
}
var _a7=this._getTitleCommandButtonsHolder();
var _a8=_a7.offsetWidth;
if(_a8>0){
var lis=_a7.getElementsByTagName("LI");
if(lis[0]&&lis[0].offsetWidth>0){
_a8=lis.length*lis[0].offsetWidth;
}
_a7.style.width=_a8+"px";
}
var _aa=this._getTitleIcon();
var _ab=_aa.offsetWidth;
if(_ab>0&&_aa.parentNode.tagName=="TD"){
_aa.parentNode.style.width=_ab+"px";
}
}
},_addWindowToDocument:function(){
var _ac=document.getElementById(this._formID);
if(!_ac){
_ac=document.forms[0];
}
_ac.insertBefore(this._popupElement,theForm.firstChild);
},_invokeDialogCallBackFunction:function(_ad,_ae){
if(true!=_ae){
this.close();
}
var _af=this.get_clientCallBackFunction();
if(_af){
if("string"==typeof (_af)){
_af=eval(_af);
}
if("function"==typeof (_af)){
_af(this,_ad);
}
}
},_createBackReference:function(){
var _b0=this;
if(!_b0.Argument){
_b0.Argument={};
}
var _b1=this._iframe;
try{
_b1.radWindow=_b0;
if(_b1.contentWindow!=null){
_b1.contentWindow.radWindow=_b0;
}
}
catch(e){
}
},_getFullSkinName:function(){
return "radwindow radwindow_"+this._skin+" normalwindow transparentwindow";
},_configureMinimizeButton:function(_b2){
var loc=this._getLocalization();
var _b4=(true==_b2)?loc["Restore"]:loc["Minimize"];
var _b5=(true==_b2)?this.restore:this.minimize;
this._registerTitlebarHandlersButton("Minimize",_b4,_b5);
},_configureMaximizeButton:function(_b6){
var loc=this._getLocalization();
var _b8=(true==_b6)?loc["Restore"]:loc["Maximize"];
var _b9=(true==_b6)?this.restore:this.maximize;
this._registerTitlebarHandlersButton("Maximize",_b8,_b9);
},_registerTitlebarHandlersButton:function(_ba,_bb,_bc){
var _bd=this._getTitleCommandButton(_ba);
if(_bd){
var loc=this._getLocalization();
_bd.setAttribute("title",_bb);
_bd.innerHTML=_bb;
$clearHandlers(_bd);
$addHandlers(_bd,{"click":_bc},this);
$addHandler(_bd,"dblclick",this._cancelEvent);
}
},isCloned:function(){
return this._isCloned;
},isBehaviorEnabled:function(_bf){
return _bf&this._behaviors?true:false;
},isInitialBehaviorEnabled:function(_c0){
return _c0&this._initialBehaviors?true:false;
},setVisible:function(_c1){
if(this._popupBehavior){
if(_c1){
this._popupBehavior.show();
}else{
this._popupBehavior.hide();
}
}
},isVisible:function(){
return this._popupVisible;
},isModal:function(){
return this._modal;
},isActive:function(){
return (this._popupElement&&!Sys.UI.DomElement.containsCssClass(this._popupElement,"inactivewindow"));
},isPinned:function(){
var _c2=this._getTitleCommandButton("Pin");
return (_c2&&Sys.UI.DomElement.containsCssClass(_c2,"on"));
},isClosed:function(){
return (!this.isVisible());
},isMinimized:function(){
return (this._popupElement&&Sys.UI.DomElement.containsCssClass(this._popupElement,"minimizedwindow"));
},isMaximized:function(){
return (this._popupElement&&Sys.UI.DomElement.containsCssClass(this._popupElement,"maximizedwindow"));
},setActive:function(_c3){
var _c4=this._popupElement;
if(!_c3){
Sys.UI.DomElement.addCssClass(_c4,"inactivewindow");
}else{
var _c5=parseInt(_c4.style.zIndex);
var _c6=Telerik.Web.UI.RadWindowUtils.get_newZindex(_c5);
_c4.style.zIndex=""+_c6;
this._getWindowController().set_activeWindow(this);
if(this.isActive()){
return;
}
$telerik.removeCssClasses(_c4,["inactivewindow"]);
this.raiseEvent("activate",new Sys.EventArgs());
}
},_moveToMinimizeZone:function(){
var _c7=$get(this.get_minimizeZoneID());
if(_c7){
if(this.isPinned()){
this._isPinned=true;
this.togglePin();
}
var _c8=this._popupElement;
if(_c8.parentNode!=_c7){
_c8.parentNode.removeChild(_c8);
_c7.appendChild(_c8);
this.setVisible(true);
_c8.style.position="static";
if(this.isIE){
_c8.style.display="inline";
}else{
_c8.style.cssFloat="left";
}
this._makeMoveable(false);
}
}
},_moveToDocument:function(){
var _c9=this._popupElement;
_c9.parentNode.removeChild(_c9);
_c9.style.position="absolute";
if(this.isIE){
_c9.style.display="";
}else{
_c9.style.cssFloat="";
}
this._addWindowToDocument();
this._makeMoveable(true);
if(this._isPinned){
this._isPinned=false;
this.togglePin();
}
},minimize:function(){
if(!this.isCreated()){
return;
}
var _ca=this.onCommand("Minimize");
if(!_ca){
return;
}
var _cb=this._popupElement;
$telerik.removeCssClasses(_cb,["normalwindow","maximizedwindow"]);
Sys.UI.DomElement.addCssClass(_cb,"minimizedwindow");
var _cc=_cb._hideWindowedElementsIFrame;
if(_cc){
Sys.UI.DomElement.addCssClass(_cc,"minimizedwindowoverlay_"+this._skin);
}
this._configureMinimizeButton(true);
this._enablePageScrolling(true);
if(this.get_minimizeZoneID()){
this._moveToMinimizeZone();
}
},restore:function(){
if(!this.isCreated()){
return;
}
var _cd=this.onCommand("Restore");
if(!_cd){
return;
}
this._configureMinimizeButton();
this._configureMaximizeButton();
if(this.isMinimized()&&this.get_minimizeZoneID()){
this._moveToDocument();
}
this._normalizeWindowRootCss();
this._enablePageScrolling(true);
this.setVisible(true);
this._restoreBounds();
this.setVisible(true);
this.setActive(true);
},maximize:function(){
if(!this.isCreated()){
return;
}
var _ce=this.onCommand("Maximize");
if(!_ce){
return;
}
if(!this.isBehaviorEnabled(Telerik.Web.UI.WindowBehaviors.Maximize)){
return;
}
this._storeBounds();
if(this.isMinimized()&&this.get_minimizeZoneID()){
this._moveToDocument();
}
var _cf=this._popupElement;
$telerik.removeCssClasses(_cf,["normalwindow","minimizedwindow"]);
Sys.UI.DomElement.addCssClass(_cf,"maximizedwindow");
this._configureMaximizeButton(true);
this._configureMinimizeButton();
this._maintainMaximizedSize();
this._maintainMaximizedSize();
var _d0=_cf._hideWindowedElementsIFrame;
if(_d0){
$telerik.removeCssClasses(_d0,["minimizedwindowoverlay_"+this._skin]);
this._popupBehavior._handleElementResize();
}
if(!this.isActive()){
this.setActive(true);
}
},togglePin:function(){
if(!this.isCreated()){
return;
}
var _d1=this.onCommand("Pin");
if(!_d1){
return;
}
var _d2=this._getTitleCommandButton("Pin");
var loc=this._getLocalization();
var _d4=this.isPinned();
var _d5=_d4?loc["PinOn"]:loc["PinOff"];
if(_d2){
Sys.UI.DomElement.toggleCssClass(_d2,"on");
}
this._registerTitlebarHandlersButton("Pin",_d5,this.togglePin);
Telerik.Web.UI.RadWindowUtils.setPinned(!_d4,this);
},reload:function(){
if(!this.isCreated()){
return;
}
var _d6=this.onCommand("Reload");
if(!_d6){
return;
}
if(!this._iframe){
return;
}
this._onWindowUrlChanging();
try{
this._iframe.contentWindow.location.reload();
}
catch(e){
this._onWindowUrlChanged();
}
},_normalizeWindowRootCss:function(){
var _d7=this._popupElement;
if(_d7){
$telerik.removeCssClasses(_d7,["minimizedwindow","maximizedwindow"]);
Sys.UI.DomElement.addCssClass(_d7,"normalwindow");
var _d8=_d7._hideWindowedElementsIFrame;
if(_d8){
$telerik.removeCssClasses(_d8,["minimizedwindowoverlay_"+this._skin]);
}
}
},close:function(_d9){
if(this.isClosed()){
return;
}
this.hide();
this._enablePageScrolling(true);
this._normalizeWindowRootCss();
if(null!=_d9&&!(_d9 instanceof Sys.UI.DomEvent)){
this._invokeDialogCallBackFunction(_d9);
}
if(this._destroyOnClose){
this.dispose();
}
},onCommand:function(_da){
var _db=new Sys.CancelEventArgs();
_db._commandName=_da;
_db.get_commandName=function(){
return this._commandName;
};
this.raise_command(_db);
if(_db.get_cancel()){
return false;
}
return true;
},setUrl:function(url){
this._createUI();
this._navigateUrl=url;
var _dd=url;
if(this._reloadOnShow){
_dd=this._getReloadOnShowUrl(_dd);
}
this._iframe.src=_dd;
this._onWindowUrlChanging();
if(!this._loaded){
this._registerIframeLoadHandler(true);
}
this._loaded=true;
},_registerChildPageHandlers:function(_de){
var _df=null;
try{
_df=this._iframe.contentWindow.document;
if(_df.domain!=document.domain){
return;
}
}
catch(e){
return;
}
if(null==_df){
return;
}
if(_de){
this._onChildPageUnloadDelegate=Function.createDelegate(this,this._onChildPageUnload);
if(this.isIE){
_df.onunload=this._onChildPageUnloadDelegate;
}else{
this._iframe.contentWindow.onunload=this._onChildPageUnloadDelegate;
}
this._onChildPageClickDelegate=Function.createDelegate(this,this._onChildPageClick);
$telerik.addExternalHandler(_df,"click",this._onChildPageClickDelegate);
}else{
if(this._onChildPageClickDelegate){
$telerik.removeExternalHandler(_df,"click",this._onChildPageClickDelegate);
this._onChildPageClickDelegate=null;
}
}
},_onChildPageUnload:function(e){
this._registerChildPageHandlers(false);
},_onChildPageClick:function(e){
if(!this.isVisible()||this.isClosed()){
return;
}
var src=e.target?e.target:e.srcElement;
if(src){
if(src.tagName=="INPUT"&&src.type=="button"){
return;
}else{
if(src.tagName=="BUTTON"||src.tagName=="A"){
return;
}
}
}
this.setActive(true);
},_onIframeLoad:function(){
this._onWindowUrlChanged();
this._registerChildPageHandlers(true);
this.raiseEvent("pageLoad",new Sys.EventArgs());
},_onWindowUrlChanging:function(){
var _e3=this._getStatusMessageElement();
if(_e3){
Sys.UI.DomElement.addCssClass(_e3,"loading");
}
if(!this._showContentDuringLoad){
this._iframe.style.width="0px";
this._iframe.style.height="0px";
}
},_onWindowUrlChanged:function(){
var _e4=this._getStatusMessageElement();
if(_e4){
Sys.UI.DomElement.removeCssClass(_e4,"loading");
this.set_status(this._navigateUrl);
}
if(!this._showContentDuringLoad){
this._iframe.style.width="100%";
this._iframe.style.height="100%";
}
try{
if(this._iframe.contentWindow.document.title){
this.set_title(this._iframe.contentWindow.document.title);
}
}
catch(e){
}
},_updatePopupZindex:function(){
if(this._popupBehavior){
if(this.isVisible()){
this._popupBehavior.show();
}
}
},get_zindex:function(){
if(this._popupElement){
return this._popupElement.style.zIndex;
}else{
return -1;
}
},get_contentFrame:function(){
return this._iframe;
},get_minimizeZoneID:function(){
return this._minimizeZoneID;
},set_minimizeZoneID:function(_e5){
if(this._minimizeZoneID!=_e5){
this._minimizeZoneID=_e5;
}
},get_restrictionZoneID:function(){
return this._restrictionZoneID;
},set_restrictionZoneID:function(_e6){
if(this._restrictionZoneID!=_e6){
this._restrictionZoneID=_e6;
}
},get_minimizeIconUrl:function(){
return this._minimizeIconUrl;
},set_minimizeIconUrl:function(_e7){
if(this._minimizeIconUrl!=_e7){
this._minimizeIconUrl=_e7;
}
},get_iconUrl:function(){
return this._iconUrl;
},set_iconUrl:function(_e8){
if(this._iconUrl!=_e8){
this._iconUrl=_e8;
}
},get_clientCallBackFunction:function(){
return this._clientCallBackFunction;
},set_clientCallBackFunction:function(_e9){
if(this._clientCallBackFunction!=_e9){
this._clientCallBackFunction=_e9;
}
},get_navigateUrl:function(){
return this._navigateUrl;
},set_navigateUrl:function(_ea){
if(this._navigateUrl!=_ea){
this._navigateUrl=_ea;
}
},get_targetControl:function(){
return this._openerElement;
},set_targetControl:function(_eb){
if(this._openerElement!=_eb){
this._openerElement=_eb;
}
},get_name:function(){
return this._name;
},set_name:function(_ec){
if(this._name!=_ec){
this._name=_ec;
}
},get_formID:function(){
return this._formID;
},set_formID:function(_ed){
if(this._formID!=_ed){
this._formID=_ed;
}
},get_offsetElementID:function(){
return this._offsetElementID;
},set_offsetElementID:function(_ee){
if(this._offsetElementID!=_ee){
this._offsetElementID=_ee;
}
if(this.isVisible()){
this._deleteStoredBounds();
this._offsetSet=false;
this._show();
}
},get_openerElementID:function(){
return this._openerElementID;
},set_openerElementID:function(_ef){
if(this._openerElementID!=_ef){
if(this._openerElement){
this._registerOpenerElementHandler(this._openerElement,false);
this._openerElement=null;
}
this._openerElementID=_ef;
if(this._openerElementID){
this._openerElement=$get(this._openerElementID);
}
if(this._openerElement){
this._registerOpenerElementHandler(this._openerElement,true);
}
}
},get_left:function(){
return this._left;
},set_left:function(_f0){
if(this._left!=_f0){
this._left=parseInt(_f0);
}
},get_top:function(){
return this._top;
},set_top:function(_f1){
if(this._top!=_f1){
this._top=parseInt(_f1);
}
},get_title:function(){
return this._title;
},set_title:function(_f2){
if(this._title!=_f2){
this._title=_f2;
}
if(null==this._titleElement){
return;
}
this._titleElement.innerHTML=this._title;
this._updateTitleWidth();
},get_width:function(){
return parseInt(this._width);
},_fixSizeValue:function(_f3){
_f3=""+_f3;
if(-1==_f3.indexOf("px")){
_f3=parseInt(_f3);
if(!isNaN(_f3)){
_f3=_f3+"px";
}else{
_f3="";
}
}
return _f3;
},set_width:function(_f4){
if(null==_f4){
return;
}
_f4=this._fixSizeValue(_f4);
if(this._width!=_f4){
this._width=_f4;
}
if(this._popupElement){
this._deleteStoredBounds();
this._popupElement.style.width=this._width;
this._updatePopupZindex();
}
},get_height:function(){
return parseInt(this._height);
},set_height:function(_f5){
if(null==_f5){
return;
}
_f5=this._fixSizeValue(_f5);
if(this._height!=_f5){
this._height=_f5;
}
if(this._popupElement){
this._deleteStoredBounds();
this._updateWindowSize(this._height);
this._updatePopupZindex();
}
},_updateWindowSize:function(_f6,_f7){
var _f8=this._tableElement;
var _f9=_f6?_f6:_f8.style.height;
if(true==_f7){
_f9=_f8.offsetHeight+"px";
}
if(parseInt(_f9)==0){
return;
}
_f8.style.height=_f9;
this._fixIeHeight(_f8,_f9);
_f8.parentNode.style.height=_f9;
},get_initialBehaviors:function(){
return this._initialBehaviors;
},set_initialBehaviors:function(_fa){
if(this._initialBehaviors!=_fa){
this._initialBehaviors=_fa;
}
},get_behaviors:function(){
return this._behaviors;
},set_behaviors:function(_fb){
if(this._behaviors!=_fb){
this._behaviors=_fb;
}
if(null==this._titlebarElement){
return;
}
this._makeMoveable(false);
this._makeMoveable(true);
this._makeResizeable(false);
this._makeResizeable(true);
if(this._buttonsArray&&this._buttonsArray.length>0){
var len=this._buttonsArray.length;
for(var i=0;i<len;i++){
var _fe=this._buttonsArray[i];
$clearHandlers(_fe);
}
this._buttonsArray=[];
var _ff=this._getTitleCommandButtonsHolder();
_ff.innerHTML="";
}
if(Telerik.Web.UI.WindowBehaviors.None==this._behaviors){
return;
}else{
var loc=this._getLocalization();
var _101=Telerik.Web.UI.WindowBehaviors;
var _102=[[this.isBehaviorEnabled(_101.Pin),"pinbutton",loc["PinOn"],this.togglePin],[this.isBehaviorEnabled(_101.Reload),"reloadbutton",loc["Reload"],this.reload],[this.isBehaviorEnabled(_101.Minimize),"minimizebutton",loc["Minimize"],this.minimize],[this.isBehaviorEnabled(_101.Maximize),"maximizebutton",loc["Maximize"],this.maximize],[this.isBehaviorEnabled(_101.Close),"closebutton",loc["Close"],this.close]];
for(var i=0;i<_102.length;i++){
var info=_102[i];
if(!info[0]){
continue;
}
var li=document.createElement("LI");
var _105=document.createElement("A");
_105.href="javascript:void(0);";
_105.className=info[1];
_105.setAttribute("title",info[2]);
var _106=document.createElement("SPAN");
_106.innerHTML=info[2];
_105.appendChild(_106);
$addHandlers(_105,{"click":info[3]},this);
$addHandler(_105,"click",this._cancelEvent);
$addHandler(_105,"dblclick",this._cancelEvent);
li.appendChild(_105);
this._buttonsElement.appendChild(li);
this._buttonsArray[this._buttonsArray.length]=_105;
}
}
},get_modal:function(){
return this._modal;
},set_modal:function(_107){
if(this._modal!=_107){
this._modal=_107;
}
this._makeModal(this._modal);
if(this.isVisible()){
this._afterShow();
}
},get_destroyOnClose:function(){
return this._destroyOnClose;
},set_destroyOnClose:function(_108){
if(this._destroyOnClose!=_108){
this._destroyOnClose=_108;
}
},get_reloadOnShow:function(){
return this._reloadOnShow;
},set_reloadOnShow:function(_109){
if(this._reloadOnShow!=_109){
this._reloadOnShow=_109;
}
},get_showContentDuringLoad:function(){
return this._showContentDuringLoad;
},set_showContentDuringLoad:function(_10a){
if(this._showContentDuringLoad!=_10a){
this._showContentDuringLoad=_10a;
}
},get_visibleOnPageLoad:function(){
return this._visibleOnPageLoad;
},set_visibleOnPageLoad:function(_10b){
if(this._visibleOnPageLoad!=_10b){
this._visibleOnPageLoad=_10b;
}
},get_visibleTitlebar:function(){
return this._visibleTitlebar;
},set_visibleTitlebar:function(_10c){
if(this._visibleTitlebar!=_10c){
this._visibleTitlebar=_10c;
}
if(this._titlebarElement){
this._titlebarElement.style.display=_10c?"":"none";
}
},get_visibleStatusbar:function(){
return this._visibleStatusbar;
},set_visibleStatusbar:function(_10d){
if(this._visibleStatusbar!=_10d){
this._visibleStatusbar=_10d;
}
if(this._statusCell){
this._statusCell.parentNode.style.display=_10d?"":"none";
}
},get_animation:function(){
return this._animation;
},set_animation:function(_10e){
if(this._animation!=_10e){
this._animation=_10e;
}
},get_overlay:function(){
return this._overlay;
},set_overlay:function(_10f){
this._overlay=_10f;
if(this._popupBehavior){
this._popupBehavior.set_overlay(this._overlay);
}
if(this.isVisible()){
this._reSetWindowPosition();
}
},get_keepInScreenBounds:function(){
return this._keepInScreenBounds;
},set_keepInScreenBounds:function(_110){
this._keepInScreenBounds=_110;
if(this._popupBehavior){
this._popupBehavior.set_keepInScreenBounds(this._keepInScreenBounds);
}
if(this.isVisible()){
this._reSetWindowPosition();
}
},get_skin:function(){
return this._skin;
},set_skin:function(_111){
if(_111&&this._skin!=_111){
this._skin=_111;
}
},get_popupElement:function(){
return this._popupElement;
},get_windowManager:function(){
return this._windowManager;
},set_windowManager:function(_112){
this._windowManager=_112;
},set_status:function(_113){
var _114=this._getStatusMessageElement();
if(_114){
window.setTimeout(function(){
_114.value=_113;
},0);
}
},get_status:function(){
var _115=this._getStatusMessageElement();
if(_115){
return _115.value;
}
},add_command:function(_116){
this.get_events().addHandler("command",_116);
},remove_command:function(_117){
this.get_events().removeHandler("command",_117);
},raise_command:function(args){
this.raiseEvent("command",args);
},add_dragStart:function(_119){
this.get_events().addHandler("dragStart",_119);
},remove_dragStart:function(_11a){
this.get_events().removeHandler("dragStart",_11a);
},add_dragEnd:function(_11b){
this.get_events().addHandler("dragEnd",_11b);
},remove_dragEnd:function(_11c){
this.get_events().removeHandler("dragEnd",_11c);
},add_activate:function(_11d){
this.get_events().addHandler("activate",_11d);
},remove_activate:function(_11e){
this.get_events().removeHandler("activate",_11e);
},add_beforeShow:function(_11f){
this.get_events().addHandler("beforeShow",_11f);
},remove_beforeShow:function(_120){
this.get_events().removeHandler("beforeShow",_120);
},add_show:function(_121){
this.get_events().addHandler("show",_121);
},remove_show:function(_122){
this.get_events().removeHandler("show",_122);
},add_pageLoad:function(_123){
this.get_events().addHandler("pageLoad",_123);
},remove_pageLoad:function(_124){
this.get_events().removeHandler("pageLoad",_124);
},add_close:function(_125){
this.get_events().addHandler("close",_125);
},remove_close:function(_126){
this.get_events().removeHandler("close",_126);
},add_resize:function(_127){
this.get_events().addHandler("resize",_127);
},remove_resize:function(_128){
this.get_events().removeHandler("resize",_128);
},saveClientState:function(){
var _129=["position"];
var _12a={};
for(var i=0;i<_129.length;i++){
_12a[_129[i]]=this["get_"+_129[i]]();
}
return Sys.Serialization.JavaScriptSerializer.serialize(_12a);
}};
Telerik.Web.UI.RadWindow.registerClass("Telerik.Web.UI.RadWindow",Telerik.Web.UI.RadWebControl);
Telerik.Web.UI.WindowAnimation=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.WindowAnimation.prototype={None:0,Resize:1,Fade:2,Slide:4,FlyIn:8};
Telerik.Web.UI.WindowAnimation.registerEnum("Telerik.Web.UI.WindowAnimation",false);
Telerik.Web.UI.WindowMinimizeMode=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.WindowMinimizeMode.prototype={SameLocation:1,MinimizeZone:2,Default:1};
Telerik.Web.UI.WindowMinimizeMode.registerEnum("Telerik.Web.UI.WindowMinimizeMode",false);
Telerik.Web.UI.WindowBehaviors=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.WindowBehaviors.prototype={None:0,Resize:1,Minimize:2,Close:4,Pin:8,Maximize:16,Move:32,Reload:64,Default:(1+2+4+8+16+32+64)};
Telerik.Web.UI.WindowBehaviors.registerEnum("Telerik.Web.UI.WindowBehaviors",false);
Telerik.Web.UI.RadWindowUtils._zIndex=3000;
Telerik.Web.UI.RadWindowUtils.get_newZindex=function(_12c){
_12c=parseInt(_12c);
if(null==_12c||isNaN(_12c)){
_12c=0;
}
if(Telerik.Web.UI.RadWindowUtils._zIndex<_12c){
Telerik.Web.UI.RadWindowUtils._zIndex=_12c;
}
Telerik.Web.UI.RadWindowUtils._zIndex++;
return Telerik.Web.UI.RadWindowUtils._zIndex;
};
Telerik.Web.UI.RadWindowUtils._pinnedList={};
Telerik.Web.UI.RadWindowUtils.setPinned=function(_12d,oWnd){
if(_12d){
var _12f=oWnd._getViewportBounds();
var _130=oWnd._getCurrentBounds();
oWnd.LeftOffset=_130.x-_12f.scrollLeft;
oWnd.TopOffset=_130.y-_12f.scrollTop;
var _131=window.setInterval(function(){
Telerik.Web.UI.RadWindowUtils._updatePinnedElementPosition(oWnd);
},100);
Telerik.Web.UI.RadWindowUtils._pinnedList[_131]=oWnd;
}else{
var _132=null;
var _133=Telerik.Web.UI.RadWindowUtils._pinnedList;
for(var name in _133){
if(_133[name]==oWnd){
_132=name;
break;
}
}
if(null!=_132){
window.clearInterval(_132);
Telerik.Web.UI.RadWindowUtils._pinnedList[_132]=null;
}
oWnd.TopOffset=null;
oWnd.LeftOffset=null;
}
};
Telerik.Web.UI.RadWindowUtils._updatePinnedElementPosition=function(oWnd){
if(oWnd.isMaximized()||!oWnd.isVisible()){
return;
}
var _136=oWnd._getViewportBounds();
var _137=oWnd._getCurrentBounds();
var left=(oWnd.LeftOffset!=null)?oWnd.LeftOffset+_136.scrollLeft:_137.x;
var top=(oWnd.TopOffset!=null)?oWnd.TopOffset+_136.scrollTop:_137.y;
oWnd.moveTo(left,top);
};
Telerik.Web.UI.RadWindowUtils.DragDataType="RadWindow";
Telerik.Web.UI.RadWindowUtils._documentDropZone=function(_13a){
};
Telerik.Web.UI.RadWindowUtils._documentDropZone.prototype={get_dropTargetElement:function(){
return ($telerik.standardsMode)?document.body:document.documentElement;
},canDrop:function(_13b,_13c,dock){
return _13c===Telerik.Web.UI.RadWindowUtils.DragDataType;
},drop:function(_13e,_13f,wnd){
},onDragEnterTarget:function(_141,type,wnd){
},onDragLeaveTarget:function(_144,type,wnd){
},onDragInTarget:function(_147,type,wnd){
}};
Telerik.Web.UI.RadWindowUtils._documentDropZone.registerClass("Telerik.Web.UI.RadWindowUtils._documentDropZone",null,Telerik.Web.IDropTarget);
Telerik.Web.UI.RadWindowUtils.DocumentDropZone=new Telerik.Web.UI.RadWindowUtils._documentDropZone();
Telerik.Web.DragDropManager.registerDropTarget(Telerik.Web.UI.RadWindowUtils.DocumentDropZone,true);


/* END Telerik.Web.UI.Window.RadWindow.js */
/* START Telerik.Web.UI.Window.RadWindowManager.js */
Type.registerNamespace("Telerik.Web.UI");
Type.registerNamespace("Telerik.Web.UI.WindowManager");
function GetRadWindowManager(){
return Telerik.Web.UI.WindowManager.Manager;
}
window.radalert=function(_1,_2,_3,_4){
var _5=GetRadWindowManager();
var _6=_5._getStandardPopup("alert",_1);
if(typeof (_4)!="undefined"){
_6.set_title(_4);
}
_6.setSize(_2?_2:280,_3?_3:200);
_6.show();
_6.center();
return _6;
};
window.radconfirm=function(_7,_8,_9,_a,_b,_c){
var _d=GetRadWindowManager();
var _e=_d._getStandardPopup("confirm",_7);
if(typeof (_c)!="undefined"){
_e.set_title(_c);
}
_e.setSize(_9?_9:280,_a?_a:200);
_e.callBack=function(_f){
if(_8){
_8(_f);
}
_e.close();
_e.callBack=null;
};
_e.show();
_e.center();
return _e;
};
window.radprompt=function(_10,_11,_12,_13,_14,_15,_16){
var _17=GetRadWindowManager();
var _18=_17._getStandardPopup("prompt",_10,_16);
if(typeof (_15)!="undefined"){
_18.set_title(_15);
}
_18.setSize(_12?_12:280,_13?_13:200);
_18.callBack=function(_19){
if(_11){
_11(_19);
}
_18.close();
_18.callBack=null;
};
_18.show();
_18.center();
return _18;
};
window.radopen=function(url,_1b){
var _1c=GetRadWindowManager();
return _1c.open(url,_1b);
};
Telerik.Web.UI.RadWindowManager=function(_1d){
Telerik.Web.UI.RadWindowManager.initializeBase(this,[_1d]);
this._windowIDs=[];
this._windows=[];
this._preserveClientState=false;
this.Open=this.open;
this.GetWindowByName=this.getWindowByName;
this.GetWindowById=this.getWindowById;
this.GetActiveWindow=this.getActiveWindow;
this.GetWindowObjects=this.get_windows;
this.GetWindows=this.get_windows;
this.Cascade=this.cascade;
this.Tile=this.tile;
this.RestoreAll=this.restoreAll;
this.MaximizeAll=this.maximizeAll;
this.MinimizeAll=this.minimizeAll;
this.ShowAll=this.showAll;
this.CloseAll=this.closeAll;
this.CloseActiveWindow=this.closeActiveWindow;
this.MinimizeActiveWindow=this.minimizeActiveWindow;
this.RestoreActiveWindow=this.restoreActiveWindow;
};
Telerik.Web.UI.RadWindowManager.prototype={get_zIndex:function(){
return Telerik.Web.UI.RadWindowUtils._zIndex;
},set_zIndex:function(_1e){
var _1f=parseInt(_1e);
if(isNaN(_1e)){
return;
}
Telerik.Web.UI.RadWindowUtils._zIndex=_1e;
},initialize:function(_20){
try{
var _21=this.get_element().style.zIndex;
if(_21){
this.set_zIndex(_21);
}
}
catch(e){
}
this._initialize();
this._registerAsPageManager();
if(this.get_preserveClientState()){
this.restoreState();
}
},dispose:function(){
var _22=this.get_preserveClientState();
if(_22){
this.saveState();
}
this._disposeWindows();
this._windows=null;
Telerik.Web.UI.RadWindowManager.callBaseMethod(this,"dispose");
},open:function(url,_24){
var _25=this.getWindowByName(_24);
if(!_25){
if(!_24){
_24=this.get_id()+this._getUniqueId();
}
_25=this._createWindow(_24);
}
if(url){
_25.setUrl(url);
}
_25.show();
return _25;
},getActiveWindow:function(){
return Telerik.Web.UI.RadWindowController.get_activeWindow();
},getWindowById:function(id){
var _27=this.get_windows();
for(var i=0;i<_27.length;i++){
var _29=_27[i];
if(id==_29.get_id()){
return _29;
}
}
return null;
},getWindowByName:function(_2a){
var _2b=this.get_windows();
if(!_2b){
return null;
}
for(var i=0;i<_2b.length;i++){
var _2d=_2b[i];
if(_2a==_2d.get_name()){
return _2d;
}
}
return null;
},removeWindow:function(_2e){
if(!_2e){
return;
}
var w=this.getWindowByName(_2e.get_name());
var _30=this.get_windows();
if(w){
Array.remove(_30,w);
}
},_getUniqueId:function(){
return ""+(new Date()-100);
},_initialize:function(){
var _31=this._windowIDs;
for(var i=0;i<_31.length;i++){
var _33=_31[i];
var _34=$find(_33);
if(!_34){
continue;
}
_34.set_windowManager(this);
this._windows[this._windows.length]=_34;
}
},_disposeWindows:function(){
for(var i=0;i<this._windows.length;i++){
var t=this._windows[i];
if(t.isCloned()){
t.dispose();
}
}
this._windows=[];
},_createWindow:function(_37,_38){
var wnd=this.clone(_37,_38);
this._windows[this._windows.length]=wnd;
wnd.set_windowManager(this);
return wnd;
},_replaceLocalization:function(_3a,_3b){
var _3c=/##LOC\[(.*?)\]##/;
while(_3a.match(_3c)){
var _3d=_3b[RegExp.$1]?_3b[RegExp.$1]:"";
_3a=_3a.replace(_3c,_3d);
}
return _3a;
},_getStandardPopup:function(_3e,_3f,_40){
var _41=this._createWindow(_3e+this._getUniqueId(),false);
_41.set_destroyOnClose(true);
_41.set_modal(true);
var div=document.getElementById(this.get_id()+"_"+_3e.toLowerCase()+"template");
var _43=this._stringFormat(div.innerHTML,_41.get_id(),_3f,_40?_40:"");
_43=this._replaceLocalization(_43,Telerik.Web.UI.RadWindowUtils.Localization);
var _44=document.createElement("DIV");
_44.innerHTML=_43;
_41.set_behaviors(Telerik.Web.UI.WindowBehaviors.Close);
_41.set_visibleStatusbar(false);
_41.set_contentElement(_44);
return _41;
},_stringFormat:function(_45){
for(var i=1;i<arguments.length;i++){
_45=_45.replace(new RegExp("\\{"+(i-1)+"\\}","ig"),arguments[i]);
}
return _45;
},_registerAsPageManager:function(){
var _47=Telerik.Web.UI.WindowManager.Manager;
var _48=this.get_id();
if(_47&&_47.get_id()==_48){
_47.dispose();
Telerik.Web.UI.WindowManager.Manager=null;
}
if(!Telerik.Web.UI.WindowManager.Manager){
Telerik.Web.UI.WindowManager.Manager=this;
}
},saveWindowState:function(_49){
if(!_49||!_49.isCreated()){
return;
}
var _4a=_49.getWindowBounds();
var _4b=(_49.isVisible()||_49.isMinimized())+"@"+_4a.width+"@"+_4a.height+"@"+_4a.x+"@"+_4a.y+"@"+_49.isMinimized();
this._setRadWindowCookie(_49.get_id(),_4b);
},saveState:function(){
var _4c=this.get_windows();
for(i=0;i<_4c.length;i++){
var _4d=_4c[i];
if(_4d.isCloned()){
this.saveWindowState(_4d);
}
}
},restoreState:function(){
function restoreWindow(_4e,_4f){
var _50=_4f.split("@");
if(_50.length>1){
if("true"==_50[0]&&!_4e.isVisible()){
_4e.show();
}
window.setTimeout(function(){
if(parseInt(_50[1])>0){
_4e.set_width(_50[1]);
}
if(parseInt(_50[2])>0){
_4e.set_height(_50[2]);
}
if("true"==_50[0]){
_4e.moveTo(parseInt(_50[3]),parseInt(_50[4]));
}
if("true"==_50[5]){
_4e.minimize();
}
},1);
}
}
var _51=this.get_windows();
for(i=0;i<_51.length;i++){
var _52=_51[i];
var _53=this._getRadWindowCookie(_52.get_id());
if(_53){
restoreWindow(_52,_53);
}
}
},_getOnlyCookie:function(){
var _54="RadWindowCookie";
var _55=document.cookie.split("; ");
for(var i=0;i<_55.length;i++){
var _57=_55[i].split("=");
if(_54==_57[0]){
return _57[1];
}
}
return null;
},_setRadWindowCookie:function(_58,_59){
_58="["+_58+"]";
var _5a=this._getOnlyCookie();
var _5b="";
var _5c="";
if(_5a){
var _5d=_5a.split(_58);
if(_5d&&_5d.length>1){
_5b=_5d[0];
_5c=_5d[1].substr(_5d[1].indexOf("#")+1);
}else{
_5c=_5a;
}
}
var _5e=new Date();
_5e.setFullYear(_5e.getFullYear()+10);
document.cookie="RadWindowCookie"+"="+(_5b+_58+"-"+_59+"#"+_5c)+";path=/;expires="+_5e.toUTCString()+";";
},_getRadWindowCookie:function(_5f){
var _60=this._getOnlyCookie();
if(!_60){
return;
}
var _61=null;
_5f="["+_5f+"]";
var _62=_60.indexOf(_5f);
if(_62>=0){
var _63=_62+_5f.length+1;
_61=_60.substring(_63,_60.indexOf("#",_63));
}
return _61;
},cascade:function(){
var _64=40;
var _65=40;
var _66=this._getWindowsSortedByZindex();
for(var i=0;i<_66.length;i++){
var _68=_66[i];
if(!_68.isClosed()&&_68.isVisible()){
var _69=_68.restore();
_68.moveTo(_64,_65);
_68.setActive(true);
_64+=25;
_65+=25;
}
}
},tile:function(){
var _6a=this._getWindowsSortedByZindex();
var _6b=0;
for(var i=0;i<_6a.length;i++){
var _6d=_6a[i];
if(!_6d.isClosed()&&_6d.isVisible()){
_6b++;
}
}
var _6e=5;
var _6f=0;
var _70=1;
if(_6b<=_6e){
_6f=_6b;
}else{
var i=2;
while((_6b*i)<(_6e*(i+1))){
i++;
if(i>6){
break;
}
}
_70=i;
_6f=Math.ceil(_6b/_70);
}
var _71=$telerik.getClientBounds();
var _72=Math.floor(_71.width/_6f);
var _73=Math.floor(_71.height/_70);
var _74=document.documentElement.scrollLeft||document.body.scrollLeft;
var top=document.documentElement.scrollTop||document.body.scrollTop;
var _76=0;
for(var i=0;i<_6a.length;i++){
var _6d=_6a[i];
if(!_6d.isClosed()&&_6d.isVisible()){
_76++;
if((_76-1)%(_6f)==0&&_76>_6f){
top+=_73;
_74=document.documentElement.scrollLeft||document.body.scrollLeft;
}
_6d.restore();
_6d.moveTo(_74,top);
_6d.setSize(_72,_73);
_74+=_72;
}
}
},closeActiveWindow:function(){
this._executeActiveWindow("close");
},minimizeActiveWindow:function(){
this._executeActiveWindow("minimize");
},restoreActiveWindow:function(){
this._executeActiveWindow("restore");
},closeAll:function(){
this._executeAll("close");
},showAll:function(){
this._executeAll("show");
},minimizeAll:function(){
this._executeAll("minimize");
},maximizeAll:function(){
this._executeAll("maximize");
},restoreAll:function(){
this._executeAll("restore");
},_getWindowsSortedByZindex:function(){
var _77=this._windows.concat([]);
var _78=function(_79,_7a){
var z1=_79.get_zindex();
var z2=_7a.get_zindex();
if(z1==z2){
return 0;
}
return (z1<z2?-1:1);
};
return _77.sort(_78);
},_executeAll:function(_7d){
if(!this._windows){
return;
}
var _7e=this._windows.concat([]);
for(var i=0;i<_7e.length;i++){
_7e[i][_7d]();
}
},_executeActiveWindow:function(_80){
var _81=this.getActiveWindow();
if(_81&&"function"==typeof (_81[_80])){
_81[_80]();
}
},get_preserveClientState:function(){
return this._preserveClientState;
},set_preserveClientState:function(_82){
if(this._preserveClientState!=_82){
this._preserveClientState=_82;
}
},set_windowControls:function(_83){
this._windowIDs=eval(_83);
this._disposeWindows();
},get_windowControls:function(){
},get_windows:function(){
return this._windows;
}};
Telerik.Web.UI.RadWindowManager.registerClass("Telerik.Web.UI.RadWindowManager",Telerik.Web.UI.RadWindow);


/* END Telerik.Web.UI.Window.RadWindowManager.js */
/* START Telerik.Web.UI.ToolTip.RadToolTip.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadToolTipControllerClass=function(){
this._tooltipToShow=null;
this._activeToolTip=null;
this._registerGlobalBodyEventHandlers();
};
Telerik.Web.UI.RadToolTipControllerClass.prototype={_registerGlobalBodyEventHandlers:function(){
var _1=Function.createDelegate(this,function(e){
if(e.keyCode==27){
if(this._activeToolTip&&!this._activeToolTip.isModal()){
this._hideCurrentToolTipUnconditionally();
}
}
});
$addHandler(document.body,"keydown",_1);
var _3=Function.createDelegate(this,function(e){
this._hideOnBodyClick(e);
});
$addHandler(document.body,"click",_3);
Sys.Application.add_unload(function(){
$removeHandler(document.body,"keydown",_1);
$removeHandler(document.body,"click",_3);
});
},_hideOnBodyClick:function(e){
var _6=true;
if(this._activeToolTip!=null){
var _7=this._activeToolTip;
if(_7._isMouseOverElement(e,_7._tableElement)){
return;
}
_6=this._activeToolTip.hide(true);
}
if(_6){
this._activeToolTip=null;
}
},_cancelLastShowRequest:function(){
if(this._tooltipToShow){
var _8=this._tooltipToShow;
this._tooltipToShow=null;
_8.cancelShowDelay();
}
},_hideCurrentToolTipUnconditionally:function(){
this._cancelLastShowRequest();
if(this._activeToolTip!=null){
this._activeToolTip.hide();
}
this._activeToolTip=null;
},requestShow:function(_9){
this._cancelLastShowRequest();
this._tooltipToShow=_9;
},cancelSpecificShowRequest:function(_a){
if(this._tooltipToShow==_a){
this._cancelLastShowRequest();
}
},showTooltip:function(_b){
if(!_b||_b.isVisible()){
return;
}
this._cancelLastShowRequest();
this.set_activeToolTip(_b);
_b.show();
},notifyToolTipClosed:function(_c){
if(this._activeToolTip==_c){
this._activeToolTip=null;
}
},set_activeToolTip:function(_d){
if(_d!=this._activeToolTip){
this._hideCurrentToolTipUnconditionally();
}
this._activeToolTip=_d;
},get_activeToolTip:function(){
return this._activeToolTip;
},getInstance:function(){
return this;
}};
Telerik.Web.UI.RadToolTipControllerClass.registerClass("Telerik.Web.UI.RadToolTipControllerClass",null);
if(!Telerik.Web.UI.RadToolTipController){
Telerik.Web.UI.RadToolTipController=new Telerik.Web.UI.RadToolTipControllerClass();
}
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadToolTip=function(_e){
Telerik.Web.UI.RadToolTip.initializeBase(this,[_e]);
this._offsetX=0;
this._offsetY=6;
this._position=Telerik.Web.UI.ToolTipPosition.BottomCenter;
this._horizontalPosition=null;
this._verticalPosition=null;
this._targetControlID=null;
this._serverTargetControlID=null;
this._serverValue="";
this._formID=null;
this._targetControl=null;
this._popupElement=null;
this._tableElement=null;
this._contentCell=null;
this._titleElement=null;
this._contentElement=null;
this._calloutElement=null;
this._closeLink=null;
this._popupBehavior=null;
this._popupVisible=false;
this._modal=false;
this._onModalShowHandler=null;
this._onModalCloseHandler=null;
this._skin="Default";
this._title="";
this._text="";
this._width="";
this._height="";
this._relativeTo=Telerik.Web.UI.ToolTipRelativeDisplay.Mouse;
this._contentScrolling=Telerik.Web.UI.ToolTipScrolling.Auto;
this._showEvent=Telerik.Web.UI.ToolTipShowEvent.OnMouseOver;
this._visibleOnPageLoad=false;
this._sticky=false;
this._manualClose=false;
this._mouseTrailing=false;
this._showCallout=true;
this._showDelayRef=null;
this._autoCloseRef=null;
this._showDelay=300;
this._autoCloseDelay=2000;
this._hideDelay=100;
this._animation=Telerik.Web.UI.ToolTipAnimation.None;
this._tooltipAnimation=null;
this._zIndex=8000;
};
Telerik.Web.UI.RadToolTip.getCurrent=function(){
var _f=Telerik.Web.UI.RadToolTipController.getInstance();
if(!_f){
return null;
}
return _f.get_activeToolTip();
};
Telerik.Web.UI.RadToolTip.prototype={get_zIndex:function(){
return this._zIndex;
},set_zIndex:function(_10){
var _11=parseInt(_10);
if(isNaN(_10)){
return;
}
if(this._zIndex!=_10){
this._zIndex=_10;
}
},initialize:function(){
Telerik.Web.UI.RadToolTip.callBaseMethod(this,"initialize");
this.set_position(this._position);
if(this._visibleOnPageLoad){
this.show();
}
},dispose:function(){
if(this._tooltipAnimation){
this._tooltipAnimation.dispose();
}
if(this._popupBehavior){
this._popupBehavior.dispose();
this._popupBehavior=null;
}
this._registerPopupHandlers(false);
this._registerMouseHandlers(this._targetControl,false);
this._makeModal(false);
if(this._closeLinkHandler&&this._closeLink){
$removeHandler(this._closeLink,"click",this._closeLinkHandler);
this._closeLinkHandler=null;
}
if(this._popupElement){
var _12=this.get_id();
if(_12){
var _13=$get(_12);
if(_13){
_13.appendChild(this._popupElement);
}
}
}
Telerik.Web.UI.RadToolTip.callBaseMethod(this,"dispose");
},isCreated:function(){
return this._popupElement!=null;
},requestShow:function(){
this._resetShowDelay();
},hide:function(_14){
if(true==_14&&this._manualClose){
return false;
}
this._hide();
return true;
},clone:function(_15,_16){
if(!_15){
alert("clone error: No target element specified");
return;
}
var evs=this._getEventsParameter();
var _18=this._getPropertiesParameter();
_18["targetControlID"]=_15.getAttribute("id");
if(!_18["targetControlID"]){
_18["targetControl"]=_15;
}
var _19=document.createElement("SPAN");
if(_16){
_19.setAttribute("id",_16);
}
var _1a=$create(Telerik.Web.UI.RadToolTip,_18,evs,null,_19);
return _1a;
},show:function(){
this._createUI();
var _1b=new Sys.CancelEventArgs();
this.raiseEvent("beforeShow",_1b);
if(_1b.get_cancel()){
return;
}
if($telerik.isIE6){
var _1c=this;
window.setTimeout(function(){
_1c._registerPopupHandlers(true);
},200);
}else{
this._registerPopupHandlers(true);
}
this._getToolTipController().set_activeToolTip(this);
this._popupBehavior.pin(false);
window.setTimeout(Function.createDelegate(this,function(){
if(this._animation==Telerik.Web.UI.ToolTipAnimation.None){
this._show();
this._afterShow();
}else{
this._playAnimation();
}
}),0);
},showLoadingMessage:function(_1d){
if(_1d){
var div=document.createElement("DIV");
div.className=this._getFullSkinName()+" LoadingSign";
this._contentCell.appendChild(div);
}else{
this._contentCell.innerHTML="";
}
},isModal:function(){
return this._modal;
},set_contentElement:function(_1f){
this._contentCell.innerHTML="";
if(_1f.parentNode&&_1f.parentNode.removeChild){
_1f.parentNode.removeChild(_1f);
}
this._contentCell.appendChild(_1f);
_1f.style.display="";
this._contentElement=_1f;
},get_contentElement:function(){
return this._contentElement;
},set_content:function(_20){
var _21=document.createElement("DIV");
_21.innerHTML=_20;
this._text=_20;
if(this.isCreated()){
this.set_contentElement(_21);
}
},get_content:function(){
return this._contentElement?this._contentElement.innerHTML:"";
},cancelAutoCloseDelay:function(){
if(this._autoCloseRef){
window.clearTimeout(this._autoCloseRef);
this._autoCloseRef=0;
}
},cancelShowDelay:function(){
if(this._showDelayRef){
window.clearTimeout(this._showDelayRef);
this._showDelayRef=null;
}
this._getToolTipController().cancelSpecificShowRequest(this);
},_getToolTipController:function(){
return Telerik.Web.UI.RadToolTipController.getInstance();
},_resetAutoCloseDelay:function(){
this.cancelAutoCloseDelay();
if(this._manualClose||this._sticky){
return;
}
if(this._autoCloseDelay){
var _22=this;
this._autoCloseRef=window.setTimeout(function(){
_22.hide(true);
},this._autoCloseDelay);
}
},_resetShowDelay:function(){
this.cancelShowDelay();
var _23=this;
var _24=function(){
_23._getToolTipController().showTooltip(_23);
_23.cancelShowDelay();
};
this._showDelayRef=window.setTimeout(_24,this._showDelay);
},_show:function(){
var _25=null;
try{
_25=this.getToolTipBounds();
}
catch(e){
var _26=this;
window.setTimeout(function(){
_26._addToolTipToDocument();
},10);
return;
}
this._setPopupVisible(_25.x,_25.y);
this._resetAutoCloseDelay();
this._popupVisible=true;
},_afterShow:function(){
this._popupBehavior.pin(this._isRelativeToBrowserWindow());
this.raiseEvent("show");
},_hide:function(){
if(this._tooltipAnimation){
this._tooltipAnimation.stop();
}
this.cancelShowDelay();
this.cancelAutoCloseDelay();
var _27=new Sys.CancelEventArgs();
this.raiseEvent("beforeHide",_27);
if(_27.get_cancel()){
return;
}
if(this._tooltipAnimation){
this._tooltipAnimation.play(true);
}else{
this._afterHide();
}
},_afterHide:function(){
try{
if(this._popupBehavior){
this._popupBehavior.hide(true);
this._popupBehavior.pin(false);
}
}
catch(ex){
}
this._popupVisible=false;
this._getToolTipController().notifyToolTipClosed(this);
this.raiseEvent("hide");
this._registerPopupHandlers(false);
},_isRelativeToBrowserWindow:function(){
if(!this._targetControl||this._relativeTo==Telerik.Web.UI.ToolTipRelativeDisplay.BrowserWindow){
return true;
}
return false;
},_playAnimation:function(){
var _28=function(){
var _29=this.controller;
var _2a=_29.getToolTipBounds();
_29._setPopupVisible(_2a.x,_2a.y);
var _2b=$telerik.getBounds(_29._popupElement);
_29._popupBehavior.hide();
this.set_endBounds(_2b);
};
if(!this._tooltipAnimation){
var pos=this._position;
var vp=this._verticalPosition;
var _2e=this._isRelativeToBrowserWindow();
if(_2e&&this._verticalPosition!=2){
vp=(this._verticalPosition==1?3:1);
pos=parseInt(vp+""+this._horizontalPosition);
}
var _2f=_2e?document.documentElement:this._targetControl;
if(this._animation==Telerik.Web.UI.ToolTipAnimation.Fade){
this._tooltipAnimation=new Telerik.Web.UI.Animations.FadeAnimation(this,null,null,this._popupElement,this._position,_2f);
this._tooltipAnimation.onShowStart=function(){
this.controller._show();
};
}else{
if(this._animation==Telerik.Web.UI.ToolTipAnimation.FlyIn){
this._tooltipAnimation=new Telerik.Web.UI.Animations.FlyInAnimation(this,null,null,this._popupElement,this._position,_2f);
this._tooltipAnimation.onShowStart=_28;
}else{
if(this._animation==Telerik.Web.UI.ToolTipAnimation.Slide){
this._tooltipAnimation=new Telerik.Web.UI.Animations.SlideAnimation(this,null,null,this._popupElement,pos,_2f);
this._tooltipAnimation.onShowStart=_28;
}else{
if(this._animation==Telerik.Web.UI.ToolTipAnimation.Resize){
if(_2e&&this._horizontalPosition!=2){
var hp=(this._horizontalPosition==1?3:1);
pos=parseInt(vp+""+hp);
}
this._tooltipAnimation=new Telerik.Web.UI.Animations.ResizeAnimation(this,0.2,50,this._popupElement,pos,_2f);
this._tooltipAnimation.onShowStart=_28;
}
}
}
}
}
if(this._tooltipAnimation){
if(this._isRelativeToBrowserWindow()){
this._documentOverflowX=document.documentElement.style.overflowX;
document.documentElement.style.overflowX="hidden";
}
this._tooltipAnimation.onShowEnd=function(){
this.controller._show();
if(null!=this.controller._documentOverflowX){
document.documentElement.style.overflowX=this.controller._documentOverflowX;
this.controller._documentOverflowX=null;
}
this.controller._afterShow();
};
this._tooltipAnimation.onHideEnd=function(){
this.controller._afterHide();
};
this._tooltipAnimation.play();
}
},_makeModal:function(_31){
if(this._onModalShowHandler){
this.remove_show(this._onModalShowHandler);
this._onModalShowHandler=null;
}
if(this._onModalCloseHandler){
this.remove_hide(this._onModalCloseHandler);
this._onModalCloseHandler=null;
}
if(this._modalExtender){
this._modalExtender.dispose();
this._modalExtender=null;
}
if(!_31){
return;
}
this._onModalShowHandler=function(_32){
if(!_32._modalExtender){
_32._modalExtender=new Telerik.Web.UI.ModalExtender(_32._popupElement);
}
_32._modalExtender.show();
};
this.add_show(this._onModalShowHandler);
this._onModalCloseHandler=function(_33){
if(_33._modalExtender){
_33._modalExtender.hide();
}
};
this.add_hide(this._onModalCloseHandler);
},_isMouseOverElement:function(e,_35){
var _36=null;
try{
_36=$telerik.getBounds(_35);
}
catch(e){
return false;
}
if(e&&e.target){
var _37=e.target.tagName;
if(_37=="SELECT"||_37=="OPTION"){
return true;
}
if(e.clientX<0||e.clientY<0){
return true;
}
}
var _38=(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body;
var x=e.clientX+_38.scrollLeft;
var y=e.clientY+_38.scrollTop;
_36.x+=3;
_36.y+=2;
_36.width-=4;
_36.height-=4;
var _3b=$telerik.containsPoint(_36,x,y);
return _3b;
},_onMouseOver:function(e){
this._logMousePosition(e);
this._resetShowDelay();
this._getToolTipController().requestShow(this);
if(e){
}
},_onMouseMove:function(e){
this._logMousePosition(e);
this._resetAutoCloseDelay();
if(this._mouseTrailing&&this.isVisible()){
this._show();
}
},_onMouseOut:function(e){
var _3f=this._isMouseOverElement(e,this._targetControl);
if(!_3f){
this.cancelShowDelay();
if(!this._sticky){
if(this._hideDelay>0){
var _40=this;
window.setTimeout(function(){
_40.hide(true);
},this._hideDelay);
}else{
this.hide(true);
}
}
}
},_onClick:function(e){
this._onMouseOver(e);
e.returnValue=false;
e.cancelBubble=true;
return false;
},_onRightClick:function(e){
this._onMouseOver(e);
e.returnValue=false;
e.cancelBubble=true;
return false;
},_registerMouseHandlers:function(_43,_44){
if(true==_44){
var _45={};
var _46=Telerik.Web.UI.ToolTipShowEvent;
if(this._showEvent==_46.OnMouseOver){
this._onMouseOverDelegate=Function.createDelegate(this,this._onMouseOver);
this._onMouseMoveDelegate=Function.createDelegate(this,this._onMouseMove);
this._onMouseOutDelegate=Function.createDelegate(this,this._onMouseOut);
$addHandler(_43,"mouseover",this._onMouseOverDelegate);
$addHandler(_43,"mousemove",this._onMouseMoveDelegate);
$addHandler(_43,"mouseout",this._onMouseOutDelegate);
}
if(this._showEvent==_46.OnClick){
this._onClickDelegate=Function.createDelegate(this,this._onClick);
$addHandler(_43,"click",this._onClickDelegate);
}
if(this._showEvent==_46.OnRightClick){
this._onRightClickDelegate=Function.createDelegate(this,this._onRightClick);
$addHandler(_43,"contextmenu",this._onRightClickDelegate);
}
if(this._showEvent==_46.OnFocus){
this._onFocusDelegate=Function.createDelegate(this,this._onMouseOver);
this._onBlurDelegate=Function.createDelegate(this,this._onMouseOut);
$addHandler(_43,"focus",this._onFocusDelegate);
$addHandler(_43,"blur",this._onBlurDelegate);
}
}else{
if(_43){
var _47=[["mouseover",this._onMouseOverDelegate],["mousemove",this._onMouseMoveDelegate],["mouseout",this._onMouseOutDelegate],["click",this._onClickDelegate],["contextmenu",this._onRightClickDelegate],["focus",this._onFocusDelegate],["blur",this._onBlurDelegate]];
for(var i=0;i<_47.length;i++){
var _49=_47[i];
try{
if(null!=_49[1]){
$removeHandler(_43,_49[0],_49[1]);
}
}
catch(e){
}
}
this._onMouseOverDelegate=null;
this._onMouseMoveDelegate=null;
this._onMouseOutDelegate=null;
this._onClickDelegate=null;
this._onRightClickDelegate=null;
this._onFocusDelegate=null;
this._onBlurDelegate=null;
}
}
},_registerPopupHandlers:function(_4a){
if(true==_4a){
if(this._sticky||this._position==Telerik.Web.UI.ToolTipPosition.Center){
this._popupStickyHandler=Function.createDelegate(this,this._onPopupStickyMouseOut);
$addHandler(this._tableElement,"mouseout",this._popupStickyHandler);
this.set_sticky(true);
}
}else{
if(this._popupStickyHandler){
$removeHandler(this._tableElement,"mouseout",this._popupStickyHandler);
this._popupStickyHandler=null;
}
}
},_onPopupStickyMouseOut:function(e){
var _4c=this._isMouseOverElement(e,this._tableElement);
if(!_4c&&!this._manualClose){
this.hide();
}
},_getPropertiesParameter:function(){
if(!this._propertiesParameter){
var _4d={};
for(var _4e in Telerik.Web.UI.RadToolTip.prototype){
var _4f=this[_4e];
if(typeof (_4f)=="function"&&_4e.indexOf("get_")==0){
var _50=_4e.substring(4);
if(null==this["set_"+_50]){
continue;
}
var _51=_4f.call(this);
if(null==_51){
continue;
}
_4d[_50]=_51;
if(_50=="skin"){
break;
}
}
}
this._propertiesParameter=_4d;
}
var _52=this._cloneObject(this._propertiesParameter);
return _52;
},_getEventsParameter:function(){
if(!this._eventsParameter){
var _53={};
var _54=this.get_events();
var _55=["beforeShow","show","beforeHide","hide"];
for(var i=0;i<_55.length;i++){
var _57=_55[i];
var _58=_54.getHandler(_57);
if(_58&&typeof (eval(_58))=="function"){
_53[_57]=eval(_58);
}
}
this._eventsParameter=_53;
}
return this._eventsParameter;
},_cloneObject:function(_59){
var _5a={};
for(var _5b in _59){
_5a[_5b]=_59[_5b];
}
return _5a;
},_getPosRelativeToMouse:function(_5c){
var _5d=_5c.x;
var _5e=_5c.y;
var pos=this._getMousePosition();
var _60=pos.clientX;
var _61=pos.clientY;
if($telerik.standardsMode){
_5d-=document.documentElement.scrollLeft;
_5e-=document.documentElement.scrollTop;
}
var _62=_60-_5d;
var _63=_61-_5e;
return {x:_62,y:_63};
},_logMousePosition:function(e){
if(!e){
return;
}
this._mouseX=e.clientX;
this._mouseY=e.clientY;
},_getMousePosition:function(){
var obj={};
obj.clientX=this._mouseX;
obj.clientY=this._mouseY;
return obj;
},_getCalloutBounds:function(){
var _66={width:0,height:0,marginLeft:0,marginTop:0};
if(this._showCallout&&this._calloutElement){
_66.marginLeft=parseInt($telerik.getCurrentStyle(this._calloutElement,"marginLeft"));
_66.marginTop=parseInt($telerik.getCurrentStyle(this._calloutElement,"marginTop"));
if(isNaN(_66.marginLeft)){
_66.marginLeft=0;
}
if(isNaN(_66.marginLeft)){
_66.marginLeft=0;
}
var _67=$telerik.getBounds(this._calloutElement);
if(_67){
if(_67.width){
_66.width=_67.width;
}
if(_67.height){
_66.height=_67.height;
}
}
}
return _66;
},_getBoundsRelativeToBrowser:function(_68,_69,_6a){
var _6b=this._horizontalPosition;
var _6c=this._verticalPosition;
var x=0;
var y=0;
if(!_6a){
_6a=$telerik.getClientBounds();
}
var _6f=$telerik.getScrollOffset(document.compatMode&&document.compatMode!="BackCompat"?document.documentElement:document.body);
if("fixed"!=this._popupElement.style.position){
x+=_6f.x;
y+=_6f.y;
}
switch(_6b){
case 2:
x+=-parseInt(_68.width/2-_6a.width/2);
x+=this._offsetX;
break;
case 3:
x+=_6a.width;
x-=_68.width;
x-=this._offsetX;
break;
case 1:
default:
x+=-_68.width;
x+=(-_69.width-_69.marginLeft);
x+=this._offsetX;
break;
}
switch(_6c){
case 2:
y+=-parseInt((_68.height-_6a.height)/2);
break;
case 1:
y+=this._offsetY;
break;
case 3:
default:
y+=_6a.height;
y-=this._offsetY;
y-=_68.height;
break;
}
return new Sys.UI.Bounds(x,y,_68.width,_68.height);
},_getBoundsRelativeToElement:function(_70,_71,_72){
var _73=this._horizontalPosition;
var _74=this._verticalPosition;
var x=0;
var y=0;
if(!_72){
_72=$telerik.getBounds(this._targetControl);
}
switch(_73){
case 2:
x+=-parseInt(_70.width/2-_72.width/2);
x+=this._offsetX;
break;
case 3:
x+=_72.width;
x-=_71.marginLeft;
x+=this._offsetX;
break;
case 1:
default:
x+=-_70.width;
x+=(-_71.width-_71.marginLeft);
x-=this._offsetX;
break;
}
switch(_74){
case 2:
y+=-parseInt(_70.height/2-_72.height/2);
y+=this._offsetY;
break;
case 1:
y-=_70.height;
y-=_71.height+_71.marginTop;
y-=this._offsetY;
break;
case 3:
default:
y+=_72.height;
y-=_71.marginTop;
y+=this._offsetY;
break;
}
return new Sys.UI.Bounds(x,y,_70.width,_70.height);
},_getBoundsRelativeToMouse:function(_77,_78,_79){
var _79=this._targetControl?$telerik.getBounds(this._targetControl):$telerik.getClientBounds();
var pos=this._getPosRelativeToMouse(_79);
if(isNaN(pos.x)){
pos.x=0;
pos.y=0;
}else{
_79.width=0;
_79.height=0;
}
var _7b=this._getBoundsRelativeToElement(_77,_78,_79);
var _7c=new Sys.UI.Bounds(pos.x+_7b.x,pos.y+_7b.y,_77.width,_77.height);
return _7c;
},getToolTipBounds:function(){
var _7d=this._popupElement;
var _7e=(_7d.style.display=="none")?true:false;
_7d.style.left="-3000px";
_7d.style.top="-3000px";
_7d.style.display="";
this._setOverflow();
if(this._firstShow!=true){
this._fixIeHeight(this._tableElement,this._height);
this._firstShow=true;
}
var _7f=this._isRelativeToBrowserWindow()?document.documentElement:this._targetControl;
this._popupBehavior.set_parentElement(_7f);
var _80=$telerik.getBounds(_7d);
var _81=this._getCalloutBounds();
if(_7e){
this._popupElement.style.display="none";
}
var _82=Telerik.Web.UI.ToolTipRelativeDisplay;
var _83=Telerik.Web.UI.ToolTipShowEvent;
var _84=null;
if(this._relativeTo==_82.BrowserWindow){
_84=this._getBoundsRelativeToBrowser(_80,_81);
}else{
if(!this._targetControl&&this._showEvent==_83.FromCode){
_84=this._getBoundsRelativeToBrowser(_80,_81);
}else{
if(this._targetControl&&this._showEvent==_83.FromCode){
_84=this._getBoundsRelativeToElement(_80,_81);
}else{
if((this._mouseTrailing||this._relativeTo==_82.Mouse)){
_84=this._getBoundsRelativeToMouse(_80,_81);
}else{
if(this._relativeTo==_82.Element){
_84=this._getBoundsRelativeToElement(_80,_81);
}
}
}
}
}
return _84;
},_fixIeHeight:function(_85,_86){
if("CSS1Compat"==document.compatMode){
var _87=(_85.offsetHeight-parseInt(_86));
if(_87>0){
var _88=(parseInt(_85.style.height)-_87);
if(_88>0){
_85.style.height=_88+"px";
}
}
}
},_refreshTitle:function(){
if(null==this._titleElement){
return;
}
this._titleElement.innerHTML=this._title;
this._titleElement.style.display=(this._title)?"":"none";
},_createUI:function(){
if(!this._popupElement){
var _89=this.get_id();
var _8a="RadToolTipWrapper_"+_89;
var _8b=document.createElement("DIV");
_8b.id=_8a;
_8b.className=this._getFullSkinName()+(this.get_showCallout()?" visiblecallout":"");
_8b.setAttribute("unselectable","on");
this._popupElement=_8b;
var _8c=document.createElement("DIV");
_8c.className="ToolTipCallout "+this._getCalloutPosition(this._position);
_8c.innerHTML="&nbsp;";
this._calloutElement=_8c;
var _8d=document.createElement("TABLE");
_8d.className="ToolTipWrapper";
_8d.style.width=this._width;
_8d.style.height=this._height;
this._tableElement=_8d;
var _8e=["ToolTipTopLeft","ToolTipTopCenter","ToolTipTopRight","ToolTipLeftMiddle","ToolTipContent","ToolTipRightMiddle","ToolTipBottomLeft","ToolTipBottomCenter","ToolTipBottomRight"];
var _8f=0;
for(var i=1;i<=3;i++){
var _91=_8d.insertRow(-1);
for(var j=1;j<=3;j++){
var _93=_91.insertCell(-1);
_93.innerHTML="&nbsp;";
_93.className=_8e[_8f];
_8f++;
}
}
var _94=_8d.rows[0].cells[1];
_94.innerHTML="";
var _95=document.createElement("DIV");
_95.className="ToolTipTitlebar VisibleTitlebar";
_95.style.display="none";
this._titleElement=_95;
this._refreshTitle();
_94.appendChild(_95);
if(this._manualClose){
var _96=document.createElement("A");
_96.href="javascript: void(0);";
_96.className="CloseButton";
this._closeLinkHandler=Function.createDelegate(this,function(e){
this.hide();
if(e){
e.returnValue=false;
e.cancelBubble=true;
if(e.stopPropagation){
e.stopPropagation();
}
}
return false;
});
$addHandler(_96,"click",this._closeLinkHandler);
this._closeLink=_96;
var _98=document.createElement("SPAN");
_98.innerHTML="Close";
_96.title="Close";
_96.appendChild(_98);
_94.appendChild(_96);
}
var _99=_8d.rows[1].cells[1];
_99.vAlign="top";
_99.innerHTML="";
this._contentCell=_99;
var _9a=null;
var _9b=this._targetControl;
var _9c=this.get_text();
var _9a=null;
var _9d=this.get_text();
if(this._targetControl&&!_9d){
_9d=this._targetControl.getAttribute("title");
if(_9d){
this._targetControl.removeAttribute("title");
}
this._text=_9d;
}
if(this._text){
this.set_content(this._text);
}else{
var _9e=this.get_id();
if(_9e){
_9a=$get(_9e);
}
if(_9a&&_9a.innerHTML){
var _9f=this._transferNodeChildren(_9a);
this.set_contentElement(_9f);
}
}
_8b.appendChild(_8c);
_8b.appendChild(_8d);
this._popupElement.style.display="none";
this._popupElement.style.position="absolute";
this._addToolTipToDocument(_9a);
}
if(!this._popupBehavior){
this._popupBehavior=$create(Telerik.Web.PopupBehavior,{"id":(new Date()-100)+"PopupBehavior","parentElement":this._targetControl},null,null,this._popupElement);
}
},_transferNodeChildren:function(_a0){
if(!_a0){
return null;
}
var _a1=_a0.ownerDocument.createElement(_a0.tagName);
if(_a0.control){
_a1.control=_a0.control;
}
while(_a0.childNodes&&_a0.childNodes.length>0){
var _a2=_a0.childNodes[0];
_a0.removeChild(_a2);
_a1.appendChild(_a2);
}
return _a1;
},_addToolTipToDocument:function(_a3){
if(null!=_a3){
_a3.parentNode.replaceChild(this._popupElement,_a3);
return;
}
var _a4=document.getElementById(this._formID);
if(!_a4){
_a4=document.forms[0];
}
_a4.appendChild(this._popupElement);
},_getParentByTagName:function(_a5,_a6){
var _a7=_a5;
_a6=_a6.toUpperCase();
while(_a7.tagName.toUpperCase()!=_a6){
_a7=_a7.parentNode;
if(!_a7){
break;
}
}
return _a7;
},_getFullSkinName:function(){
return "radtooltip_"+this._skin;
},_getUniqueString:function(){
return ""+(new Date()-100);
},_getCalloutPosition:function(_a8){
with(Telerik.Web.UI.ToolTipPosition){
switch(_a8){
case TopLeft:
return "BottomRight";
case TopCenter:
return "BottomCenter";
case TopRight:
return "BottomLeft";
case MiddleLeft:
return "MiddleRight";
case Center:
return "Center";
case MiddleRight:
return "MiddleLeft";
case BottomLeft:
return "TopRight";
case BottomCenter:
return "TopCenter";
case BottomRight:
return "TopLeft";
}
}
return "";
},_getHorizontalSide:function(_a9){
return parseInt((_a9+"").charAt(1));
},_getVerticalSide:function(_aa){
return parseInt((_aa+"").charAt(0));
},_setPopupVisible:function(x,y){
this._popupBehavior.set_x(x);
this._popupBehavior.set_y(y);
this._popupBehavior.show();
if(!this.get_width()){
this._popupElement.style.width="";
}
this._popupElement.style.zIndex=this._zIndex;
},_setOverflow:function(){
var _ad=this._contentScrolling;
if(_ad==Telerik.Web.UI.ToolTipScrolling.Auto){
return;
}
var el=this._contentElement;
if(!el){
return;
}
var _af="";
with(Telerik.Web.UI.ToolTipScrolling){
switch(_ad){
case Auto:
_af="auto";
break;
case None:
_af="hidden";
break;
case X:
_af="";
el.style.overflowX="scroll";
break;
case Y:
_af="";
el.style.overflowY="scroll";
break;
case Both:
_af="scroll";
}
}
var _b0=el.parentNode;
el.style.display="none";
var _b1=$telerik.getBounds(_b0).height;
el.style.height=_b1+"px";
if(!el.style.overflowX&&!el.style.overflowY){
el.style.overflow=_af;
}
el.style.display="";
},_getLeftOffset:function(){
var _b2=Telerik.Web.UI.ToolTipPosition;
if(_b2.Left==this._position){
return (-1*this._targetControl.offsetWidth)+this._offsetX;
}else{
if(_b2.Right==this._position){
return this._targetControl.offsetWidth+this._offsetX;
}else{
return this._offsetX;
}
}
},_getTopOffset:function(){
var _b3;
var _b4=Telerik.Web.UI.ToolTipPosition;
if(_b4.Top==this._position){
_b3=(-1*this._targetControl.offsetHeight)+this._offsetY;
}else{
if(_b4.Bottom==this._position){
_b3=this._targetControl.offsetHeight+this._offsetY;
}else{
_b3=this._offsetY;
}
}
return _b3;
},isVisible:function(){
return this._popupVisible;
},get_targetControlID:function(){
return this._targetControlID;
},set_targetControlID:function(_b5){
if(this._targetControlID!=_b5){
this._targetControlID=_b5;
var _b6=(this._targetControlID?$get(this._targetControlID):null);
this.set_targetControl(_b6);
}
},get_targetControl:function(){
return this._targetControl;
},set_targetControl:function(_b7){
if(this._targetControl!=_b7){
if(this._targetControl&&(this._targetControl!=_b7)){
this._registerMouseHandlers(this._targetControl,false);
}
this._targetControl=_b7;
var _b8=this._targetControl;
if(_b8){
if($telerik.isIE&&_b8){
_b8.removeAttribute("alt");
}
this._registerMouseHandlers(_b8,true);
if(this._popupBehavior){
this._popupBehavior.set_parentElement(_b8);
}
}
}
},get_serverTargetControlID:function(){
return this._serverTargetControlID;
},set_serverTargetControlID:function(_b9){
this._serverTargetControlID=_b9;
},get_serverValue:function(){
return this._serverValue;
},set_serverValue:function(_ba){
this._serverValue=_ba;
},get_value:function(){
return this.get_serverValue();
},set_value:function(_bb){
this.set_serverValue(_bb);
},get_formID:function(){
return this._formID;
},set_formID:function(_bc){
if(this._formID!=_bc){
this._formID=_bc;
}
},get_position:function(){
return this._position;
},set_position:function(_bd){
if(this._position!=_bd){
this._position=_bd;
if(this._calloutElement){
this._calloutElement.className="ToolTipCallout "+this._getCalloutPosition(this._position);
}
}
this._horizontalPosition=this._getHorizontalSide(this._position);
this._verticalPosition=this._getVerticalSide(this._position);
},get_offsetX:function(){
return this._offsetX;
},set_offsetX:function(_be){
if(this._offsetX!=_be){
this._offsetX=_be;
}
},get_offsetY:function(){
return this._offsetY;
},set_offsetY:function(_bf){
if(this._offsetY!=_bf){
this._offsetY=_bf;
}
},get_title:function(){
return this._title;
},set_title:function(_c0){
if(this._title!=_c0){
this._title=_c0;
}
this._refreshTitle();
},get_text:function(){
return this._text;
},set_text:function(_c1){
if(this._text!=_c1){
this._text=_c1;
}
if(this.isCreated()){
this.set_content(this._text);
}
},get_width:function(){
return this._width;
},set_width:function(_c2){
if(this._width!=_c2){
this._width=_c2;
}
},get_height:function(){
return this._height;
},set_height:function(_c3){
if(this._height!=_c3){
this._height=_c3;
}
},get_relativeTo:function(){
return this._relativeTo;
},set_relativeTo:function(_c4){
if(this._relativeTo!=_c4){
this._relativeTo=_c4;
}
},get_contentScrolling:function(){
return this._contentScrolling;
},set_contentScrolling:function(_c5){
if(this._contentScrolling!=_c5){
this._contentScrolling=_c5;
}
},get_sticky:function(){
return this._sticky;
},set_sticky:function(_c6){
if(this._sticky!=_c6){
this._sticky=_c6;
}
},get_manualClose:function(){
return this._manualClose;
},set_manualClose:function(_c7){
if(this._manualClose!=_c7){
this._manualClose=_c7;
}
},get_showCallout:function(){
return this._showCallout;
},set_showCallout:function(_c8){
if(this._showCallout!=_c8){
this._showCallout=_c8;
}
},get_showDelay:function(){
return this._showDelay;
},set_showDelay:function(_c9){
if(this._showDelay!=_c9){
this._showDelay=_c9;
}
},get_autoCloseDelay:function(){
return this._autoCloseDelay;
},set_autoCloseDelay:function(_ca){
if(this._autoCloseDelay!=_ca){
this._autoCloseDelay=_ca;
}
},get_hideDelay:function(){
return this._hideDelay;
},set_hideDelay:function(_cb){
if(this._hideDelay!=_cb){
this._hideDelay=_cb;
}
},get_mouseTrailing:function(){
return this._mouseTrailing;
},set_mouseTrailing:function(_cc){
if(this._mouseTrailing!=_cc){
this._mouseTrailing=_cc;
if(true==_cc){
this.set_relativeTo(Telerik.Web.UI.ToolTipRelativeDisplay.Mouse);
}
}
},get_visibleOnPageLoad:function(){
return this._visibleOnPageLoad;
},set_visibleOnPageLoad:function(_cd){
if(this._visibleOnPageLoad!=_cd){
this._visibleOnPageLoad=_cd;
}
},get_animation:function(){
return this._animation;
},set_animation:function(_ce){
if(this._animation!=_ce){
this._animation=_ce;
}
},get_showEvent:function(){
return this._showEvent;
},set_showEvent:function(_cf){
if(this._showEvent!=_cf){
this._showEvent=_cf;
}
},get_skin:function(){
return this._skin;
},set_skin:function(_d0){
if(_d0&&this._skin!=_d0){
this._skin=_d0;
}
},get_popupElement:function(){
return this._popupElement;
},get_modal:function(){
return this._modal;
},set_modal:function(_d1){
if(this._modal!=_d1){
this._modal=_d1;
}
this._makeModal(this._modal);
},add_beforeShow:function(_d2){
this.get_events().addHandler("beforeShow",_d2);
},remove_beforeShow:function(_d3){
this.get_events().removeHandler("beforeShow",_d3);
},add_show:function(_d4){
this.get_events().addHandler("show",_d4);
},remove_show:function(_d5){
this.get_events().removeHandler("show",_d5);
},add_beforeHide:function(_d6){
this.get_events().addHandler("beforeHide",_d6);
},remove_beforeHide:function(_d7){
this.get_events().removeHandler("beforeHide",_d7);
},add_hide:function(_d8){
this.get_events().addHandler("hide",_d8);
},remove_hide:function(_d9){
this.get_events().removeHandler("hide",_d9);
},saveClientState:function(){
var _da=["text","position"];
var _db={};
for(var i=0;i<_da.length;i++){
_db[_da[i]]=this["get_"+_da[i]]();
}
return Sys.Serialization.JavaScriptSerializer.serialize(_db);
}};
Telerik.Web.UI.RadToolTip.registerClass("Telerik.Web.UI.RadToolTip",Telerik.Web.UI.RadWebControl);
Telerik.Web.UI.ToolTipPosition=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.ToolTipPosition.prototype={TopLeft:11,TopCenter:12,TopRight:13,MiddleLeft:21,Center:22,MiddleRight:23,BottomLeft:31,BottomCenter:32,BottomRight:33};
Telerik.Web.UI.ToolTipPosition.registerEnum("Telerik.Web.UI.ToolTipPosition",false);
Telerik.Web.UI.ToolTipRelativeDisplay=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.ToolTipRelativeDisplay.prototype={Mouse:0,Element:1,BrowserWindow:2};
Telerik.Web.UI.ToolTipRelativeDisplay.registerEnum("Telerik.Web.UI.ToolTipRelativeDisplay",false);
Telerik.Web.UI.ToolTipScrolling=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.ToolTipScrolling.prototype={Auto:0,None:1,X:2,Y:3,Both:4};
Telerik.Web.UI.ToolTipScrolling.registerEnum("Telerik.Web.UI.ToolTipScrolling",false);
Telerik.Web.UI.ToolTipAnimation=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.ToolTipAnimation.prototype={None:0,Resize:1,Fade:2,Slide:4,FlyIn:8};
Telerik.Web.UI.ToolTipAnimation.registerEnum("Telerik.Web.UI.ToolTipAnimation",false);
Telerik.Web.UI.ToolTipShowEvent=function(){
throw Error.invalidOperation();
};
Telerik.Web.UI.ToolTipShowEvent.prototype={OnMouseOver:1,OnClick:2,OnRightClick:4,OnFocus:8,FromCode:16};
Telerik.Web.UI.ToolTipShowEvent.registerEnum("Telerik.Web.UI.ToolTipShowEvent",false);


/* END Telerik.Web.UI.ToolTip.RadToolTip.js */
/* START Telerik.Web.UI.Dock.RadDockZone.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadDockZone=function(_1){
Telerik.Web.UI.RadDockZone.initializeBase(this,[_1]);
this._clientID=null;
this._highlightedCssClass=null;
this._fitDocks=true;
this._uniqueName=null;
this._layoutID=null;
};
Telerik.Web.UI.RadDockZone.prototype={dock:function(_2,_3){
var _4=this.get_docks();
var _5=null;
if(_4.length>_3){
_5=_4[_3].get_element();
}
this._dockBefore(_2,_5);
},get_docks:function(){
var _6=[];
var _7=this.get_element().firstChild;
while(_7!=null){
if(_7!=this._placeholder&&_7.id){
var _8=$find(_7.id);
if(_8&&Telerik.Web.UI.RadDock&&Telerik.Web.UI.RadDock.isInstanceOfType(_8)){
Array.add(_6,_8);
}
}
_7=_7.nextSibling;
}
return _6;
},_dockBefore:function(_9,_a){
var _b=_9.get_element();
var _c=this.get_element();
if(_a){
_c.insertBefore(_b,_a);
}else{
_c.insertBefore(_b,this._clearElement);
}
_9.set_dockZoneID(_c.id);
if(this.get_fitDocks()){
if(!this.get_isHorizontal()){
_9._fitWidth();
}
}else{
if(!this.get_isHorizontal()){
_9._unfitWidth();
}
}
_9._resetPosition();
if(_9._tableElement){
_9._setSize();
}
_9._setPinUnpinVisibility();
this._resetDockIndices();
},_resetDockIndices:function(){
var _d=this.get_docks();
for(var i=0;i<_d.length;i++){
_d[i].set_index(i);
_d[i].updateClientState();
}
},get_isHorizontal:function(){
return Sys.UI.DomElement.containsCssClass(this.get_element(),"rdHorizontal");
},_lastFoundItem:null,_lastFoundItemBounds:null,_findItemAt:function(_f,_10){
var el=this.get_element();
if(!(this._lastFoundItem&&this._isInside(_f,this._lastFoundItemBounds))){
this._lastFoundItem=null;
this._lastFoundItemBounds=null;
var _12=el.firstChild;
while(_12!=null){
if(_12!=this._placeholder&&_12!=_10&&_12.nodeType!=3&&_12.nodeType!=8){
var _13=this._getMarginBox(_10);
var _14=this._getBorderBox(_10);
var _15=$telerik.getBounds(_12);
var loc=$telerik.getLocation(_12);
_15.x=loc.x;
_15.y=loc.y;
_15.x-=(_13.left+_14.left+2);
_15.y-=(_13.top+_14.top+2);
_15.width+=(_13.right+_14.right+2);
_15.height+=(_13.bottom+_14.bottom+2);
if(this._isInside(_f,_15)){
this._lastFoundItem=_12;
this._lastFoundItemBounds=_15;
break;
}
}
_12=_12.nextSibling;
}
}
return this._lastFoundItem;
},_isInside:function(_17,_18){
return (_17.x>_18.x&&_17.x<(_18.x+_18.width)&&_17.y>_18.y&&_17.y<(_18.y+_18.height));
},_showPlaceholder:function(_19){
this._repositionPlaceholder(_19.get_element());
var _1a=_19._getBoundsWithBorderAndMargin();
var _1b=_19._getMarginBox(this._placeholder);
var _1c=_19._getBorderBox(this._placeholder);
var _1d=this.get_isHorizontal();
var _1e=this._placeholder.style;
_1e.height=_1a.height-(_1b.vertical+_1c.vertical)+"px";
_1e.width=this.get_fitDocks()&&!_1d?"100%":_1a.width-(_1b.horizontal+_1c.horizontal)+"px";
_1e.display="block";
},_getMarginBox:function(_1f){
return $telerik.getMarginBox(_1f);
},_getBorderBox:function(_20){
return $telerik.getBorderBox(_20);
},_hidePlaceholder:function(){
this._placeholder.style.display="none";
this._lastFoundItem=null;
this._lastFoundItemBounds=null;
},_repositionPlaceholder:function(_21){
var ddm=Telerik.Web.DragDropManager._getInstance();
var _23=ddm.getScrollOffset(_21,true);
var _24=new Sys.UI.Point(window._event.clientX,window._event.clientY);
_24=ddm.addPoints(_24,_23);
var _25=this._findItemAt(_24,_21);
var _26=this.get_element();
if(null==_25){
_26.insertBefore(this._placeholder,this._clearElement);
}else{
if(_25.previousSibling!=this._placeholder){
_26.insertBefore(this._placeholder,_25);
}
}
},get_dropTargetElement:function(){
return this.get_element();
},canDrop:function(_27,_28,_29){
return (Telerik.Web.UI.RadDock&&_28===Telerik.Web.UI.RadDock.DragDataType&&(_29.get_dockMode()&Telerik.Web.UI.DockMode.Docked)>0&&Array.indexOf(_29.get_forbiddenZones(),this.get_uniqueName())<0);
},drop:function(_2a,_2b,_2c){
var _2d=new Sys.CancelEventArgs();
_2c.raise_dockPositionChanging(_2d);
this._hidePlaceholder();
if(this.get_highlightedCssClass()!=null){
this.removeCssClass(this.get_highlightedCssClass());
}
if(_2d.get_cancel()){
_2c._restorePosition();
}else{
this._dockBefore(_2c,this._placeholder);
_2c.raise_dockPositionChanged(new Sys.EventArgs());
}
},onDragEnterTarget:function(_2e,_2f,_30){
this._showPlaceholder(_30);
if(this.get_highlightedCssClass()!=null){
this.addCssClass(this.get_highlightedCssClass());
}
},onDragLeaveTarget:function(_31,_32,_33){
this._hidePlaceholder();
if(this.get_highlightedCssClass()!=null){
this.removeCssClass(this.get_highlightedCssClass());
}
},onDragInTarget:function(_34,_35,_36){
this._repositionPlaceholder(_36.get_element());
},initialize:function(){
Telerik.Web.UI.RadDockZone.callBaseMethod(this,"initialize");
Telerik.Web.DragDropManager.registerDropTarget(this);
this._resetDockIndices();
this._placeholder=$get(this.get_clientID()+"_D");
this._clearElement=$get(this.get_clientID()+"_C");
},dispose:function(){
Telerik.Web.DragDropManager.unregisterDropTarget(this);
Telerik.Web.UI.RadDockZone.callBaseMethod(this,"dispose");
},get_clientID:function(){
return this._clientID;
},set_clientID:function(_37){
this._clientID=_37;
},get_fitDocks:function(){
return this._fitDocks;
},set_fitDocks:function(_38){
this._fitDocks=_38;
},get_highlightedCssClass:function(){
return this._highlightedCssClass;
},set_highlightedCssClass:function(_39){
this._highlightedCssClass=_39;
},get_layoutID:function(){
return this._layoutID;
},set_layoutID:function(_3a){
this._layoutID=_3a;
},get_uniqueName:function(){
return this._uniqueName;
},set_uniqueName:function(_3b){
this._uniqueName=_3b;
}};
Telerik.Web.UI.RadDockZone.registerClass("Telerik.Web.UI.RadDockZone",Telerik.Web.UI.RadWebControl,Telerik.Web.IDropTarget);


/* END Telerik.Web.UI.Dock.RadDockZone.js */
/* START Telerik.Web.UI.Dock.RadDock.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.DockMode=function(){
throw Error.notImplemented();
};
Telerik.Web.UI.DockMode.prototype={Floating:1,Docked:2,Default:3};
Telerik.Web.UI.DockMode.registerEnum("Telerik.Web.UI.DockMode");
Telerik.Web.UI.RadDock=function(_1){
Telerik.Web.UI.RadDock.initializeBase(this,[_1]);
this._initialized=false;
this._enableDrag=true;
this._top=0;
this._left=0;
this._autoPostBack=false;
this._dockZoneID=null;
this._title=null;
this._commands=null;
this._closed=false;
this._collapsed=false;
this._pinned=false;
this._index=0;
this._forbiddenZones=[];
this._layoutID=null;
this._handle=null;
this._dockMode=Telerik.Web.UI.DockMode.Default;
this._resizable=false;
this._width="300px";
this._height=null;
this._expandedHeight=0;
this._uniqueID=null;
this._uniqueName=null;
this._grip=null;
this._titleBar=null;
this._commandsContainer=null;
this._contentContainer=null;
this._handle=null;
this._form=null;
this._skin="Default";
this.set_handle=this.set_handle;
this._isCustomHandle=false;
};
Telerik.Web.UI.RadDock.DragDataType="RadDock";
Telerik.Web.UI.RadDock.prototype={_fixIeHeight:function(_2,_3){
if("CSS1Compat"==document.compatMode){
var _4=(_2.offsetHeight-parseInt(_3));
if(_4>0){
var _5=(parseInt(_2.style.height)-_4);
if(_5>0){
_2.style.height=_5+"px";
}
}
}
},_getTopElement:function(){
var _6=null;
var _7=this.get_titleBar();
if(_7){
_6=_7;
}else{
if(this._grip){
_6=this._grip;
}
}
return _6;
},_setResizeLimit:function(){
var _8=0;
var _9=this._getTopElement();
var _a=0;
if(_9){
var _b=$telerik.getBounds(_9);
_8+=_b.height;
}
var _c=this._calculateResizeHandlesSize();
var _d=this.get_element();
this._minHeight=_8+_c.horizontalHeight;
_d.style.minHeight=this._minHeight+"px";
this.get_innerDockElement().style.minHeight=_8+"px";
var _e=this.get_commandsContainer();
var _f=1+_c.verticalWidth;
var _10=_e?$telerik.getBounds(_e).width:0;
var _11=this.get_titleElement();
var _12=_11?$telerik.getMarginBox(_11).horizontal:0;
_f+=_10+_12;
this._minWidth=_f;
_d.style.minWidth=_f+"px";
},_calculateResizeHandlesSize:function(){
if(!this._tableElement){
return null;
}
var _13=this._tableElement.rows;
var _14={n:$telerik.getBounds(_13[0].cells[1]),w:$telerik.getBounds(_13[1].cells[0]),e:$telerik.getBounds(_13[1].cells[2]),s:$telerik.getBounds(_13[2].cells[1])};
var _15={horizontalHeight:_14.n.height+_14.s.height,verticalWidth:_14.w.width+_14.e.width};
return _15;
},_collapseWrapper:function(){
var _16=this._tableElement;
if(_16){
var _17=this.get_contentContainer();
var _18=$telerik.getBounds(_17);
var _19=parseInt(_16.style.height)-_18.height;
_16.style.height=(_19>0?_19:0)+"px";
}
},_removeWrapper:function(){
var _1a=this._tableElement;
if(_1a){
var _1b=this._calculateResizeHandlesSize();
var _1c=this.get_element();
var _1d=this.get_innerDockElement();
_1c.removeChild(_1a);
_1a=null;
_1c.appendChild(_1d);
_1d.style.width="100%";
_1d.style.height="100%";
this._fixTableLayoutSize(this._width,this._height);
}
},_updateSizeValues:function(){
var _1e=this._getBounds();
this._width=_1e.width;
this._height=_1e.height;
},_setWidthHtmlEl:function(_1f,_20){
if(!_20){
_20=this.get_element();
}
if(_1f.toString().indexOf("%")>-1){
_20.style.width=parseInt(_1f)+"%";
}else{
_20.style.width=parseInt(_1f)+"px";
}
},_setHeightHtmlEl:function(_21,_22){
if(!_22){
_22=this.get_element();
}
if(_21.toString().indexOf("%")>-1){
_22.style.height=parseInt(_21)+"%";
}else{
_22.style.height=parseInt(_21)+"px";
}
},_moveElements:function(_23,_24){
while(_23.childNodes&&_23.childNodes.length>0){
var _25=_23.childNodes[0];
_23.removeChild(_25);
_24.appendChild(_25);
}
},_configureHandles:function(_26){
if(!this._tableElement){
return;
}
var _27=["e","s","se"];
var _28=this._resizeExtender._resizeHandles;
for(var i=0;i<_27.length;i++){
var _2a=_27[i];
var _2b=_28[_2a];
if(_2b){
_2b.style.cursor=_26?_2a+"-resize":"";
}
}
},_getFullSkinName:function(){
return " raddock RadDock_"+this._skin+" rdVariableHeight";
},_createResizeWrapper:function(){
var _2c=document.createElement("TABLE");
_2c.id=this.get_id()+"Table";
_2c.className="rdWrapTable";
_2c.width="100%";
_2c.height="100%";
_2c.cellSpacing=0;
_2c.cellPadding=0;
this._tableElement=_2c;
var _2d=["rdTopLeft","rdTopCenter","rdTopRight","rdLeftMiddle","rdCenter","rdRightMiddle","rdBottomLeft","rdBottomCenter","rdBottomRight"];
var _2e=0;
for(var i=0;i<3;i++){
var row=_2c.insertRow(-1);
for(var j=0;j<3;j++){
var _32=row.insertCell(-1);
_32.innerHTML="&nbsp;";
_32.className=_2d[_2e];
_2e++;
}
}
return _2c;
},_fixEmWidth:function(){
if(!this.get_titleBar()){
return;
}
var _33=$telerik.getBounds(this.get_innerDockElement()).width;
var _34=this.get_commandsContainer();
var _35=_34?$telerik.getBounds(_34).width:0;
var _36=this.get_titleElement();
var _37=_33-_35-$telerik.getMarginBox(_36).horizontal;
var _38=_37>0?_37:0;
this._setWidthHtmlEl(_38,_36);
},_makeResizable:function(){
if(this._resizable){
var _39=this.get_element();
var _3a=this._createResizeWrapper();
var _3b=_3a.rows[1].cells[1];
_3b.innerHTML="";
this._moveElements(_39,_3b);
_39.appendChild(_3a);
if(this._resizeExtender){
this._resizeExtender.dispose();
}
var _3c=this._tableElement.rows;
var _3d={e:_3c[1].cells[2],s:_3c[2].cells[1],se:_3c[2].cells[2]};
this._resizeExtender=new Telerik.Web.UI.ResizeExtender(this,this.get_element(),_3d,this._tableElement);
this._setResizeLimit();
this._setSize();
if(this._collapsed||this._dockZoneID){
this._configureHandles(false);
}
}else{
this._removeWrapper();
}
},onResizeStart:function(){
if(this._collapsed||this._dockZoneID){
return;
}
this.get_contentContainer().style.display="none";
this.raise_resizeStart(new Sys.EventArgs());
},onResizing:function(e){
if(this._collapsed||this._dockZoneID){
return false;
}
},onResize:function(e){
var _40=this.get_innerDockElement();
_40.style.display="none";
var _41=$telerik.getBounds(_40.parentNode).width;
_40.style.display="";
this._setWidthHtmlEl(_41,_40);
this._fixEmWidth();
},onResizeEnd:function(){
if(this._collapsed||this._dockZoneID){
return;
}
var _42=this._getBounds();
var _43=_42.width;
var _44=_42.height;
if(_43<this._minWidth){
_43=this._minWidth;
}
if(_44<this._minHeight){
_44=this._minHeight;
}
this._setSize(_43,_44);
this._updateSizeValues();
this.updateClientState();
this.raise_resizeEnd(new Sys.EventArgs());
},getCommand:function(_45){
return this._commands?this._commands[_45]:null;
},get_handle:function(){
return this._handle;
},set_handle:function(_46){
this._isCustomHandle=true;
this._setHandle(_46);
},_setHandle:function(_47){
this._disposeDrag();
this._handle=_47;
this._initializeDrag();
},_repaintHelper:function(){
if(this.get_closed()){
return;
}
this._setContentContainerHeight();
this._setCommandsContainerWidth();
},getInvisibleParent:function(_48){
while(_48!=document){
if("none"==$telerik.getCurrentStyle(_48,"display","")){
return _48;
}
_48=_48.parentNode;
}
return null;
},initialize:function(){
Telerik.Web.UI.RadDock.callBaseMethod(this,"initialize");
this._initializeHtmlElementVariables();
this._initializeCommands();
this._updateToggleCommandsState();
this._setPinUnpinVisibility();
this._setHandle(this._titleBar||this._grip);
var _49=this.get_commandsContainer();
this._commandsContainerWidth=_49?$telerik.getBounds(_49).width:0;
var _4a=this.get_element();
var _4b=_4a.parentNode;
var _4c=this.getInvisibleParent(this.get_element());
isHidden=(_4c!=null);
if(isHidden){
var _4d={position:_4a.style.position,top:_4a.style.top,left:_4a.style.left};
_4a.parentNode.removeChild(_4a);
_4a.style.position="absolute";
_4a.style.top="-5000px";
_4a.style.left="-5000px";
document.body.appendChild(_4a);
}
this._makeResizable();
this._setContentContainerHeight();
if(isHidden){
_4a.style.position=_4d.position;
_4a.style.top=_4d.top;
_4a.style.left=_4d.left;
_4a.parentNode.removeChild(_4a);
_4b.appendChild(_4a);
}
this._intiailize=true;
this.updateClientState();
this.raise_initialize();
},dispose:function(){
this.get_element().RadShow=null;
this._disposeDrag();
Telerik.Web.UI.RadDock.callBaseMethod(this,"dispose");
},undock:function(){
var _4e=this.get_element();
this._form.appendChild(_4e);
var _4f=this._getLocation(_4e);
this.set_left(_4f.x);
this.set_top(_4f.y);
var _50=$find(this.get_dockZoneID());
if(_50){
this.set_dockZoneID("");
_50._resetDockIndices();
this._unfitWidth();
}
this._setPinUnpinVisibility();
this.updateClientState();
},_fitWidth:function(){
this.get_element().style.width="100%";
if(this._tableElement){
this.get_innerDockElement().style.width="100%";
this._tableElement.style.width="100%";
this._fixEmWidth();
}
},_unfitWidth:function(){
this.set_width(this.get_width());
if(this._tableElement){
this._fixEmWidth();
}
},_initializeHtmlElementVariables:function(){
this._grip=$get(this.get_id()+"_G");
this._titleBar=$get(this.get_id()+"_T");
if(this._titleBar){
var _51=this._titleBar.lastChild;
while(_51){
if(_51.className=="rdCommands"){
this._commandsContainer=_51;
break;
}
_51=_51.previousSibling;
}
}
var _52=this.get_element().parentNode;
while(_52){
if(_52.tagName.toLowerCase()==="form"){
this._form=_52;
break;
}
_52=_52.parentNode;
}
},_initializeCommands:function(){
if(!this._commandsContainer){
return;
}
var _53=this._commandsContainer.getElementsByTagName("a");
var _54=this._commands;
if(_54){
this._commands={};
for(var i=0;i<_54.length;i++){
var _56=_54[i];
var _57=eval(_56.clientTypeName);
if(_57==Telerik.Web.UI.DockCommand||_57.inheritsFrom(Telerik.Web.UI.DockCommand)){
_56.radDock=this;
var _58=null;
if(_56.command){
_58={"command":eval(_56.command)};
delete _56.command;
}
var cmd=$create(_57,_56,_58,null,_53[i]);
this._commands[cmd.get_name()]=cmd;
}else{
throw Error.invalidOperation(_56.clientTypeName+" does not inherit from Telerik.Web.UI.DockCommand.");
}
}
}
},_updateToggleCommandsState:function(){
var _5a=this.getCommand("ExpandCollapse");
if(_5a){
_5a.set_state(this.get_collapsed()?2:1);
}
var _5b=this.getCommand("PinUnpin");
if(_5b){
_5b.set_state(this.get_pinned()?2:1);
}
},_setPinUnpinVisibility:function(){
var _5c=this.getCommand("PinUnpin");
if(_5c){
_5c.get_element().style.display=this.get_dockZoneID()?"none":"inline";
}
this._setCommandsContainerWidth();
},_setCommandsContainerWidth:function(){
if(!this._commandsContainer){
return;
}
var _5d=this._commandsContainer.getElementsByTagName("a");
var _5e=0;
for(var i=0;i<_5d.length;i++){
var _60=this._getBoundsWithBorderAndMargin(_5d[i]);
_5e+=_60.width;
}
this._commandsContainer.style.width=_5e+"px";
},_getBoundsWithoutBorder:function(_61){
if(!_61){
_61=this.get_element();
}
var _62=this._getBounds(_61);
var _63=this._getBorderBox(_61);
var _64=_62.width-_63.horizontal;
var _65=_62.height-_63.vertical;
_62.width=_64>0?_64:0;
_62.height=_65>0?_65:0;
return _62;
},_getBoundsWithBorderAndMargin:function(_66){
if(!_66){
_66=this.get_element();
}
var _67=this._getBounds(_66);
var _68=this._getMarginBox(_66);
var _69=this._getBorderBox(_66);
_67.width+=(_68.horizontal+_69.horizontal);
_67.height+=(_68.vertical+_69.vertical);
return _67;
},_getBounds:function(_6a){
if(!_6a){
_6a=this.get_element();
}
return $telerik.getBounds(_6a);
},_getMarginBox:function(_6b){
if(!_6b){
_6b=this.get_element();
}
return $telerik.getMarginBox(_6b);
},_getBorderBox:function(_6c){
if(!_6c){
_6c=this.get_element();
}
return $telerik.getBorderBox(_6c);
},_resetPosition:function(){
var _6d=this.get_element();
_6d.style.top="";
_6d.style.left="";
_6d.originalPosition="relative";
_6d.style.position="relative";
_6d.style.zIndex=this.originalZIndex;
},_setContentContainerHeight:function(){
var _6e=this.get_contentContainer();
if(!Sys.UI.DomElement.containsCssClass(this.get_element(),"rdVariableHeight")||this._resizable){
var _6f=this._getBounds();
var _70=this.get_handle();
if(_70&&!this._isCustomHandle){
var _71=this._getBoundsWithBorderAndMargin(_70);
_6f.height-=_71.height;
}
var _72=this._tableElement?this._calculateResizeHandlesSize().horizontalHeight:2;
var _73=$telerik.getPaddingBox(_6e).vertical;
var _74=_6f.height-_72-_73;
_6e.style.height=(_74<0?0:_74)+"px";
}else{
_6e.style.height="";
}
},_initializeDrag:function(){
this._disposeDrag();
if(this._handle&&this.get_enableDrag()&&!this.get_pinned()){
$addHandlers(this._handle,{"mousedown":this._mouseDownHandler},this);
Sys.UI.DomElement.addCssClass(this._handle,"rdDraggable");
}
},_disposeDrag:function(){
if(this._handle){
$clearHandlers(this._handle);
Sys.UI.DomElement.removeCssClass(this._handle,"rdDraggable");
}
},_mouseDownHandler:function(e){
window._event=e;
var _76=(0>Array.indexOf(["input","button","select","textarea","label","a"],e.target.tagName.toLowerCase()));
if(_76&&this.get_enableDrag()&&!this.get_pinned()){
e.preventDefault();
this._startDragDrop();
}
},_startDragDrop:function(){
var _77=this.get_element();
this.originalZIndex=_77.style.zIndex;
var _78=this._getBounds(_77);
var _79=this._getBorderBox(_77);
_78.width-=_79.horizontal;
_78.height-=_79.vertical;
_77.style.width=_78.width+"px";
_77.style.zIndex="9999999";
var _7a=$telerik.getLocation(_77);
this._form.appendChild(_77);
var _7b=$find(this.get_dockZoneID());
if(_7b){
_7b._showPlaceholder(this);
}
this._setLocation(_7a);
Telerik.Web.DragDropManager.startDragDrop(this,_77,null);
},_restorePosition:function(){
var _7c=$find(this.get_dockZoneID());
if(_7c){
_7c.dock(this,this.get_index());
}else{
this.undock();
}
},_getLocation:function(_7d){
if(!_7d){
_7d=this.get_element();
}
return $telerik.getLocation(_7d);
},_setLocation:function(_7e){
$telerik.setLocation(this.get_element(),_7e);
},_setSize:function(_7f,_80){
var _81=this._getBoundsWithoutBorder();
if(!_7f){
_7f=_81.width;
}
if(!_80){
_80=_81.height;
}
this._setWidthHtmlEl(_7f);
this._setHeightHtmlEl(_80);
if(this._tableElement){
this._fixTableLayoutSize(_7f,_80);
}
},_fixTableLayoutSize:function(_82,_83){
var _84=this.get_contentContainer();
var _85=$telerik.getPaddingBox(_84).vertical;
var _86=this._getTopElement();
var _87=0;
var _88=0;
if(_86){
_87=$telerik.getBounds(_86);
}
var _89=this.get_innerDockElement();
_89.style.display="none";
var _8a=this._tableElement;
if(_8a){
this._setHeightHtmlEl(_83,_8a);
this._fixIeHeight(_8a,_83);
}
var _8b=$telerik.getBounds(_89.parentNode);
this._setWidthHtmlEl(_8b.width,_89);
var _8c=_8b.height-_87.height-_85;
_8c=_8c>0?_8c:0;
this._setHeightHtmlEl(_8c,_84);
if(_8c>0){
_84.style.display="";
}
_89.style.display="";
this._fixEmWidth();
if(this._collapsed){
_89.style.height="auto";
}
},get_contentContainer:function(){
if(!this._contentContainer){
this._contentContainer=$get(this.get_id()+"_C");
}
return this._contentContainer;
},get_titleBar:function(){
if(!this._titleBar){
this._titleBar=$get(this.get_id()+"_T");
}
return this._titleBar;
},get_commandsContainer:function(){
if(!this._commandsContainer){
var _8d=this.get_titleBar();
if(_8d){
this._commandsContainer=_8d.getElementsByTagName("span")[0];
}else{
this._commandsContainer=null;
}
}
return this._commandsContainer;
},get_titleElement:function(){
if(!this._titleElement){
var _8e=this.get_titleBar();
this._titleElement=_8e?_8e.getElementsByTagName("em")[0]:null;
}
return this._titleElement;
},get_innerDockElement:function(){
var _8f=this._tableElement;
if(_8f){
if(_8f.rows.length>1){
var _90=_8f.rows[1].cells[1];
if(_90){
return _90.getElementsByTagName("div")[0];
}
}
}
return this.get_element().getElementsByTagName("div")[0];
},saveClientState:function(){
var _91={Top:this.get_top(),Left:this.get_left(),DockZoneID:this.get_dockZoneID(),Collapsed:this.get_collapsed(),Pinned:this.get_pinned(),Resizable:this.get_resizable(),Closed:this.get_closed(),Width:this.get_width(),Height:this.get_height(),ExpandedHeight:this._expandedHeight,Index:this.get_index()};
return Sys.Serialization.JavaScriptSerializer.serialize(_91);
},conditionalPostback:function(_92){
if(this.get_autoPostBack()){
this.doPostBack(_92);
}
},doPostBack:function(_93){
__doPostBack(this.get_uniqueID(),_93);
},get_dragDataType:function(){
return Telerik.Web.UI.RadDock.DragDataType;
},getDragData:function(_94){
return this;
},get_dragMode:function(){
return Telerik.Web.DragMode.Move;
},onDragStart:function(){
this.get_contentContainer().style.overflow="hidden";
this.raise_dragStart(new Sys.EventArgs());
},onDrag:function(){
this.raise_drag(new Sys.EventArgs());
},onDragEnd:function(_95){
this.get_contentContainer().style.overflow="auto";
this.raise_dragEnd(new Sys.EventArgs());
if(_95){
this._restorePosition();
}
},add_command:function(_96){
this.get_events().addHandler("command",_96);
},remove_command:function(_97){
this.get_events().removeHandler("command",_97);
},raise_command:function(_98){
this.raiseEvent("command",_98);
},add_dragStart:function(_99){
this.get_events().addHandler("dragStart",_99);
},remove_dragStart:function(_9a){
this.get_events().removeHandler("dragStart",_9a);
},raise_dragStart:function(_9b){
this.raiseEvent("dragStart",_9b);
},add_drag:function(_9c){
this.get_events().addHandler("drag",_9c);
},remove_drag:function(_9d){
this.get_events().removeHandler("drag",_9d);
},raise_drag:function(_9e){
this.raiseEvent("drag",_9e);
},add_dragEnd:function(_9f){
this.get_events().addHandler("dragEnd",_9f);
},remove_dragEnd:function(_a0){
this.get_events().removeHandler("dragEnd",_a0);
},raise_dragEnd:function(_a1){
this.raiseEvent("dragEnd",_a1);
},add_dockPositionChanged:function(_a2){
this.get_events().addHandler("dockPositionChanged",_a2);
},remove_dockPositionChanged:function(_a3){
this.get_events().removeHandler("dockPositionChanged",_a3);
},raise_dockPositionChanged:function(_a4){
this.raiseEvent("dockPositionChanged",_a4);
this.conditionalPostback("dockPositionChanged");
},add_dockPositionChanging:function(_a5){
this.get_events().addHandler("dockPositionChanging",_a5);
},remove_dockPositionChanging:function(_a6){
this.get_events().removeHandler("dockPositionChanging",_a6);
},raise_dockPositionChanging:function(_a7){
this.raiseEvent("dockPositionChanging",_a7);
},add_initialize:function(_a8){
this.get_events().addHandler("initialize",_a8);
},remove_initialize:function(_a9){
this.get_events().removeHandler("initialize",_a9);
},raise_initialize:function(_aa){
this.raiseEvent("initialize",_aa);
},add_resizeStart:function(_ab){
this.get_events().addHandler("resizeStart",_ab);
},remove_resizeStart:function(_ac){
this.get_events().removeHandler("resizeStart",_ac);
},raise_resizeStart:function(_ad){
this.raiseEvent("resizeStart",_ad);
},add_resizeEnd:function(_ae){
this.get_events().addHandler("resizeEnd",_ae);
},remove_resizeEnd:function(_af){
this.get_events().removeHandler("resizeEnd",_af);
},raise_resizeEnd:function(_b0){
this.raiseEvent("resizeEnd",_b0);
},get_top:function(){
return this._top;
},set_top:function(_b1){
this._top=_b1;
},get_left:function(){
return this._left;
},set_left:function(_b2){
this._left=_b2;
},get_closed:function(){
return this._closed;
},set_closed:function(_b3){
this._closed=_b3;
var _b4=this.get_element();
_b4.style.display=_b3?"none":"block";
if(!_b3){
this._repaintHelper();
$telerik.repaintChildren(this);
}
},get_collapsed:function(){
return this._collapsed;
},set_collapsed:function(_b5){
this._collapsed=_b5;
this.get_element().style.height=_b5?"auto":this.get_height();
if(this._collapsed){
this._collapseWrapper();
if(this._height){
this._expandedHeight=parseInt(this._height);
}
this._configureHandles(false);
this.addCssClass("rdCollapsed");
}else{
this.removeCssClass("rdCollapsed");
if(this._resizable){
if(this._expandedHeight==0){
this.get_element().style.height="auto";
this._tableElement.style.height="100%";
this.get_contentContainer().style.height="auto";
}
if(!this._dockZoneID){
this._configureHandles(true);
}
this._setSize(null,this._expandedHeight);
this._height=this._expandedHeight;
}
if(this.get_height()==null){
this.addCssClass("rdVariableHeight");
}
}
this._setContentContainerHeight();
if(!this._collapsed){
$telerik.repaintChildren(this);
}
var _b6=this.getCommand("ExpandCollapse");
if(_b6){
_b6.set_state(_b5?2:1);
}
if(this._resizable){
this._height=$telerik.getBounds(this.get_element()).height+"px";
this.updateClientState();
}
},get_autoPostBack:function(){
return this._autoPostBack;
},set_autoPostBack:function(_b7){
this._autoPostBack=_b7;
},get_commands:function(){
return this._commands;
},set_commands:function(_b8){
this._commands=_b8;
},get_dockMode:function(){
return this._dockMode;
},set_dockMode:function(_b9){
this._dockMode=_b9;
},get_dockZoneID:function(){
return this._dockZoneID;
},set_dockZoneID:function(_ba){
if(_ba==""){
if(!this._collapsed){
this._configureHandles(true);
}
}else{
this._configureHandles(false);
}
this._dockZoneID=_ba;
},get_forbiddenZones:function(){
return this._forbiddenZones;
},set_forbiddenZones:function(_bb){
this._forbiddenZones=_bb;
},get_height:function(){
return this._height;
},set_height:function(_bc){
this._height=_bc;
if(this._intiailize){
this._setSize(null,_bc);
}
},get_index:function(){
return this._index;
},set_index:function(_bd){
this._index=_bd;
},get_layoutID:function(){
return this._layoutID;
},set_layoutID:function(_be){
this._layoutID=_be;
},get_enableDrag:function(){
return this._enableDrag;
},set_enableDrag:function(_bf){
this._enableDrag=_bf;
this._initializeDrag();
},get_pinned:function(){
return this._pinned;
},set_pinned:function(_c0){
this._pinned=_c0;
var _c1=this.getCommand("PinUnpin");
if(_c1){
_c1.set_state(_c0?2:1);
}
if($telerik.isIE6){
if(_c0){
this.set_enableDrag(false);
}else{
this.set_enableDrag(true);
}
return;
}
var ddm=Telerik.Web.DragDropManager._getInstance();
var _c3=this.get_element();
_c3.style.position="absolute";
var _c4=$telerik.getScrollOffset(_c3,true);
var _c5=this._getLocation(_c3);
if(_c0){
_c5=ddm.subtractPoints(_c5,_c4);
this._setLocation(_c5);
_c3.style.position="fixed";
this.set_enableDrag(false);
}else{
_c5=ddm.addPoints(_c5,_c4);
this._setLocation(_c5);
this.set_enableDrag(true);
}
},get_title:function(){
return this._title;
},set_title:function(_c6){
this._title=_c6;
},get_uniqueID:function(){
return this._uniqueID;
},set_uniqueID:function(_c7){
this._uniqueID=_c7;
},get_uniqueName:function(){
return this._uniqueName;
},set_uniqueName:function(_c8){
this._uniqueName=_c8;
},get_width:function(){
return this._width;
},set_width:function(_c9){
this._width=_c9;
if(this._initialized&&!this._dockZoneId){
this._setSize(_c9,null);
}
},get_skin:function(){
return this._skin;
},set_skin:function(_ca){
if(_ca&&this._skin!=_ca){
this._skin=_ca;
}
},get_resizable:function(){
return this._resizable;
},set_resizable:function(_cb){
this._resizable=_cb;
if(_cb){
this._makeResizable();
}else{
this._removeWrapper();
}
}};
Telerik.Web.UI.RadDock.registerClass("Telerik.Web.UI.RadDock",Telerik.Web.UI.RadWebControl,Telerik.Web.IDragSource);
Telerik.Web.UI.RadDock.prototype.repaint=function(){
this._repaintHelper();
};
Telerik.Web.UI.DockCommand=function(_cc){
Telerik.Web.UI.DockCommand.initializeBase(this,[_cc]);
this._clientTypeName=null;
this._cssClass="rdCustom";
this._radDock=null;
this._name="Custom";
this._text="Custom";
this._autoPostBack=false;
};
Telerik.Web.UI.DockCommand.prototype={add_command:function(_cd){
this.get_events().addHandler("command",_cd);
},remove_command:function(_ce){
this.get_events().removeHandler("command",_ce);
},raise_command:function(_cf){
var _d0=this.get_events().getHandler("command");
if(_d0){
_d0(this.get_radDock(),_cf);
}
},get_clientTypeName:function(){
return this._clientTypeName;
},set_clientTypeName:function(_d1){
this._clientTypeName=_d1;
},get_cssClass:function(){
return this._cssClass;
},set_cssClass:function(_d2){
this._cssClass=_d2;
},get_name:function(){
return this._name;
},set_name:function(_d3){
this._name=_d3;
},get_text:function(){
return this._text;
},set_text:function(_d4){
this._text=_d4;
},get_autoPostBack:function(){
return this._autoPostBack;
},set_autoPostBack:function(_d5){
this._autoPostBack=_d5;
},get_radDock:function(){
return this._radDock;
},set_radDock:function(_d6){
this._radDock=_d6;
},onCommand:function(e){
var _d8=new Sys.CancelEventArgs();
_d8.command=this;
_d8.Command=this;
this.raise_command(_d8);
if(_d8.get_cancel()){
return;
}
this.get_radDock().raise_command(_d8);
if(_d8.get_cancel()){
return;
}
this.get_radDock().updateClientState();
this.conditionalPostback();
},conditionalPostback:function(){
if(this.get_autoPostBack()){
this.get_radDock().doPostBack(this.get_name());
}
},initialize:function(){
Telerik.Web.UI.DockCommand.callBaseMethod(this,"initialize");
$addHandlers(this.get_element(),{"click":this.onCommand},this);
},dispose:function(){
$clearHandlers(this.get_element());
Telerik.Web.UI.DockCommand.callBaseMethod(this,"dispose");
}};
Telerik.Web.UI.DockCommand.registerClass("Telerik.Web.UI.DockCommand",Sys.UI.Control);
Telerik.Web.UI.DockToggleCommand=function(_d9){
Telerik.Web.UI.DockToggleCommand.initializeBase(this,[_d9]);
this._state=1;
this._alternateCssClass="rdCustom";
this._alternateText="Custom";
this._initialSetState=false;
};
Telerik.Web.UI.DockToggleCommand.prototype={updateState:function(){
var _da=this.get_element();
if(this.get_state()==1){
_da.title=this.get_text();
Sys.UI.DomElement.addCssClass(_da,this.get_cssClass());
Sys.UI.DomElement.removeCssClass(_da,this.get_alternateCssClass());
}else{
_da.title=this.get_alternateText();
Sys.UI.DomElement.addCssClass(_da,this.get_alternateCssClass());
Sys.UI.DomElement.removeCssClass(_da,this.get_cssClass());
}
},get_state:function(){
return this._state;
},set_state:function(_db){
this._state=_db;
if(this._initialSetState){
this.updateState();
}
},get_alternateCssClass:function(){
return this._alternateCssClass;
},set_alternateCssClass:function(_dc){
this._alternateCssClass=_dc;
},get_alternateText:function(){
return this._alternateText;
},set_alternateText:function(_dd){
this._alternateText=_dd;
},initialize:function(){
Telerik.Web.UI.DockToggleCommand.callBaseMethod(this,"initialize");
this._initialSetState=true;
this.updateState();
},dispose:function(){
Telerik.Web.UI.DockToggleCommand.callBaseMethod(this,"dispose");
}};
Telerik.Web.UI.DockToggleCommand.registerClass("Telerik.Web.UI.DockToggleCommand",Telerik.Web.UI.DockCommand);
Telerik.Web.UI.DockCloseCommand=function(_de){
Telerik.Web.UI.DockCloseCommand.initializeBase(this,[_de]);
this._cssClass="rdClose";
this._name="Close";
this._text="Close";
};
Telerik.Web.UI.DockCloseCommand.prototype={onCommand:function(e){
this.get_radDock().set_closed(true);
Telerik.Web.UI.DockCloseCommand.callBaseMethod(this,"onCommand");
}};
Telerik.Web.UI.DockCloseCommand.registerClass("Telerik.Web.UI.DockCloseCommand",Telerik.Web.UI.DockCommand);
Telerik.Web.UI.DockExpandCollapseCommand=function(_e0){
Telerik.Web.UI.DockExpandCollapseCommand.initializeBase(this,[_e0]);
this._cssClass="rdCollapse";
this._alternateCssClass="rdExpand";
this._name="ExpandCollapse";
this._text="Collapse";
this._alternateText="Expand";
};
Telerik.Web.UI.DockExpandCollapseCommand.prototype={onCommand:function(e){
this.get_radDock().set_collapsed(!this.get_radDock().get_collapsed());
Telerik.Web.UI.DockExpandCollapseCommand.callBaseMethod(this,"onCommand");
}};
Telerik.Web.UI.DockExpandCollapseCommand.registerClass("Telerik.Web.UI.DockExpandCollapseCommand",Telerik.Web.UI.DockToggleCommand);
Telerik.Web.UI.DockPinUnpinCommand=function(_e2){
Telerik.Web.UI.DockPinUnpinCommand.initializeBase(this,[_e2]);
this._cssClass="rdUnpin";
this._alternateCssClass="rdPin";
this._name="PinUnpin";
this._text="Pin";
this._alternateText="Unpin";
};
Telerik.Web.UI.DockPinUnpinCommand.prototype={onCommand:function(e){
this.get_radDock().set_pinned(!this.get_radDock().get_pinned());
Telerik.Web.UI.DockPinUnpinCommand.callBaseMethod(this,"onCommand");
}};
Telerik.Web.UI.DockPinUnpinCommand.registerClass("Telerik.Web.UI.DockPinUnpinCommand",Telerik.Web.UI.DockToggleCommand);
Telerik.Web.UI._documentDropZone=function(_e4){
};
Telerik.Web.UI._documentDropZone.prototype={get_dropTargetElement:function(){
return ($telerik.standardsMode)?document.body:document.documentElement;
},canDrop:function(_e5,_e6,_e7){
return (_e6===Telerik.Web.UI.RadDock.DragDataType&&(_e7.get_dockMode()&Telerik.Web.UI.DockMode.Floating)>0);
},drop:function(_e8,_e9,_ea){
var _eb=new Sys.CancelEventArgs();
_ea.raise_dockPositionChanging(_eb);
_ea.get_element().style.zIndex=_ea.originalZIndex;
if(_eb.get_cancel()){
_ea._restorePosition();
}else{
_ea.undock();
_ea.raise_dockPositionChanged(new Sys.EventArgs());
}
},onDragEnterTarget:function(_ec,_ed,_ee){
},onDragLeaveTarget:function(_ef,_f0,_f1){
},onDragInTarget:function(_f2,_f3,_f4){
}};
Telerik.Web.UI._documentDropZone.registerClass("Telerik.Web.UI._documentDropZone",null,Telerik.Web.IDropTarget);
Telerik.Web.UI.DocumentDropZone=new Telerik.Web.UI._documentDropZone();
Telerik.Web.DragDropManager.registerDropTarget(Telerik.Web.UI.DocumentDropZone,true);


/* END Telerik.Web.UI.Dock.RadDock.js */
/* START Telerik.Web.UI.Common.Animation.AnimationScripts.js */
Type.registerNamespace("Telerik.Web.Animation");
var $TWA=Telerik.Web.Animation;
$TWA.registerAnimation=function(_1,_2){
if(_2&&((_2===$TWA.Animation)||(_2.inheritsFrom&&_2.inheritsFrom($TWA.Animation)))){
if(!$TWA.__animations){
$TWA.__animations={};
}
$TWA.__animations[_1.toLowerCase()]=_2;
_2.play=function(){
var _3=new _2();
_2.apply(_3,arguments);
_3.initialize();
var _4=Function.createDelegate(_3,function(){
_3.remove_ended(_4);
_4=null;
_3.dispose();
});
_3.add_ended(_4);
_3.play();
};
}else{
throw Error.argumentType("type",_2,$TWA.Animation,"Telerik.Web.Animation.registerAnimation can only register types that inherit from Telerik.Web.Animation.Animation");
}
};
$TWA.Animation=function(_5,_6,_7){
$TWA.Animation.initializeBase(this);
this._duration=1;
this._fps=25;
this._target=null;
this._tickHandler=null;
this._timer=null;
this._percentComplete=0;
this._percentDelta=null;
this._owner=null;
this._parentAnimation=null;
this.DynamicProperties={};
if(_5){
this.set_target(_5);
}
if(_6){
this.set_duration(_6);
}
if(_7){
this.set_fps(_7);
}
};
$TWA.Animation.prototype={dispose:function(){
if(this._timer){
this._timer.dispose();
this._timer=null;
}
this._tickHandler=null;
this._target=null;
$TWA.Animation.callBaseMethod(this,"dispose");
},play:function(){
if(!this._owner){
var _8=true;
if(!this._timer){
_8=false;
if(!this._tickHandler){
this._tickHandler=Function.createDelegate(this,this._onTimerTick);
}
this._timer=new Telerik.Web.Timer();
this._timer.add_tick(this._tickHandler);
this.onStart();
this._timer.set_interval(1000/this._fps);
this._percentDelta=100/(this._duration*this._fps);
this._updatePercentComplete(0,true);
}
this._timer.set_enabled(true);
this.raisePropertyChanged("isPlaying");
if(!_8){
this.raisePropertyChanged("isActive");
}
}
},pause:function(){
if(!this._owner){
if(this._timer){
this._timer.set_enabled(false);
this.raisePropertyChanged("isPlaying");
}
}
},stop:function(_9){
if(!this._owner){
var t=this._timer;
this._timer=null;
if(t){
t.dispose();
if(this._percentComplete!==100){
this._percentComplete=100;
this.raisePropertyChanged("percentComplete");
if(_9||_9===undefined){
this.onStep(100);
}
}
this.onEnd();
this.raisePropertyChanged("isPlaying");
this.raisePropertyChanged("isActive");
}
}
},onStart:function(){
this.raiseStarted();
for(var _b in this.DynamicProperties){
try{
this[_b](eval(this.DynamicProperties[_b]));
}
catch(ex){
if(Sys.Debug.isDebug){
throw ex;
}
}
}
},onStep:function(_c){
this.setValue(this.getAnimatedValue(_c));
},onEnd:function(){
this.raiseEnded();
},getAnimatedValue:function(_d){
throw Error.notImplemented();
},setValue:function(_e){
throw Error.notImplemented();
},interpolate:function(_f,end,_11){
return _f+(end-_f)*(_11/100);
},_onTimerTick:function(){
this._updatePercentComplete(this._percentComplete+this._percentDelta,true);
this.raise_onTick();
},_updatePercentComplete:function(_12,_13){
if(_12>100){
_12=100;
}
this._percentComplete=_12;
this.raisePropertyChanged("percentComplete");
if(_13){
this.onStep(_12);
}
if(_12===100){
this.stop(false);
}
},setOwner:function(_14){
this._owner=_14;
},raiseStarted:function(){
var _15=this.get_events().getHandler("started");
if(_15){
_15(this,Sys.EventArgs.Empty);
}
},add_started:function(_16){
this.get_events().addHandler("started",_16);
},remove_started:function(_17){
this.get_events().removeHandler("started",_17);
},raiseEnded:function(){
var _18=this.get_events().getHandler("ended");
if(_18){
_18(this,Sys.EventArgs.Empty);
}
},add_ended:function(_19){
this.get_events().addHandler("ended",_19);
},remove_ended:function(_1a){
this.get_events().removeHandler("ended",_1a);
},raise_onTick:function(){
var _1b=this.get_events().getHandler("onTick");
if(_1b){
_1b(this,Sys.EventArgs.Empty);
}
},add_onTick:function(_1c){
this.get_events().addHandler("onTick",_1c);
},remove_onTick:function(_1d){
this.get_events().removeHandler("onTick",_1d);
},get_target:function(){
if(!this._target&&this._parentAnimation){
return this._parentAnimation.get_target();
}
return this._target;
},set_target:function(_1e){
if(this._target!=_1e){
this._target=_1e;
this.raisePropertyChanged("target");
}
},set_animationTarget:function(id){
var _20=null;
var _21=$get(id);
if(_21){
_20=_21;
}else{
var _22=$find(id);
if(_22){
_21=_22.get_element();
if(_21){
_20=_21;
}
}
}
if(_20){
this.set_target(_20);
}else{
throw Error.argument("id",String.format("Telerik.Web.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}\"",id));
}
},get_duration:function(){
return this._duration;
},set_duration:function(_23){
_23=this._getFloat(_23);
if(this._duration!=_23){
this._duration=_23;
this.raisePropertyChanged("duration");
}
},get_fps:function(){
return this._fps;
},set_fps:function(_24){
_24=this._getInteger(_24);
if(this.fps!=_24){
this._fps=_24;
this.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(_25){
if(String.isInstanceOfType(_25)){
return Boolean.parse(_25);
}
return _25;
},_getInteger:function(_26){
if(String.isInstanceOfType(_26)){
return parseInt(_26);
}
return _26;
},_getFloat:function(_27){
if(String.isInstanceOfType(_27)){
return parseFloat(_27);
}
return _27;
},_getEnum:function(_28,_29){
if(String.isInstanceOfType(_28)&&_29&&_29.parse){
return _29.parse(_28);
}
return _28;
}};
$TWA.Animation.registerClass("Telerik.Web.Animation.Animation",Sys.Component);
$TWA.registerAnimation("animation",$TWA.Animation);
$TWA.ParentAnimation=function(_2a,_2b,fps,_2d){
$TWA.ParentAnimation.initializeBase(this,[_2a,_2b,fps]);
this._animations=[];
if(_2d&&_2d.length){
for(var i=0;i<_2d.length;i++){
this.add(_2d[i]);
}
}
};
$TWA.ParentAnimation.prototype={initialize:function(){
$TWA.ParentAnimation.callBaseMethod(this,"initialize");
if(this._animations){
for(var i=0;i<this._animations.length;i++){
var _30=this._animations[i];
if(_30&&!_30.get_isInitialized){
_30.initialize();
}
}
}
},dispose:function(){
this.clear();
this._animations=null;
$TWA.ParentAnimation.callBaseMethod(this,"dispose");
},get_animations:function(){
return this._animations;
},add:function(_31){
if(this._animations){
if(_31){
_31._parentAnimation=this;
}
Array.add(this._animations,_31);
this.raisePropertyChanged("animations");
}
},remove:function(_32){
if(this._animations){
if(_32){
_32.dispose();
}
Array.remove(this._animations,_32);
this.raisePropertyChanged("animations");
}
},removeAt:function(_33){
if(this._animations){
var _34=this._animations[_33];
if(_34){
_34.dispose();
}
Array.removeAt(this._animations,_33);
this.raisePropertyChanged("animations");
}
},clear:function(){
if(this._animations){
for(var i=this._animations.length-1;i>=0;i--){
this._animations[i].dispose();
this._animations[i]=null;
}
Array.clear(this._animations);
this._animations=[];
this.raisePropertyChanged("animations");
}
}};
$TWA.ParentAnimation.registerClass("Telerik.Web.Animation.ParentAnimation",$TWA.Animation);
$TWA.registerAnimation("parent",$TWA.ParentAnimation);
$TWA.ParallelAnimation=function(_36,_37,fps,_39){
$TWA.ParallelAnimation.initializeBase(this,[_36,_37,fps,_39]);
};
$TWA.ParallelAnimation.prototype={add:function(_3a){
$TWA.ParallelAnimation.callBaseMethod(this,"add",[_3a]);
_3a.setOwner(this);
},onStart:function(){
$TWA.ParallelAnimation.callBaseMethod(this,"onStart");
var _3b=this.get_animations();
for(var i=0;i<_3b.length;i++){
_3b[i].onStart();
}
},onStep:function(_3d){
var _3e=this.get_animations();
for(var i=0;i<_3e.length;i++){
_3e[i].onStep(_3d);
}
},onEnd:function(){
var _40=this.get_animations();
for(var i=0;i<_40.length;i++){
_40[i].onEnd();
}
$TWA.ParallelAnimation.callBaseMethod(this,"onEnd");
}};
$TWA.ParallelAnimation.registerClass("Telerik.Web.Animation.ParallelAnimation",$TWA.ParentAnimation);
$TWA.registerAnimation("parallel",$TWA.ParallelAnimation);
$TWA.FadeEffect=function(){
throw Error.invalidOperation();
};
$TWA.FadeEffect.prototype={FadeIn:0,FadeOut:1};
$TWA.FadeEffect.registerEnum("Telerik.Web.Animation.FadeEffect",false);
$TWA.FadeAnimation=function(_42,_43,fps,_45,_46,_47,_48){
$TWA.FadeAnimation.initializeBase(this,[_42,_43,fps]);
this._effect=(_45!==undefined)?_45:$TWA.FadeEffect.FadeIn;
this._max=(_47!==undefined)?_47:1;
this._min=(_46!==undefined)?_46:0;
this._start=this._min;
this._end=this._max;
this._layoutCreated=false;
this._forceLayoutInIE=(_48===undefined||_48===null)?true:_48;
this._currentTarget=null;
this._resetOpacities();
};
$TWA.FadeAnimation.prototype={_resetOpacities:function(){
if(this._effect==$TWA.FadeEffect.FadeIn){
this._start=this._min;
this._end=this._max;
}else{
this._start=this._max;
this._end=this._min;
}
},_createLayout:function(){
var _49=this._currentTarget;
if(_49){
var _4a=$telerik.getCurrentStyle(_49,"width");
var _4b=$telerik.getCurrentStyle(_49,"height");
var _4c=$telerik.getCurrentStyle(_49,"backgroundColor");
if((!_4a||_4a==""||_4a=="auto")&&(!_4b||_4b==""||_4b=="auto")){
_49.style.width=_49.offsetWidth+"px";
}
if(!_4c||_4c==""||_4c=="transparent"||_4c=="rgba(0, 0, 0, 0)"){
_49.style.backgroundColor=$telerik.getInheritedBackgroundColor(_49);
}
this._layoutCreated=true;
}
},onStart:function(){
$TWA.FadeAnimation.callBaseMethod(this,"onStart");
this._currentTarget=this.get_target();
this.setValue(this._start);
if(this._forceLayoutInIE&&!this._layoutCreated&&Sys.Browser.agent==Sys.Browser.InternetExplorer){
this._createLayout();
}
},getAnimatedValue:function(_4d){
return this.interpolate(this._start,this._end,_4d);
},setValue:function(_4e){
if(this._currentTarget){
$telerik.setOpacity(this._currentTarget,_4e);
}
},get_effect:function(){
return this._effect;
},set_effect:function(_4f){
_4f=this._getEnum(_4f,$TWA.FadeEffect);
if(this._effect!=_4f){
this._effect=_4f;
this._resetOpacities();
this.raisePropertyChanged("effect");
}
},get_minimumOpacity:function(){
return this._min;
},set_minimumOpacity:function(_50){
_50=this._getFloat(_50);
if(this._min!=_50){
this._min=_50;
this._resetOpacities();
this.raisePropertyChanged("minimumOpacity");
}
},get_maximumOpacity:function(){
return this._max;
},set_maximumOpacity:function(_51){
_51=this._getFloat(_51);
if(this._max!=_51){
this._max=_51;
this._resetOpacities();
this.raisePropertyChanged("maximumOpacity");
}
},get_forceLayoutInIE:function(){
return this._forceLayoutInIE;
},set_forceLayoutInIE:function(_52){
_52=this._getBoolean(_52);
if(this._forceLayoutInIE!=_52){
this._forceLayoutInIE=_52;
this.raisePropertyChanged("forceLayoutInIE");
}
},set_startValue:function(_53){
_53=this._getFloat(_53);
this._start=_53;
}};
$TWA.FadeAnimation.registerClass("Telerik.Web.Animation.FadeAnimation",$TWA.Animation);
$TWA.registerAnimation("fade",$TWA.FadeAnimation);
$TWA.FadeInAnimation=function(_54,_55,fps,_57,_58,_59){
$TWA.FadeInAnimation.initializeBase(this,[_54,_55,fps,$TWA.FadeEffect.FadeIn,_57,_58,_59]);
};
$TWA.FadeInAnimation.prototype={onStart:function(){
$TWA.FadeInAnimation.callBaseMethod(this,"onStart");
if(this._currentTarget){
this.set_startValue($telerik.getOpacity(this._currentTarget));
}
}};
$TWA.FadeInAnimation.registerClass("Telerik.Web.Animation.FadeInAnimation",$TWA.FadeAnimation);
$TWA.registerAnimation("fadeIn",$TWA.FadeInAnimation);
$TWA.FadeOutAnimation=function(_5a,_5b,fps,_5d,_5e,_5f){
$TWA.FadeOutAnimation.initializeBase(this,[_5a,_5b,fps,$TWA.FadeEffect.FadeOut,_5d,_5e,_5f]);
};
$TWA.FadeOutAnimation.prototype={onStart:function(){
$TWA.FadeOutAnimation.callBaseMethod(this,"onStart");
if(this._currentTarget){
this.set_startValue($telerik.getOpacity(this._currentTarget));
}
}};
$TWA.FadeOutAnimation.registerClass("Telerik.Web.Animation.FadeOutAnimation",$TWA.FadeAnimation);
$TWA.registerAnimation("fadeOut",$TWA.FadeOutAnimation);
$TWA.PropertyAnimation=function(_60,_61,fps,_63,_64){
$TWA.PropertyAnimation.initializeBase(this,[_60,_61,fps]);
this._property=_63;
this._propertyKey=_64;
this._currentTarget=null;
};
$TWA.PropertyAnimation.prototype={onStart:function(){
$TWA.PropertyAnimation.callBaseMethod(this,"onStart");
this._currentTarget=this.get_target();
},setValue:function(_65){
var _66=this._currentTarget;
if(_66&&this._property&&this._property.length>0){
if(this._propertyKey&&this._propertyKey.length>0&&_66[this._property]){
_66[this._property][this._propertyKey]=_65;
}else{
_66[this._property]=_65;
}
}
},getValue:function(){
var _67=this.get_target();
if(_67&&this._property&&this._property.length>0){
var _68=_67[this._property];
if(_68){
if(this._propertyKey&&this._propertyKey.length>0){
return _68[this._propertyKey];
}
return _68;
}
}
return null;
},get_property:function(){
return this._property;
},set_property:function(_69){
if(this._property!=_69){
this._property=_69;
this.raisePropertyChanged("property");
}
},get_propertyKey:function(){
return this._propertyKey;
},set_propertyKey:function(_6a){
if(this._propertyKey!=_6a){
this._propertyKey=_6a;
this.raisePropertyChanged("propertyKey");
}
}};
$TWA.PropertyAnimation.registerClass("Telerik.Web.Animation.PropertyAnimation",$TWA.Animation);
$TWA.registerAnimation("property",$TWA.PropertyAnimation);
$TWA.DiscreteAnimation=function(_6b,_6c,fps,_6e,_6f,_70){
$TWA.DiscreteAnimation.initializeBase(this,[_6b,_6c,fps,_6e,_6f]);
this._values=(_70&&_70.length)?_70:[];
};
$TWA.DiscreteAnimation.prototype={getAnimatedValue:function(_71){
var _72=Math.floor(this.interpolate(0,this._values.length-1,_71));
return this._values[_72];
},get_values:function(){
return this._values;
},set_values:function(_73){
if(this._values!=_73){
this._values=_73;
this.raisePropertyChanged("values");
}
}};
$TWA.DiscreteAnimation.registerClass("Telerik.Web.Animation.DiscreteAnimation",$TWA.PropertyAnimation);
$TWA.registerAnimation("discrete",$TWA.DiscreteAnimation);
$TWA.InterpolatedAnimation=function(_74,_75,fps,_77,_78,_79,_7a){
$TWA.InterpolatedAnimation.initializeBase(this,[_74,_75,fps,((_77!==undefined)?_77:"style"),_78]);
this._startValue=_79;
this._endValue=_7a;
};
$TWA.InterpolatedAnimation.prototype={get_startValue:function(){
return this._startValue;
},set_startValue:function(_7b){
_7b=this._getFloat(_7b);
if(this._startValue!=_7b){
this._startValue=_7b;
this.raisePropertyChanged("startValue");
}
},get_endValue:function(){
return this._endValue;
},set_endValue:function(_7c){
_7c=this._getFloat(_7c);
if(this._endValue!=_7c){
this._endValue=_7c;
this.raisePropertyChanged("endValue");
}
}};
$TWA.InterpolatedAnimation.registerClass("Telerik.Web.Animation.InterpolatedAnimation",$TWA.PropertyAnimation);
$TWA.registerAnimation("interpolated",$TWA.InterpolatedAnimation);
$TWA.ColorAnimation=function(_7d,_7e,fps,_80,_81,_82,_83){
$TWA.ColorAnimation.initializeBase(this,[_7d,_7e,fps,_80,_81,_82,_83]);
this._start=null;
this._end=null;
this._interpolateRed=false;
this._interpolateGreen=false;
this._interpolateBlue=false;
};
$TWA.ColorAnimation.prototype={onStart:function(){
$TWA.ColorAnimation.callBaseMethod(this,"onStart");
this._start=$TWA.ColorAnimation.getRGB(this.get_startValue());
this._end=$TWA.ColorAnimation.getRGB(this.get_endValue());
this._interpolateRed=(this._start.Red!=this._end.Red);
this._interpolateGreen=(this._start.Green!=this._end.Green);
this._interpolateBlue=(this._start.Blue!=this._end.Blue);
},getAnimatedValue:function(_84){
var r=this._start.Red;
var g=this._start.Green;
var b=this._start.Blue;
if(this._interpolateRed){
r=Math.round(this.interpolate(r,this._end.Red,_84));
}
if(this._interpolateGreen){
g=Math.round(this.interpolate(g,this._end.Green,_84));
}
if(this._interpolateBlue){
b=Math.round(this.interpolate(b,this._end.Blue,_84));
}
return $TWA.ColorAnimation.toColor(r,g,b);
},set_startValue:function(_88){
if(this._startValue!=_88){
this._startValue=_88;
this.raisePropertyChanged("startValue");
}
},set_endValue:function(_89){
if(this._endValue!=_89){
this._endValue=_89;
this.raisePropertyChanged("endValue");
}
}};
$TWA.ColorAnimation.getRGB=function(_8a){
if(!_8a||_8a.length!=7){
throw String.format("Color must be a 7-character hex representation (e.g. #246ACF), not \"{0}\"",_8a);
}
return {"Red":parseInt(_8a.substr(1,2),16),"Green":parseInt(_8a.substr(3,2),16),"Blue":parseInt(_8a.substr(5,2),16)};
};
$TWA.ColorAnimation.toColor=function(red,_8c,_8d){
var r=red.toString(16);
var g=_8c.toString(16);
var b=_8d.toString(16);
if(r.length==1){
r="0"+r;
}
if(g.length==1){
g="0"+g;
}
if(b.length==1){
b="0"+b;
}
return "#"+r+g+b;
};
$TWA.ColorAnimation.registerClass("Telerik.Web.Animation.ColorAnimation",$TWA.InterpolatedAnimation);
$TWA.registerAnimation("color",$TWA.ColorAnimation);
$TWA.LengthAnimation=function(_91,_92,fps,_94,_95,_96,_97,_98){
$TWA.LengthAnimation.initializeBase(this,[_91,_92,fps,_94,_95,_96,_97]);
this._unit=(_98!=null)?_98:"px";
};
$TWA.LengthAnimation.prototype={getAnimatedValue:function(_99){
var _9a=this.interpolate(this.get_startValue(),this.get_endValue(),_99);
return Math.round(_9a)+this._unit;
},get_unit:function(){
return this._unit;
},set_unit:function(_9b){
if(this._unit!=_9b){
this._unit=_9b;
this.raisePropertyChanged("unit");
}
}};
$TWA.LengthAnimation.registerClass("Telerik.Web.Animation.LengthAnimation",$TWA.InterpolatedAnimation);
$TWA.registerAnimation("length",$TWA.LengthAnimation);
$TWA.MoveAnimation=function(_9c,_9d,fps,_9f,_a0,_a1,_a2){
$TWA.MoveAnimation.initializeBase(this,[_9c,_9d,fps,null]);
this._horizontal=_9f?_9f:0;
this._vertical=_a0?_a0:0;
this._relative=(_a1===undefined)?true:_a1;
this._horizontalAnimation=new $TWA.LengthAnimation(_9c,_9d,fps,"style","left",null,null,_a2);
this._verticalAnimation=new $TWA.LengthAnimation(_9c,_9d,fps,"style","top",null,null,_a2);
this.add(this._verticalAnimation);
this.add(this._horizontalAnimation);
};
$TWA.MoveAnimation.prototype={onStart:function(){
$TWA.MoveAnimation.callBaseMethod(this,"onStart");
var _a3=this.get_target();
this._horizontalAnimation.set_startValue(_a3.offsetLeft);
this._horizontalAnimation.set_endValue(this._relative?_a3.offsetLeft+this._horizontal:this._horizontal);
this._verticalAnimation.set_startValue(_a3.offsetTop);
this._verticalAnimation.set_endValue(this._relative?_a3.offsetTop+this._vertical:this._vertical);
},get_horizontal:function(){
return this._horizontal;
},set_horizontal:function(_a4){
_a4=this._getFloat(_a4);
if(this._horizontal!=_a4){
this._horizontal=_a4;
this.raisePropertyChanged("horizontal");
}
},get_vertical:function(){
return this._vertical;
},set_vertical:function(_a5){
_a5=this._getFloat(_a5);
if(this._vertical!=_a5){
this._vertical=_a5;
this.raisePropertyChanged("vertical");
}
},get_relative:function(){
return this._relative;
},set_relative:function(_a6){
_a6=this._getBoolean(_a6);
if(this._relative!=_a6){
this._relative=_a6;
this.raisePropertyChanged("relative");
}
},get_unit:function(){
this._horizontalAnimation.get_unit();
},set_unit:function(_a7){
var _a8=this._horizontalAnimation.get_unit();
if(_a8!=_a7){
this._horizontalAnimation.set_unit(_a7);
this._verticalAnimation.set_unit(_a7);
this.raisePropertyChanged("unit");
}
}};
$TWA.MoveAnimation.registerClass("Telerik.Web.Animation.MoveAnimation",$TWA.ParallelAnimation);
$TWA.registerAnimation("move",$TWA.MoveAnimation);
$TWA.ResizeAnimation=function(_a9,_aa,fps,_ac,_ad,_ae){
$TWA.ResizeAnimation.initializeBase(this,[_a9,_aa,fps,null]);
this._width=_ac;
this._height=_ad;
this._horizontalAnimation=new $TWA.LengthAnimation(_a9,_aa,fps,"style","width",null,null,_ae);
this._verticalAnimation=new $TWA.LengthAnimation(_a9,_aa,fps,"style","height",null,null,_ae);
this.add(this._horizontalAnimation);
this.add(this._verticalAnimation);
};
$TWA.ResizeAnimation.prototype={onStart:function(){
$TWA.ResizeAnimation.callBaseMethod(this,"onStart");
var _af=this.get_target();
this._horizontalAnimation.set_startValue(_af.offsetWidth);
this._verticalAnimation.set_startValue(_af.offsetHeight);
this._horizontalAnimation.set_endValue((this._width!==null&&this._width!==undefined)?this._width:_af.offsetWidth);
this._verticalAnimation.set_endValue((this._height!==null&&this._height!==undefined)?this._height:_af.offsetHeight);
},get_width:function(){
return this._width;
},set_width:function(_b0){
_b0=this._getFloat(_b0);
if(this._width!=_b0){
this._width=_b0;
this.raisePropertyChanged("width");
}
},get_height:function(){
return this._height;
},set_height:function(_b1){
_b1=this._getFloat(_b1);
if(this._height!=_b1){
this._height=_b1;
this.raisePropertyChanged("height");
}
},get_unit:function(){
this._horizontalAnimation.get_unit();
},set_unit:function(_b2){
var _b3=this._horizontalAnimation.get_unit();
if(_b3!=_b2){
this._horizontalAnimation.set_unit(_b2);
this._verticalAnimation.set_unit(_b2);
this.raisePropertyChanged("unit");
}
}};
$TWA.ResizeAnimation.registerClass("Telerik.Web.Animation.ResizeAnimation",$TWA.ParallelAnimation);
$TWA.registerAnimation("resize",$TWA.ResizeAnimation);
Type.registerNamespace("Telerik.Web.UI.Animations");
Telerik.Web.UI.Animations.ShowHideAnimation=function(_b4,_b5,fps,_b7,_b8,_b9){
this.controller=_b4;
this._duration=(_b5!=null)?_b5:0.3;
this._fps=(fps!=null)?fps:50;
this._frames=_b5*fps;
this._position=null!=_b8?_b8:32;
this._animatedElement=_b7;
this._sourceElement=_b9;
this._startBounds=null;
this._endBounds=null;
this._showAnimation=null;
this._hideAnimation=null;
};
Telerik.Web.UI.Animations.ShowHideAnimation.prototype={_getHorizontalPosition:function(){
return parseInt((this._position+"").charAt(1));
},_getVerticalPosition:function(){
return parseInt((this._position+"").charAt(0));
},_onBeforeShow:function(){
},_onBeforeHide:function(){
},_onAfterShow:function(){
},_onAfterHide:function(){
},onShowStart:function(){
},onHideStart:function(){
},onShowEnd:function(){
},onHideEnd:function(){
},play:function(_ba){
var _bb=(true==_ba)?this._hideAnimation:this._showAnimation;
if(_bb){
this.stop();
if(!_bb.__isTelerikModified){
var _bc=this;
_bb.__isTelerikModified=true;
var _bd=_bb.onStart;
_bb.onStart=function(){
if(_ba){
_bc.onHideStart();
}else{
_bc.onShowStart();
}
if(true==_ba){
_bc._onBeforeHide();
}else{
_bc._onBeforeShow();
}
if(_bd){
_bd.call(this);
}
};
var _be=_bb.onEnd;
_bb.onEnd=function(){
if(_be){
_be.call(this);
}
if(_bc.onEnd){
_bc.onEnd(_ba);
}
if(true==_ba){
_bc._onAfterHide();
}else{
_bc._onAfterShow();
}
if(_ba){
_bc.onHideEnd();
}else{
_bc.onShowEnd();
}
};
}
_bb.play();
}
this._runningAnimation=_bb;
},set_startBounds:function(_bf){
this._startBounds=_bf;
},set_endBounds:function(_c0){
this._endBounds=_c0;
},dispose:function(){
this.stop();
if(this._showAnimation){
this._showAnimation.dispose();
}
if(this._hideAnimation){
this._hideAnimation.dispose();
}
},stop:function(){
if(this._runningAnimation){
this._runningAnimation.stop();
this._runningAnimation=null;
}
}};
Telerik.Web.UI.Animations.ShowHideAnimation.registerClass("Telerik.Web.UI.Animations.ShowHideAnimation",null);
Telerik.Web.UI.Animations.ResizeAnimation=function(_c1,_c2,fps,_c4,_c5,_c6){
Telerik.Web.UI.Animations.ResizeAnimation.initializeBase(this,[_c1,_c2,fps,_c4,_c5,_c6]);
var _c2=this._duration;
var fps=this._fps;
var _c7=this._animatedElement;
var _c8,_c9,_ca,_cb,_cc,_cd;
var _ce=new Telerik.Web.Animation.ResizeAnimation(_c7,_c2,fps,_c8,_c9,"px");
var _cf=new Telerik.Web.Animation.LengthAnimation(_c7,_c2,fps,"style","left",_cc,_cd,"px");
var _d0=new Telerik.Web.Animation.LengthAnimation(_c7,_c2,fps,"style","top",_ca,_cb,"px");
var _d1=new Telerik.Web.Animation.FadeInAnimation(_c7,_c2,fps,0.3,1,false);
this._showAnimation=new Telerik.Web.Animation.ParallelAnimation(_c7,_c2,fps,[_ce,_cf,_d0,_d1]);
this._hideAnimation=new Telerik.Web.Animation.FadeInAnimation(this._animatedElement,this._duration,this._fps,1,0,false);
};
Telerik.Web.UI.Animations.ResizeAnimation.prototype={_configureAnimatedElement:function(){
var _d2=this._animatedElement;
_d2.style.overflow="hidden";
_d2.style.display="";
_d2.style.visibility="visible";
_d2.style.width="1px";
_d2.style.height="1px";
},_configureAnimation:function(_d3){
var _d4=this._showAnimation.get_animations();
var _d5=_d4[0];
_d5.set_width(_d3.width);
_d5.set_height(_d3.height);
var _d6=_d4[1];
_d6.set_startValue(_d3.startX);
_d6.set_endValue(_d3.endX);
var _d7=_d4[2];
_d7.set_startValue(_d3.startY);
_d7.set_endValue(_d3.endY);
},_getStartBounds:function(){
var _d8=null;
if(this._startBounds){
_d8=this._startBounds;
}else{
if(this._sourceElement){
_d8=$telerik.getBounds(this._sourceElement);
}else{
_d8=new Sys.UI.Bounds(1,1,1,1);
}
}
return _d8;
},_getEndBounds:function(){
return this._endBounds;
},_modifyAnimationValues:function(_d9){
var _da=this._animatedElement;
var _db=this._getStartBounds();
if(_db.width<_d9.width){
_d9.startX=_db.x;
_da.style.width=_db.width;
}
if(_db.height<_d9.height){
_d9.startY=_db.y;
_da.style.height=_db.height;
}
},_setHorizontalValues:function(_dc){
var _dd=this._getHorizontalPosition();
var _de=this._getEndBounds();
switch(_dd){
case 2:
_dc.startX=_de.x+Math.floor(_de.width/2);
_dc.endX=_de.x;
break;
case 3:
_dc.startX=_de.x;
_dc.endX=_de.x;
break;
case 1:
_dc.startX=_de.x+_de.width;
_dc.endX=_de.x;
}
},_setVerticalValues:function(_df){
var _e0=this._getVerticalPosition();
var _e1=this._getEndBounds();
switch(_e0){
case 2:
_df.startY=_e1.y+Math.floor(_e1.height/2);
_df.endY=_e1.y;
break;
case 1:
_df.startY=_e1.y+_e1.height;
_df.endY=_e1.y;
break;
case 3:
_df.startY=_e1.y;
_df.endY=_e1.y;
}
},_setSizeValues:function(_e2){
var _e3=this._endBounds;
_e2["width"]=_e3.width;
_e2["height"]=_e3.height;
},_onBeforeShow:function(){
var _e4={};
this._setHorizontalValues(_e4);
this._setVerticalValues(_e4);
this._setSizeValues(_e4);
this._configureAnimatedElement();
this._modifyAnimationValues(_e4);
this._configureAnimation(_e4);
},_onAfterShow:function(){
this._animatedElement.style.overflow="";
this._animatedElement.style.filter="";
}};
Telerik.Web.UI.Animations.ResizeAnimation.registerClass("Telerik.Web.UI.Animations.ResizeAnimation",Telerik.Web.UI.Animations.ShowHideAnimation);
Telerik.Web.UI.Animations.SlideAnimation=function(_e5,_e6,fps,_e8,_e9,_ea){
Telerik.Web.UI.Animations.SlideAnimation.initializeBase(this,[_e5,_e6,fps,_e8,_e9,_ea]);
};
Telerik.Web.UI.Animations.SlideAnimation.prototype={_modifyAnimationValues:function(_eb){
},_configureAnimatedElement:function(){
var _ec=this._animatedElement;
_ec.style.overflow="hidden";
_ec.style.display="";
_ec.style.visibility="visible";
var _ed=this._getVerticalPosition();
if(_ed==2){
_ec.style.width="1px";
}else{
_ec.style.height="1px";
}
},_setHorizontalValues:function(_ee){
var _ef=this._getHorizontalPosition();
var _f0=this._getEndBounds();
switch(_ef){
case 2:
_ee.startX=_f0.x;
_ee.endX=_f0.x;
break;
case 3:
_ee.startX=_f0.x;
_ee.endX=_f0.x;
break;
case 1:
var _f1=_f0.x;
if(2==this._getVerticalPosition()){
_f1+=_f0.width;
}
_ee.startX=_f1;
_ee.endX=_f0.x;
}
},_setVerticalValues:function(_f2){
var _f3=this._getVerticalPosition();
var _f4=this._getEndBounds();
switch(_f3){
case 2:
_f2.startY=_f4.y;
_f2.endY=_f4.y;
break;
case 1:
_f2.startY=_f4.y+_f4.height;
_f2.endY=_f4.y;
break;
case 3:
_f2.startY=_f4.y;
_f2.endY=_f4.y;
}
}};
Telerik.Web.UI.Animations.SlideAnimation.registerClass("Telerik.Web.UI.Animations.SlideAnimation",Telerik.Web.UI.Animations.ResizeAnimation);
Telerik.Web.UI.Animations.FlyInAnimation=function(_f5,_f6,fps,_f8,_f9,_fa){
Telerik.Web.UI.Animations.FlyInAnimation.initializeBase(this,[_f5,_f6,fps,_f8,_f9,_fa]);
};
Telerik.Web.UI.Animations.FlyInAnimation.prototype={_modifyAnimationValues:function(_fb){
},_setHorizontalValues:function(_fc){
var _fd=this._getHorizontalPosition();
var _fe=this._getEndBounds();
var _ff=$telerik.getClientBounds();
switch(_fd){
case 2:
_fc.startX=_fe.x;
_fc.endX=_fe.x;
break;
case 3:
_fc.startX=_ff.width;
_fc.endX=_fe.x;
break;
case 1:
_fc.startX=_ff.x;
_fc.endX=_fe.x;
}
},_setVerticalValues:function(_100){
var _101=this._getVerticalPosition();
var _102=this._getEndBounds();
var _103=$telerik.getClientBounds();
switch(_101){
case 2:
_100.startY=_102.y;
_100.endY=_102.y;
break;
case 1:
_100.startY=_103.y-_102.height;
_100.endY=_102.y;
break;
case 3:
_100.startY=_103.height;
_100.endY=_102.y;
}
}};
Telerik.Web.UI.Animations.FlyInAnimation.registerClass("Telerik.Web.UI.Animations.FlyInAnimation",Telerik.Web.UI.Animations.ResizeAnimation);
Telerik.Web.UI.Animations.FadeAnimation=function(_104,_105,fps,_107){
Telerik.Web.UI.Animations.FadeAnimation.initializeBase(this,[_104,_105,fps,_107]);
this._showAnimation=new Telerik.Web.Animation.FadeInAnimation(this._animatedElement,this._duration,this._fps,0.5,1,false);
this._hideAnimation=new Telerik.Web.Animation.FadeInAnimation(this._animatedElement,this._duration,this._fps,0.9,0,false);
};
Telerik.Web.UI.Animations.FadeAnimation.prototype={_onAfterShow:function(){
this._animatedElement.style.filter="";
}};
Telerik.Web.UI.Animations.FadeAnimation.registerClass("Telerik.Web.UI.Animations.FadeAnimation",Telerik.Web.UI.Animations.ShowHideAnimation);


/* END Telerik.Web.UI.Common.Animation.AnimationScripts.js */
/* START Telerik.Web.UI.Common.Navigation.NavigationScripts.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.AnimationType=function(){
};
Telerik.Web.UI.AnimationType.prototype={None:0,Linear:1,InQuad:2,OutQuad:3,InOutQuad:4,InCubic:5,OutCubic:6,InOutCubic:7,InQuart:8,OutQuart:9,InOutQuart:10,InQuint:11,OutQuint:12,InOutQuint:13,InSine:14,OutSine:15,InOutSine:16,InExpo:17,OutExpo:18,InOutExpo:19,InBack:20,OutBack:21,InOutBack:22,InBounce:23,OutBounce:24,InOutBounce:25,InElastic:26,OutElastic:27,InOutElastic:28};
Telerik.Web.UI.AnimationType.registerEnum("Telerik.Web.UI.AnimationType");
Telerik.Web.UI.AnimationFunctions=function(){
};
Telerik.Web.UI.AnimationFunctions.CalculateAnimationPoints=function(_1,_2,_3,_4){
if(_2==_3){
return [_3+"px"];
}
var _5=_1.get_duration()/1000;
var _6=Math.round((_5)*_4);
var _7=Telerik.Web.UI.AnimationFunctions[_1.get_type()];
var _8=new Array();
var _9=Math.max(_2,_3)-Math.min(_2,_3);
var _a=_2<_3?1:-1;
var _b=0;
_8[0]=_2+"px";
for(var _c=0;_c<_6;_c++){
var _d=_7(_c/_4,0,_9,_5);
if(_c>0){
var _e=parseInt(_8[_c-1]);
var _f=_a*(Math.round(_d)-Math.round(_b));
_8[_c]=(_e+_f)+"px";
}
_b=_d;
}
_8[_6-1]=_3+"px";
return _8;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.Linear]=function(t,b,c,d){
return c*t/d+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InQuad]=function(t,b,c,d){
return c*(t/=d)*t+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutQuad]=function(t,b,c,d){
return -c*(t/=d)*(t-2)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutQuad]=function(t,b,c,d){
if((t/=d/2)<1){
return c/2*t*t+b;
}
return -c/2*((--t)*(t-2)-1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InCubic]=function(t,b,c,d){
return c*(t/=d)*t*t+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutCubic]=function(t,b,c,d){
return c*((t=t/d-1)*t*t+1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutCubic]=function(t,b,c,d){
if((t/=d/2)<1){
return c/2*t*t*t+b;
}
return c/2*((t-=2)*t*t+2)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InQuart]=function(t,b,c,d){
return c*(t/=d)*t*t*t+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutQuart]=function(t,b,c,d){
return -c*((t=t/d-1)*t*t*t-1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutQuart]=function(t,b,c,d){
if((t/=d/2)<1){
return c/2*t*t*t*t+b;
}
return -c/2*((t-=2)*t*t*t-2)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InQuint]=function(t,b,c,d){
return c*(t/=d)*t*t*t*t+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutQuint]=function(t,b,c,d){
return c*((t=t/d-1)*t*t*t*t+1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutQuint]=function(t,b,c,d){
if((t/=d/2)<1){
return c/2*t*t*t*t*t+b;
}
return c/2*((t-=2)*t*t*t*t+2)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InSine]=function(t,b,c,d){
return -c*Math.cos(t/d*(Math.PI/2))+c+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutSine]=function(t,b,c,d){
return c*Math.sin(t/d*(Math.PI/2))+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutSine]=function(t,b,c,d){
return -c/2*(Math.cos(Math.PI*t/d)-1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InExpo]=function(t,b,c,d){
return (t==0)?b:c*Math.pow(2,10*(t/d-1))+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutExpo]=function(t,b,c,d){
return (t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutExpo]=function(t,b,c,d){
if(t==0){
return b;
}
if(t==d){
return b+c;
}
if((t/=d/2)<1){
return c/2*Math.pow(2,10*(t-1))+b;
}
return c/2*(-Math.pow(2,-10*--t)+2)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InCirc]=function(t,b,c,d){
return -c*(Math.sqrt(1-(t/=d)*t)-1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutCirc]=function(t,b,c,d){
return c*Math.sqrt(1-(t=t/d-1)*t)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutCirc]=function(t,b,c,d){
if((t/=d/2)<1){
return -c/2*(Math.sqrt(1-t*t)-1)+b;
}
return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InElastic]=function(t,b,c,d,a,p){
if(t==0){
return b;
}
if((t/=d)==1){
return b+c;
}
if(!p){
p=d*0.3;
}
if((!a)||a<Math.abs(c)){
a=c;
var s=p/4;
}else{
var s=p/(2*Math.PI)*Math.asin(c/a);
}
return -(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutElastic]=function(t,b,c,d,a,p){
if(t==0){
return b;
}
if((t/=d)==1){
return b+c;
}
if(!p){
p=d*0.3;
}
if((!a)||a<Math.abs(c)){
a=c;
var s=p/4;
}else{
var s=p/(2*Math.PI)*Math.asin(c/a);
}
return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutElastic]=function(t,b,c,d,a,p){
if(t==0){
return b;
}
if((t/=d/2)==2){
return b+c;
}
if(!p){
p=d*(0.3*1.5);
}
if((!a)||a<Math.abs(c)){
a=c;
var s=p/4;
}else{
var s=p/(2*Math.PI)*Math.asin(c/a);
}
if(t<1){
return -0.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;
}
return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*0.5+c+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InBack]=function(t,b,c,d,s){
if(s==undefined){
s=1.70158;
}
return c*(t/=d)*t*((s+1)*t-s)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutBack]=function(t,b,c,d,s){
if(s==undefined){
s=1.70158;
}
return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutBack]=function(t,b,c,d,s){
if(s==undefined){
s=1.70158;
}
if((t/=d/2)<1){
return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;
}
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InBounce]=function(t,b,c,d){
return c-Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutBounce](d-t,0,c,d)+b;
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutBounce]=function(t,b,c,d){
if((t/=d)<(1/2.75)){
return c*(7.5625*t*t)+b;
}else{
if(t<(2/2.75)){
return c*(7.5625*(t-=(1.5/2.75))*t+0.75)+b;
}else{
if(t<(2.5/2.75)){
return c*(7.5625*(t-=(2.25/2.75))*t+0.9375)+b;
}else{
return c*(7.5625*(t-=(2.625/2.75))*t+0.984375)+b;
}
}
}
};
Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InOutBounce]=function(t,b,c,d){
if(t<d/2){
return Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.InBounce](t*2,0,c,d)*0.5+b;
}
return Telerik.Web.UI.AnimationFunctions[Telerik.Web.UI.AnimationType.OutBounce](t*2-d,0,c,d)*0.5+c*0.5+b;
};
Telerik.Web.UI.AnimationFunctions.registerClass("Telerik.Web.UI.AnimationFunctions");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.AnimationSettings=function(_98){
this._type=Telerik.Web.UI.AnimationType.OutQuart;
this._duration=300;
if(typeof (_98.type)!="undefined"){
this._type=_98.type;
}
if(typeof (_98.duration)!="undefined"){
this._duration=_98.duration;
}
};
Telerik.Web.UI.AnimationSettings.prototype={get_type:function(){
return this._type;
},set_type:function(_99){
this._type=_99;
},get_duration:function(){
return this._duration;
},set_duration:function(_9a){
this._duration=_9a;
}};
Telerik.Web.UI.AnimationSettings.registerClass("Telerik.Web.UI.AnimationSettings");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.AttributeCollection=function(_9b){
this._owner=_9b;
this._data={};
this._keys=[];
};
Telerik.Web.UI.AttributeCollection.prototype={getAttribute:function(key){
return this._data[key];
},setAttribute:function(key,_9e){
this._add(key,_9e);
var _9f={};
_9f[key]=_9e;
this._owner._notifyPropertyChanged("attributes",_9f);
},_add:function(key,_a1){
if(Array.indexOf(this._keys,key)<0){
Array.add(this._keys,key);
}
this._data[key]=_a1;
},removeAttribute:function(key){
Array.remove(this._keys,key);
delete this._data[key];
},_load:function(_a3){
for(var key in _a3){
this._add(key,_a3[key]);
}
},get_count:function(){
return this._keys.length;
}};
Telerik.Web.UI.AttributeCollection.registerClass("Telerik.Web.UI.AttributeCollection");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.ChangeLog=function(){
this._opCodeInsert=1;
this._opCodeDelete=2;
this._opCodeClear=3;
this._opCodePropertyChanged=4;
this._logEntries=null;
};
Telerik.Web.UI.ChangeLog.prototype={initialize:function(){
this._logEntries=[];
this._serializedEntries=null;
},logInsert:function(_a5){
var _a6={};
_a6.Type=this._opCodeInsert;
_a6.Index=_a5._getHierarchicalIndex();
_a6.Data=_a5._getData();
Array.add(this._logEntries,_a6);
},logDelete:function(_a7){
var _a8={};
_a8.Type=this._opCodeDelete;
_a8.Index=_a7._getHierarchicalIndex();
Array.add(this._logEntries,_a8);
},logClear:function(_a9){
var _aa={};
_aa.Type=this._opCodeClear;
if(_a9._getHierarchicalIndex){
_aa.Index=_a9._getHierarchicalIndex();
}
Array.add(this._logEntries,_aa);
},logPropertyChanged:function(_ab,_ac,_ad){
var _ae={};
_ae.Type=this._opCodePropertyChanged;
_ae.Index=_ab._getHierarchicalIndex();
_ae.Data={};
_ae.Data[_ac]=_ad;
Array.add(this._logEntries,_ae);
},serialize:function(){
if(this._logEntries.length==0){
if(this._serializedEntries==null){
return "[]";
}
return this._serializedEntries;
}
var _af=Sys.Serialization.JavaScriptSerializer.serialize(this._logEntries);
if(this._serializedEntries==null){
this._serializedEntries=_af;
}else{
this._serializedEntries=this._serializedEntries.substring(0,this._serializedEntries.length-1)+","+_af.substring(1);
}
this._logEntries=[];
return this._serializedEntries;
}};
Telerik.Web.UI.ChangeLog.registerClass("Telerik.Web.UI.ChangeLog");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.PropertyBag=function(_b0){
Telerik.Web.UI.PropertyBag.initializeBase(this);
this._data={};
this._owner=_b0;
};
Telerik.Web.UI.PropertyBag.prototype={getValue:function(_b1,_b2){
var _b3=this._data[_b1];
if(typeof (_b3)==="undefined"){
return _b2;
}
return _b3;
},setValue:function(_b4,_b5,_b6){
this._data[_b4]=_b5;
if(_b6){
this._owner._notifyPropertyChanged(_b4,_b5);
}
},load:function(_b7){
this._data=_b7;
}};
Telerik.Web.UI.PropertyBag.registerClass("Telerik.Web.UI.PropertyBag");
Telerik.Web.UI.ControlItem=function(){
this._element=null;
this._parent=null;
this._text=null;
this._children=null;
this._childControlsCreated=false;
this._itemData=null;
this._control=null;
this._properties=new Telerik.Web.UI.PropertyBag(this);
this._attributes=new Telerik.Web.UI.AttributeCollection(this);
};
Telerik.Web.UI.ControlItem.prototype={_shouldNavigate:function(){
var _b8=this.get_navigateUrl();
if(!_b8){
return false;
}
return !_b8.endsWith("#");
},_getNavigateUrl:function(){
if(this.get_linkElement()){
return this._properties.getValue("navigateUrl",this.get_linkElement().getAttribute("href",2));
}
return this._properties.getValue("navigateUrl",null);
},_initialize:function(_b9,_ba){
this.set_element(_ba);
this._properties.load(_b9);
if(typeof (_b9["attributes"])!="undefined"){
this._attributes._load(_b9["attributes"]);
}
this._itemData=_b9["items"];
},_dispose:function(){
if(this._children){
this._children.forEach(function(_bb){
_bb._dispose();
});
}
if(this._element){
this._element._item=null;
this._element=null;
}
if(this._control){
this._control=null;
}
},_initializeRenderedItem:function(){
var _bc=this._children;
if(!_bc||_bc.get_count()<1){
return;
}
var _bd=this._getChildElements();
Sys.Debug.assert(_bc.get_count()==_bd.length,"Length of elements and child items must be the same!");
for(var i=0,_bf=_bc.get_count();i<_bf;i++){
var _c0=_bc.getItem(i);
if(!_c0.get_element()){
_c0.set_element(_bd[i]);
if(this._shouldInitializeChild(_c0)){
_c0._initializeRenderedItem();
}
}
}
},get_attributes:function(){
return this._attributes;
},get_element:function(){
return this._element;
},set_element:function(_c1){
this._element=_c1;
this._element._item=this;
this._element._itemTypeName=Object.getTypeName(this);
},get_parent:function(){
return this._parent;
},set_parent:function(_c2){
this._parent=_c2;
},get_text:function(){
if(this._text!==null){
return this._text;
}
if(this._text=this._properties.getValue("text","")){
return this._text;
}
if(!this.get_element()){
return "";
}
var _c3=this.get_textElement();
if(!_c3){
return "";
}
if(typeof (_c3.innerText)!="undefined"){
this._text=_c3.innerText;
}else{
this._text=_c3.textContent;
}
if($telerik.isSafari2){
this._text=_c3.innerHTML;
}
return this._text;
},set_text:function(_c4){
var _c5=this.get_textElement();
if(_c5){
_c5.innerHTML=_c4;
}
this._text=_c4;
this._properties.setValue("text",_c4,true);
},get_value:function(){
return this._properties.getValue("value",null);
},set_value:function(_c6){
this._properties.setValue("value",_c6,true);
},get_itemData:function(){
return this._itemData;
},get_index:function(){
if(!this.get_parent()){
return -1;
}
return this.get_parent()._getChildren().indexOf(this);
},set_enabled:function(_c7){
this._properties.setValue("enabled",_c7,true);
},get_enabled:function(){
return this._properties.getValue("enabled",true)==true;
},get_isEnabled:function(){
var _c8=this._getControl();
if(_c8){
return _c8.get_enabled()&&this.get_enabled();
}
return this.get_enabled();
},set_visible:function(_c9){
this._properties.setValue("visible",_c9);
},get_visible:function(){
return this._properties.getValue("visible",true);
},get_level:function(){
var _ca=this.get_parent();
var _cb=0;
while(_ca){
if(Telerik.Web.UI.ControlItemContainer.isInstanceOfType(_ca)){
return _cb;
}
_cb++;
_ca=_ca.get_parent();
}
return _cb;
},get_isLast:function(){
return this.get_index()==this.get_parent()._getChildren().get_count()-1;
},get_isFirst:function(){
return this.get_index()==0;
},get_nextSibling:function(){
if(!this.get_parent()){
return null;
}
return this.get_parent()._getChildren().getItem(this.get_index()+1);
},get_previousSibling:function(){
if(!this.get_parent()){
return null;
}
return this.get_parent()._getChildren().getItem(this.get_index()-1);
},_getHierarchicalIndex:function(){
var _cc=[];
var _cd=this;
while(!Telerik.Web.UI.ControlItemContainer.isInstanceOfType(_cd)){
Array.insert(_cc,0,_cd.get_index());
_cd=_cd.get_parent();
}
return _cc.join(":");
},_getChildren:function(){
this._ensureChildControls();
return this._children;
},_ensureChildControls:function(){
if(!this._childControlsCreated){
this._createChildControls();
this._childControlsCreated=true;
}
},_setCssClass:function(_ce,_cf){
if(_ce.className!=_cf){
_ce.className=_cf;
}
},_createChildControls:function(){
this._children=this._createItemCollection();
},_createItemCollection:function(){
},_getControl:function(){
if(!this._control){
var _d0=this.get_parent();
if(_d0){
if(Telerik.Web.UI.ControlItemContainer.isInstanceOfType(_d0)){
this._control=_d0;
}else{
this._control=_d0._getControl();
}
}
}
return this._control;
},_getAllItems:function(){
var _d1=[];
this._getAllItemsRecursive(_d1,this);
return _d1;
},_getAllItemsRecursive:function(_d2,_d3){
var _d4=_d3._getChildren();
for(var i=0;i<_d4.get_count();i++){
var _d6=_d4.getItem(i);
Array.add(_d2,_d6);
this._getAllItemsRecursive(_d2,_d6);
}
},_getData:function(){
var _d7=this._properties._data;
delete _d7.items;
_d7["text"]=this.get_text();
if(this.get_attributes().get_count()>0){
_d7["attributes"]=this.get_attributes()._data;
}
return _d7;
},_notifyPropertyChanged:function(_d8,_d9){
var _da=this._getControl();
if(_da){
_da._itemPropertyChanged(this,_d8,_d9);
}
},_loadFromDictionary:function(_db){
if(typeof (_db.Text)!="undefined"){
this.set_text(_db.Text);
}
if(typeof (_db.Value)!="undefined"&&_db.Value!==""){
this.set_value(_db.Value);
}
if(typeof (_db.Enabled)!="undefined"&&_db.Enabled!==true){
this.set_enabled(_db.Enabled);
}
var _dc=this.get_attributes();
for(var _dd in _db.Attributes){
_dc.setAttribute(_dd,_db.Attributes[_dd]);
}
},_createDomElement:function(){
var _de=document.createElement("ul");
var _df=[];
this._render(_df);
_de.innerHTML=_df.join("");
return _de.firstChild;
}};
Telerik.Web.UI.ControlItem.registerClass("Telerik.Web.UI.ControlItem");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.ControlItemCollection=function(_e0){
this._array=new Array();
this._parent=_e0;
this._control=null;
};
Telerik.Web.UI.ControlItemCollection.prototype={add:function(_e1){
var _e2=this._array.length;
this.insert(_e2,_e1);
},insert:function(_e3,_e4){
var _e5=_e4.get_parent();
var _e6=this._parent._getControl();
if(_e5){
_e5._getChildren().remove(_e4);
}
if(_e6){
_e6._childInserting(_e3,_e4,this._parent);
}
Array.insert(this._array,_e3,_e4);
_e4.set_parent(this._parent);
if(_e6){
_e6._childInserted(_e3,_e4,this._parent);
_e6._logInserted(_e4);
}
},remove:function(_e7){
var _e8=this._parent._getControl();
if(_e8){
_e8._childRemoving(_e7);
}
Array.remove(this._array,_e7);
if(_e8){
_e8._childRemoved(_e7,this._parent);
}
_e7.set_parent(null);
_e7._control=null;
},removeAt:function(_e9){
var _ea=this.getItem(_e9);
if(_ea){
this.remove(_ea);
}
},clear:function(){
var _eb=this._parent._getControl();
if(_eb){
_eb._logClearing(this._parent);
_eb._childrenCleared(this._parent);
}
this._array=new Array();
},get_count:function(){
return this._array.length;
},getItem:function(_ec){
return this._array[_ec];
},indexOf:function(_ed){
return Array.indexOf(this._array,_ed);
},forEach:function(_ee){
for(var i=0,_f0=this.get_count();i<_f0;i++){
_ee(this._array[i]);
}
}};
Telerik.Web.UI.ControlItemCollection.registerClass("Telerik.Web.UI.ControlItemCollection");
function WebForm_CallbackComplete(){
for(var i=0;i<__pendingCallbacks.length;i++){
var _f2=__pendingCallbacks[i];
if(_f2&&_f2.xmlRequest&&(_f2.xmlRequest.readyState==4)){
__pendingCallbacks[i]=null;
WebForm_ExecuteCallback(_f2);
if(!_f2.async){
__synchronousCallBackIndex=-1;
}
var _f3="__CALLBACKFRAME"+i;
var _f4=document.getElementById(_f3);
if(_f4){
_f4.parentNode.removeChild(_f4);
}
}
}
}
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.ControlItemContainer=function(_f5){
Telerik.Web.UI.ControlItemContainer.initializeBase(this,[_f5]);
this._childControlsCreated=false;
this._enabled=true;
this._log=new Telerik.Web.UI.ChangeLog();
this._enableClientStatePersistence=false;
this._eventMap=new Telerik.Web.UI.EventMap();
this._attributes=new Telerik.Web.UI.AttributeCollection(this);
this._children=null;
};
Telerik.Web.UI.ControlItemContainer.prototype={initialize:function(){
Telerik.Web.UI.ControlItemContainer.callBaseMethod(this,"initialize");
this._ensureChildControls();
this._log.initialize();
this._eventMap.initialize(this);
},dispose:function(){
this._eventMap.dispose();
for(var i=0;i<this._getChildren().get_count();i++){
this._getChildren().getItem(i)._dispose();
}
Telerik.Web.UI.ControlItemContainer.callBaseMethod(this,"dispose");
},trackChanges:function(){
this._enableClientStatePersistence=true;
},set_enabled:function(_f7){
this._enabled=_f7;
},get_enabled:function(){
return this._enabled;
},commitChanges:function(){
this.updateClientState();
this._enableClientStatePersistence=false;
},get_attributes:function(){
return this._attributes;
},set_attributes:function(_f8){
this._attributes._load(_f8);
},_getChildren:function(){
this._ensureChildControls();
return this._children;
},_extractErrorMessage:function(_f9){
if(_f9.get_message){
return _f9.get_message();
}else{
return _f9.replace(/(\d*\|.*)/,"");
}
},_notifyPropertyChanged:function(_fa,_fb){
},_childInserting:function(_fc,_fd,_fe){
},_childInserted:function(_ff,item,_101){
if(!_101._childControlsCreated){
return;
}
if(!_101.get_element()){
return;
}
itemElement=item._createDomElement();
var _102=_101.get_childListElement();
if(!_102){
_102=_101._createChildListElement();
}
var _103=item.get_nextSibling();
var _104=_103?_103.get_element():null;
_101.get_childListElement().insertBefore(itemElement,_104);
if(!item.get_element()){
item.set_element(itemElement);
item._initializeRenderedItem();
}else{
item.set_element(itemElement);
}
},_childrenCleared:function(_105){
for(var i=0;i<_105._getChildren().get_count();i++){
_105._getChildren().getItem(i)._dispose();
}
var _107=_105.get_childListElement();
if(_107){
_107.innerHTML="";
}
},_childRemoving:function(_108){
this._logRemoving(_108);
},_childRemoved:function(item,_10a){
item._dispose();
},_createChildListElement:function(){
throw Error.notImplemeneted();
},_createDomElement:function(){
throw Error.notImplemented();
},_getControl:function(){
return this;
},_logInserted:function(item){
if(!item.get_parent()._childControlsCreated||!this._enableClientStatePersistence){
return;
}
this._log.logInsert(item);
var _10c=item._getAllItems();
for(var i=0;i<_10c.length;i++){
this._log.logInsert(_10c[i]);
}
},_logRemoving:function(item){
if(this._enableClientStatePersistence){
this._log.logDelete(item);
}
},_logClearing:function(item){
if(this._enableClientStatePersistence){
this._log.logClear(item);
}
},_itemPropertyChanged:function(item,_111,_112){
if(this._enableClientStatePersistence){
this._log.logPropertyChanged(item,_111,_112);
}
},_ensureChildControls:function(){
if(!this._childControlsCreated){
this._createChildControls();
this._childControlsCreated=true;
}
},_extractItemFromDomElement:function(_113){
this._ensureChildControls();
while(_113&&_113.nodeType!==9){
if(_113._item&&this._verifyChildType(_113._itemTypeName)){
return _113._item;
}
_113=_113.parentNode;
}
return null;
},_verifyChildType:function(_114){
return _114===this._childTypeName;
},_getAllItems:function(){
var _115=[];
for(var i=0;i<this._getChildren().get_count();i++){
var item=this._getChildren().getItem(i);
Array.add(_115,item);
Array.addRange(_115,item._getAllItems());
}
return _115;
},_findItemByText:function(text){
var _119=this._getAllItems();
for(var i=0;i<_119.length;i++){
if(_119[i].get_text()==text){
return _119[i];
}
}
return null;
},_findItemByValue:function(_11b){
var _11c=this._getAllItems();
for(var i=0;i<_11c.length;i++){
if(_11c[i].get_value()==_11b){
return _11c[i];
}
}
return null;
},_findItemByAttribute:function(_11e,_11f){
var _120=this._getAllItems();
for(var i=0;i<_120.length;i++){
if(_120[i].get_attributes().getAttribute(_11e)==_11f){
return _120[i];
}
}
return null;
},_findItemByHierarchicalIndex:function(_122){
var _123=null;
var _124=this;
var _125=_122.split(":");
for(var i=0;i<_125.length;i++){
var _127=parseInt(_125[i]);
if(_124._getChildren().get_count()<=_127){
return null;
}
_123=_124._getChildren().getItem(_127);
_124=_123;
}
return _123;
}};
Telerik.Web.UI.ControlItemContainer.registerClass("Telerik.Web.UI.ControlItemContainer",Telerik.Web.UI.RadWebControl);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.EventMap=function(){
this._owner=null;
this._element=null;
this._eventMap={};
this._onDomEventDelegate=null;
};
Telerik.Web.UI.EventMap.prototype={initialize:function(_128,_129){
this._owner=_128;
if(!_129){
_129=this._owner.get_element();
}
this._element=_129;
},dispose:function(){
if(this._onDomEventDelegate){
for(var _12a in this._eventMap){
$removeHandler(this._element,_12a,this._onDomEventDelegate);
}
this._onDomEventDelegate=null;
}
},addHandlerForClassName:function(_12b,_12c,_12d){
if(typeof (this._eventMap[_12b])=="undefined"){
this._eventMap[_12b]={};
$addHandler(this._element,_12b,this._getDomEventDelegate());
}
var _12e=this._eventMap[_12b];
_12e[_12c]=_12d;
},_onDomEvent:function(e){
var _130=this._eventMap[e.type];
if(!_130){
return;
}
var _131=e.target;
while(_131&&_131.nodeType!==9){
var _132=_131.className;
var _133=_132.indexOf(" ");
if(_133>=0){
_132=_132.substr(0,_133);
}
var _134=_130[_132];
if(_134){
this._fillEventFields(e,_131);
if(_134.call(this._owner,e)!=true){
if(!_131.parentNode){
e.stopPropagation();
}
return;
}
}
if(_131==this._element){
return;
}
_131=_131.parentNode;
}
},_fillEventFields:function(e,_136){
e.eventMapTarget=_136;
if(e.rawEvent.relatedTarget){
e.eventMapRelatedTarget=e.rawEvent.relatedTarget;
}else{
if(e.type=="mouseover"){
e.eventMapRelatedTarget=e.rawEvent.fromElement;
}else{
e.eventMapRelatedTarget=e.rawEvent.toElement;
}
}
if(!e.eventMapRelatedTarget){
return;
}
try{
var _137=e.eventMapRelatedTarget.className;
}
catch(ex){
e.eventMapRelatedTarget=this._element;
}
},_getDomEventDelegate:function(){
if(!this._onDomEventDelegate){
this._onDomEventDelegate=Function.createDelegate(this,this._onDomEvent);
}
return this._onDomEventDelegate;
}};
Telerik.Web.UI.EventMap.registerClass("Telerik.Web.UI.EventMap");
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.Overlay=function(_138){
this._targetElement=_138;
this._element=null;
};
Telerik.Web.UI.Overlay.IsSupported=function(){
return $telerik.isIE;
};
Telerik.Web.UI.Overlay.prototype={initialize:function(){
var _139=document.createElement("div");
_139.innerHTML="<iframe>Your browser does not support inline frames or is currently configured not to display inline frames.</iframe>";
this._element=_139.firstChild;
this._element.src="javascript:'';";
this._targetElement.parentNode.insertBefore(this._element,this._targetElement);
if(this._targetElement.style.zIndex>0){
this._element.style.zIndex=this._targetElement.style.zIndex-1;
}
this._element.style.position="absolute";
this._element.style.border="0px";
this._element.frameBorder=0;
this._element.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
this._element.tabIndex=-1;
this.updatePosition();
},dispose:function(){
if(this._element.parentNode){
this._element.parentNode.removeChild(this._element);
}
this._targetElement=null;
this._element=null;
},get_targetElement:function(){
return this._targetElement;
},set_targetElement:function(_13a){
this._targetElement=_13a;
},updatePosition:function(){
this._element.style.top=this._toUnit(this._targetElement.style.top);
this._element.style.left=this._toUnit(this._targetElement.style.left);
this._element.style.width=this._targetElement.offsetWidth+"px";
this._element.style.height=this._targetElement.offsetHeight+"px";
},_toUnit:function(_13b){
if(!_13b){
return "0px";
}
return parseInt(_13b)+"px";
}};
Telerik.Web.UI.Overlay.registerClass("Telerik.Web.UI.Overlay",null,Sys.IDisposable);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI._PostbackWrapper=function(){
this._doPostbackReplaced=false;
this._events=new Sys.EventHandlerList();
this._originalDoPostBack=null;
this._onWindowUnloadHandler=null;
this._postbackEventRaised=false;
this._beginRequestHandler=null;
this._onsubmitHandler=null;
this._partialRenderingEnabledChecked=false;
this._partialRenderingEnabled=false;
};
Telerik.Web.UI._PostbackWrapper.prototype={initialize:function(){
this._onWindowUnloadHandler=Function.createDelegate(this,this._onWindowUnload);
Sys.UI.DomEvent.addHandler(window,"unload",this._onWindowUnloadHandler);
},_raiseBeforePostback:function(_13c){
var _13d=this._events.getHandler("beforePostback");
if(_13d){
if(!_13c){
_13c=Sys.EventArgs.Empty;
}
_13d(this,_13c);
}
this._postbackEventRaised=true;
},_doPostback:function(_13e,_13f){
this._raiseBeforePostback(Sys.EventArgs.Empty);
this._originalDoPostBack(_13e,_13f);
},_onSubmit:function(){
if(!this._postbackEventRaised){
this._raiseBeforePostback(Sys.EventArgs.Empty);
}
return true;
},_endRequest:function(){
this._postbackEventRaised=false;
},_isPartialRenderingEnabled:function(){
if(!this._partialRenderingEnabledChecked){
this._partialRenderingEnabled=true;
if(typeof (Sys)=="undefined"){
this._partialRenderingEnabled=false;
}else{
if(typeof (Sys.WebForms)=="undefined"){
this._partialRenderingEnabled=false;
}else{
if(typeof (Sys.WebForms.PageRequestManager)=="undefined"){
this._partialRenderingEnabled=false;
}
}
}
this._partialRenderingEnabledChecked=true;
}
return this._partialRenderingEnabled;
},add_beforePostback:function(_140){
if(!this._isPartialRenderingEnabled()){
return;
}
if(!this._onsubmitHandler){
this._onsubmitHandler=Function.createDelegate(this,this._onSubmit);
Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements,this._onsubmitHandler);
}
if(!this._endRequestHandler){
this._endRequestHandler=Function.createDelegate(this,this._endRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandler);
}
if(!this._doPostbackReplaced){
this._replaceDoPostback();
}
this._events.addHandler("beforePostback",_140);
},remove_beforePostback:function(_141){
this._events.removeHandler("beforePostback",_141);
},_replaceDoPostback:function(){
if(typeof (Page_IsValid)!="undefined"){
return;
}
this._originalDoPostBack=window.__doPostBack;
if(this._originalDoPostBack){
window.__doPostBack=Function.createDelegate(this,this._doPostback);
}
this._doPostbackReplaced=true;
},_onWindowUnload:function(_142){
this.dispose();
},dispose:function(){
Sys.UI.DomEvent.removeHandler(window,"unload",this._onWindowUnloadHandler);
if(this._endRequestHandler){
Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);
this._endRequestHandler=null;
}
if(this._originalDoPostBack){
window.__doPostBack=this._originalDoPostBack;
this._originalDoPostBack=null;
}
}};
Telerik.Web.UI._PostbackWrapper.registerClass("Telerik.Web.UI._PostbackWrapper");
Telerik.Web.UI.PostbackWrapper=new Telerik.Web.UI._PostbackWrapper();
Telerik.Web.UI.PostbackWrapper.initialize();
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.SlideDirection=function(){
};
Telerik.Web.UI.SlideDirection.prototype={Up:1,Down:2,Left:3,Right:4};
Telerik.Web.UI.SlideDirection.registerEnum("Telerik.Web.UI.SlideDirection");
Telerik.Web.UI.Slide=function(_143,_144,_145,_146){
this._fps=60;
this._animatedElement=_143;
this._element=_143.parentNode;
this._expandAnimation=_144;
this._collapseAnimation=_145;
this._direction=Telerik.Web.UI.SlideDirection.Down;
this._animation=null;
this._expanding=null;
if(_146==null){
this._enableOverlay=true;
}else{
this._enableOverlay=_146;
}
this._events=null;
this._overlay=null;
this._animationEndedDelegate=null;
this._expandAnimationStartedDelegate=null;
this._updateOverlayDelegate=null;
};
Telerik.Web.UI.Slide.prototype={initialize:function(){
if(Telerik.Web.UI.Overlay.IsSupported()&&this._enableOverlay){
var _147=this.get_animatedElement();
this._overlay=new Telerik.Web.UI.Overlay(_147);
this._overlay.initialize();
}
this._animationEndedDelegate=Function.createDelegate(this,this._animationEnded);
this._expandAnimationStartedDelegate=Function.createDelegate(this,this._expandAnimationStarted);
this._updateOverlayDelegate=Function.createDelegate(this,this._updateOverlay);
},dispose:function(){
this._animatedElement=null;
this._events=null;
this._disposeAnimation();
if(this._overlay){
this._overlay.dispose();
this._overlay=null;
}
this._animationEndedDelegate=null;
this._expandAnimationStartedDelegate=null;
this._updateOverlayDelegate=null;
},get_element:function(){
return this._element;
},get_animatedElement:function(){
return this._animatedElement;
},set_animatedElement:function(_148){
this._animatedElement=_148;
if(this._overlay){
this._overlay.set_targetElement(this._animatedElement);
}
},get_direction:function(){
return this._direction;
},set_direction:function(_149){
this._direction=_149;
},get_events:function(){
if(!this._events){
this._events=new Sys.EventHandlerList();
}
return this._events;
},updateSize:function(){
var _14a=this.get_animatedElement();
var _14b=this.get_element();
var top=0;
if(_14a.style.top){
top=Math.max(parseInt(_14a.style.top),0);
}
var left=0;
if(_14a.style.left){
left=Math.max(parseInt(_14a.style.left),0);
}
var _14e=_14a.offsetHeight+top;
if(_14b.style.height!=_14e+"px"){
_14b.style.height=Math.max(_14e,0)+"px";
}
var _14f=_14a.offsetWidth+left;
if(_14b.style.width!=_14f+"px"){
_14b.style.width=Math.max(_14f,0)+"px";
}
if(this._overlay){
this._updateOverlay();
}
},show:function(){
this._showElement();
},expand:function(){
this._expanding=true;
this.get_animatedElement().style.visibility="hidden";
this._resetState(true);
var _150=null;
var _151=null;
switch(this.get_direction()){
case Telerik.Web.UI.SlideDirection.Up:
case Telerik.Web.UI.SlideDirection.Left:
_150=parseInt(this._getSize());
_151=0;
break;
case Telerik.Web.UI.SlideDirection.Down:
case Telerik.Web.UI.SlideDirection.Right:
_150=parseInt(this._getPosition());
_151=0;
break;
}
if(this._animation){
this._animation.stop();
}
if((_150==_151)||(this._expandAnimation.get_type()==Telerik.Web.UI.AnimationType.None)){
this._expandAnimationStarted();
this._setPosition(_151);
this._animationEnded();
this.get_animatedElement().style.visibility="visible";
}else{
this._playAnimation(this._expandAnimation,_150,_151);
}
},collapse:function(){
this._resetState();
this._expanding=false;
var _152=null;
var _153=null;
var size=parseInt(this._getSize());
var _155=parseInt(this._getPosition());
switch(this.get_direction()){
case Telerik.Web.UI.SlideDirection.Up:
case Telerik.Web.UI.SlideDirection.Left:
_152=0;
_153=size;
break;
case Telerik.Web.UI.SlideDirection.Down:
case Telerik.Web.UI.SlideDirection.Right:
_152=0;
_153=_155-size;
break;
}
if(this._animation){
this._animation.stop();
}
if((_152==_153)||(this._collapseAnimation.get_type()==Telerik.Web.UI.AnimationType.None)){
this._setPosition(_153);
this._animationEnded();
}else{
this._playAnimation(this._collapseAnimation,_152,_153);
}
},add_collapseAnimationEnded:function(_156){
this.get_events().addHandler("collapseAnimationEnded",_156);
},remove_collapseAnimationEnded:function(_157){
this.get_events().removeHandler("collapseAnimationEnded",_157);
},add_expandAnimationEnded:function(_158){
this.get_events().addHandler("expandAnimationEnded",_158);
},remove_expandAnimationEnded:function(_159){
this.get_events().removeHandler("expandAnimationEnded",_159);
},add_expandAnimationStarted:function(_15a){
this.get_events().addHandler("expandAnimationStarted",_15a);
},remove_expandAnimationStarted:function(_15b){
this.get_events().removeHandler("expandAnimationStarted",_15b);
},_playAnimation:function(_15c,_15d,_15e){
var _15f=_15c.get_duration();
var _160=this._getAnimatedStyleProperty();
var _161=Telerik.Web.UI.AnimationFunctions.CalculateAnimationPoints(_15c,_15d,_15e,this._fps);
var _162=this.get_animatedElement();
_162.style.visibility="visible";
if(this._animation){
this._animation.set_target(_162);
this._animation.set_duration(_15f/1000);
this._animation.set_propertyKey(_160);
this._animation.set_values(_161);
}else{
this._animation=new $TWA.DiscreteAnimation(_162,_15f/1000,this._fps,"style",_160,_161);
this._animation.add_started(this._expandAnimationStartedDelegate);
this._animation.add_ended(this._animationEndedDelegate);
if(this._overlay){
this._animation.add_onTick(this._updateOverlayDelegate);
}
}
this._animation.play();
},_animationEnded:function(){
if(this._expanding){
this.get_element().style.overflow="visible";
this._raiseEvent("expandAnimationEnded",Sys.EventArgs.Empty);
}else{
this.get_element().style.display="none";
this._raiseEvent("collapseAnimationEnded",Sys.EventArgs.Empty);
}
if(this._overlay){
this._updateOverlay();
}
},_expandAnimationStarted:function(){
this._raiseEvent("expandAnimationStarted",Sys.EventArgs.Empty);
},_updateOverlay:function(){
this._overlay.updatePosition();
},_showElement:function(){
var _163=this.get_animatedElement();
var _164=this.get_element();
if(!_164){
return;
}
if(!_164.style){
return;
}
_164.style.display="block";
_163.style.display="block";
_164.style.overflow="hidden";
},_resetState:function(_165){
this._stopAnimation();
this._showElement();
if(_165){
var _166=this.get_animatedElement();
switch(this.get_direction()){
case Telerik.Web.UI.SlideDirection.Up:
_166.style.top="0px";
break;
case Telerik.Web.UI.SlideDirection.Down:
_166.style.top=-_166.offsetHeight+"px";
break;
case Telerik.Web.UI.SlideDirection.Left:
_166.style.left=_166.offsetWidth+"px";
break;
case Telerik.Web.UI.SlideDirection.Right:
_166.style.left=-_166.offsetWidth+"px";
break;
default:
Error.argumentOutOfRange("direction",this.get_direction(),"Slide direction is invalid. Use one of the values in the Telerik.Web.UI.SlideDirection enumeration.");
break;
}
}
},_getSize:function(){
var _167=this.get_animatedElement();
switch(this.get_direction()){
case Telerik.Web.UI.SlideDirection.Up:
case Telerik.Web.UI.SlideDirection.Down:
return _167.offsetHeight;
break;
case Telerik.Web.UI.SlideDirection.Left:
case Telerik.Web.UI.SlideDirection.Right:
return _167.offsetWidth;
break;
default:
return 0;
}
},_setPosition:function(_168){
var _169=this.get_animatedElement();
var _16a=this._getAnimatedStyleProperty();
_169.style[_16a]=_168;
},_getPosition:function(){
var _16b=this.get_animatedElement();
var _16c=this._getAnimatedStyleProperty();
return _16b.style[_16c];
},_getAnimatedStyleProperty:function(){
switch(this.get_direction()){
case Telerik.Web.UI.SlideDirection.Up:
case Telerik.Web.UI.SlideDirection.Down:
return "top";
case Telerik.Web.UI.SlideDirection.Left:
case Telerik.Web.UI.SlideDirection.Right:
return "left";
}
},_stopAnimation:function(){
if(this._animation){
this._animation.stop();
}
},_disposeAnimation:function(){
if(this._animation){
this._animation.dispose();
this._animation=null;
}
},_raiseEvent:function(_16d,_16e){
var _16f=this.get_events().getHandler(_16d);
if(_16f){
if(!_16e){
_16e=Sys.EventArgs.Empty;
}
_16f(this,_16e);
}
}};
Telerik.Web.UI.Slide.registerClass("Telerik.Web.UI.Slide",null,Sys.IDisposable);


/* END Telerik.Web.UI.Common.Navigation.NavigationScripts.js */
/* START Telerik.Web.UI.TreeView.RadTreeViewScripts.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadTreeNodeEventArgs=function(_1,_2){
Telerik.Web.UI.RadTreeNodeEventArgs.initializeBase(this);
this._node=_1;
this._domEvent=_2;
};
Telerik.Web.UI.RadTreeNodeEventArgs.prototype={get_node:function(){
return this._node;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeNodeEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeEventArgs",Sys.EventArgs);
Telerik.Web.UI.RadTreeNodeCancelEventArgs=function(_3,_4){
Telerik.Web.UI.RadTreeNodeCancelEventArgs.initializeBase(this);
this._node=_3;
this._domEvent=_4;
};
Telerik.Web.UI.RadTreeNodeCancelEventArgs.prototype={get_node:function(){
return this._node;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeNodeCancelEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeCancelEventArgs",Sys.CancelEventArgs);
Telerik.Web.UI.RadTreeNodeErrorEventArgs=function(_5,_6){
Telerik.Web.UI.RadTreeNodeErrorEventArgs.initializeBase(this,[_5]);
this._errorMessage=_6;
};
Telerik.Web.UI.RadTreeNodeErrorEventArgs.prototype={get_errorMessage:function(){
return this._errorMessage;
}};
Telerik.Web.UI.RadTreeNodeErrorEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeErrorEventArgs",Telerik.Web.UI.RadTreeNodeCancelEventArgs);
Telerik.Web.UI.RadTreeNodeDraggingEventArgs=function(_7,_8){
Telerik.Web.UI.RadTreeNodeDraggingEventArgs.initializeBase(this,[_7,_8]);
};
Telerik.Web.UI.RadTreeNodeDraggingEventArgs.prototype={get_htmlElement:function(){
if(!this._domEvent){
return null;
}
return this._domEvent.target;
}};
Telerik.Web.UI.RadTreeNodeDraggingEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeDraggingEventArgs",Telerik.Web.UI.RadTreeNodeCancelEventArgs);
Telerik.Web.UI.RadTreeNodeDroppingEventArgs=function(_9,_a,_b,_c,_d){
Telerik.Web.UI.RadTreeNodeDroppingEventArgs.initializeBase(this);
this._sourceNodes=_9;
this._destNode=_a;
this._htmlElement=_b;
this._dropPosition=_c;
this._domEvent=_d;
};
Telerik.Web.UI.RadTreeNodeDroppingEventArgs.prototype={get_sourceNodes:function(){
return this._sourceNodes;
},get_sourceNode:function(){
return this._sourceNodes[0];
},get_destNode:function(){
return this._destNode;
},get_htmlElement:function(){
return this._htmlElement;
},set_htmlElement:function(_e){
this._htmlElement=_e;
},get_dropPosition:function(){
return this._dropPosition;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeNodeDroppingEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeDroppingEventArgs",Sys.CancelEventArgs);
Telerik.Web.UI.RadTreeNodeDroppedEventArgs=function(_f,_10){
Telerik.Web.UI.RadTreeNodeDroppedEventArgs.initializeBase(this);
this._sourceNodes=_f;
this._domEvent=_10;
};
Telerik.Web.UI.RadTreeNodeDroppedEventArgs.prototype={get_sourceNodes:function(){
return this._sourceNodes;
},get_sourceNode:function(){
return this._sourceNodes[0];
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeNodeDroppedEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeDroppedEventArgs",Sys.EventArgs);
Telerik.Web.UI.RadTreeViewContextMenuEventArgs=function(_11,_12,_13){
Telerik.Web.UI.RadTreeViewContextMenuEventArgs.initializeBase(this);
this._node=_11;
this._menu=_12;
this._domEvent=_13;
};
Telerik.Web.UI.RadTreeViewContextMenuEventArgs.prototype={get_node:function(){
return this._node;
},get_menu:function(){
return this._menu;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeViewContextMenuEventArgs.registerClass("Telerik.Web.UI.RadTreeViewContextMenuEventArgs",Sys.EventArgs);
Telerik.Web.UI.RadTreeViewContextMenuCancelEventArgs=function(_14,_15,_16){
Telerik.Web.UI.RadTreeViewContextMenuCancelEventArgs.initializeBase(this);
this._node=_14;
this._menu=_15;
this._domEvent=_16;
};
Telerik.Web.UI.RadTreeViewContextMenuCancelEventArgs.prototype={get_node:function(){
return this._node;
},get_menu:function(){
return this._menu;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeViewContextMenuCancelEventArgs.registerClass("Telerik.Web.UI.RadTreeViewContextMenuCancelEventArgs",Sys.CancelEventArgs);
Telerik.Web.UI.RadTreeViewContextMenuItemEventArgs=function(_17,_18,_19){
Telerik.Web.UI.RadTreeViewContextMenuItemEventArgs.initializeBase(this);
this._node=_17;
this._menuItem=_18;
this._domEvent=_19;
};
Telerik.Web.UI.RadTreeViewContextMenuItemEventArgs.prototype={get_node:function(){
return this._node;
},get_menuItem:function(){
return this._menuItem;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeViewContextMenuItemEventArgs.registerClass("Telerik.Web.UI.RadTreeViewContextMenuItemEventArgs",Sys.EventArgs);
Telerik.Web.UI.RadTreeViewContextMenuItemCancelEventArgs=function(_1a,_1b,_1c){
Telerik.Web.UI.RadTreeViewContextMenuItemCancelEventArgs.initializeBase(this);
this._node=_1a;
this._menuItem=_1b;
this._domEvent=_1c;
};
Telerik.Web.UI.RadTreeViewContextMenuItemCancelEventArgs.prototype={get_node:function(){
return this._node;
},get_menuItem:function(){
return this._menuItem;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.RadTreeViewContextMenuItemCancelEventArgs.registerClass("Telerik.Web.UI.RadTreeViewContextMenuItemCancelEventArgs",Sys.CancelEventArgs);
Telerik.Web.UI.RadTreeNodeEditingEventArgs=function(_1d,_1e){
Telerik.Web.UI.RadTreeNodeEditingEventArgs.initializeBase(this,[_1d]);
this._newText=_1e;
};
Telerik.Web.UI.RadTreeNodeEditingEventArgs.prototype={get_newText:function(){
return this._newText;
}};
Telerik.Web.UI.RadTreeNodeEditingEventArgs.registerClass("Telerik.Web.UI.RadTreeNodeEditingEventArgs",Telerik.Web.UI.RadTreeNodeCancelEventArgs);
Telerik.Web.UI.RadTreeNodePopulatingEventArgs=function(_1f,_20){
Telerik.Web.UI.RadTreeNodePopulatingEventArgs.initializeBase(this,[_1f]);
this._context=_20;
};
Telerik.Web.UI.RadTreeNodePopulatingEventArgs.prototype={get_context:function(){
return this._context;
}};
Telerik.Web.UI.RadTreeNodePopulatingEventArgs.registerClass("Telerik.Web.UI.RadTreeNodePopulatingEventArgs",Telerik.Web.UI.RadTreeNodeCancelEventArgs);
Telerik.Web.UI.RadTreeNodePopulatedEventArgs=function(_21){
Telerik.Web.UI.RadTreeNodePopulatedEventArgs.initializeBase(this,[_21]);
};
Telerik.Web.UI.RadTreeNodePopulatedEventArgs.registerClass("Telerik.Web.UI.RadTreeNodePopulatedEventArgs",Telerik.Web.UI.RadTreeNodeEventArgs);
Telerik.Web.UI.RadTreeNodePopulationFailedEventArgs=function(_22,_23){
Telerik.Web.UI.RadTreeNodePopulationFailedEventArgs.initializeBase(this,[_22]);
this._errorMessage=_23;
};
Telerik.Web.UI.RadTreeNodePopulationFailedEventArgs.prototype={get_errorMessage:function(){
return this._errorMessage;
}};
Telerik.Web.UI.RadTreeNodePopulationFailedEventArgs.registerClass("Telerik.Web.UI.RadTreeNodePopulationFailedEventArgs",Telerik.Web.UI.RadTreeNodeCancelEventArgs);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadTreeNode=function(){
Telerik.Web.UI.RadTreeNode.initializeBase(this);
this._fps=60;
this._highLighted=false;
this._originalTextHtml="";
this._originalText="";
this._editing=false;
this._resolvedContextMenuID="";
this._contextMenu=null;
this._nodeListElement=null;
this._inputElement=null;
this._contentElement=null;
this._toggleElement=null;
this._textElement=null;
this._checkBoxElement=null;
this._loadingStatusElement=null;
this._auxElement=null;
this._imageElement=null;
this._linkElement=null;
this._animation=null;
this._expanding=null;
this._animationEndedDelegate=null;
};
Telerik.Web.UI.RadTreeNode.prototype={get_navigateUrl:function(){
return this._getNavigateUrl();
},set_navigateUrl:function(_24){
this._properties.setValue("navigateUrl",_24,true);
if(this.get_linkElement()){
this.get_linkElement().href=_24;
}
},get_checkable:function(){
return this._properties.getValue("checkable",true)==true;
},set_checkable:function(_25){
this._properties.setValue("checkable",_25,true);
},get_linkElement:function(){
if(!this._linkElement){
var _26=this.get_textElement();
if(_26&&_26.tagName.toLowerCase()=="a"){
this._linkElement=_26;
}
}
return this._linkElement;
},set_enabled:function(_27){
Telerik.Web.UI.RadTreeNode.callBaseMethod(this,"set_enabled",[_27]);
if(_27){
this._removeClassFromContentElement("rtDisabled");
this._removeClassFromContentElement(this.get_disabledCssClass());
if(this.get_selected()){
this._addClassToContentElement("rtSelected");
this._addClassToContentElement(this.get_selectedCssClass());
}
}else{
this._addClassToContentElement("rtDisabled");
this._addClassToContentElement(this.get_disabledCssClass());
if(this.get_selected()){
this._removeClassFromContentElement("rtSelected");
this._removeClassFromContentElement(this.get_selectedCssClass());
}
}
if(this.get_checkBoxElement()){
this.get_checkBoxElement().disabled=!_27;
}
this._updateImageUrl();
},get_disabledImageUrl:function(){
if(this._disabledImageUrl){
return this._disabledImageUrl;
}
if(this._disabledImageUrl=this._properties.getValue("disabledImageUrl",null)){
return this._disabledImageUrl;
}
this._disabledImageUrl=this._getCurrentImageUrl();
return this._disabledImageUrl;
},set_disabledImageUrl:function(_28){
this._disabledImageUrl=_28;
this._properties.setValue("disabledImageUrl",_28,true);
this._updateImageUrl();
},get_expandedImageUrl:function(){
if(this._expandedImageUrl){
return this._expandedImageUrl;
}
if(this._expandedImageUrl=this._properties.getValue("expandedImageUrl",null)){
return this._expandedImageUrl;
}
this._expandedImageUrl=this._getCurrentImageUrl();
return this._expandedImageUrl;
},set_expandedImageUrl:function(_29){
this._expandedImageUrl=_29;
this._properties.setValue("expandedImageUrl",_29,true);
this._updateImageUrl();
},get_selectedImageUrl:function(){
if(this._selectedImageUrl){
return this._selectedImageUrl;
}
if(this._selectedImageUrl=this._properties.getValue("selectedImageUrl",null)){
return this._selectedImageUrl;
}
this._selectedImageUrl=this._getCurrentImageUrl();
return this._selectedImageUrl;
},set_selectedImageUrl:function(_2a){
this._selectedImageUrl=_2a;
this._properties.setValue("selectedImageUrl",_2a,true);
this._updateImageUrl();
},get_imageUrl:function(){
if(this._imageUrl){
return this._imageUrl;
}
if(this._imageUrl=this._properties.getValue("imageUrl",null)){
return this._imageUrl;
}
this._imageUrl=this._getCurrentImageUrl();
return this._imageUrl;
},set_imageUrl:function(_2b){
this._imageUrl=_2b;
this._properties.setValue("imageUrl",_2b,true);
this._updateImageUrl();
},get_hoveredImageUrl:function(){
return this._properties.getValue("hoveredImageUrl",null);
},set_hoveredImageUrl:function(_2c){
this._properties.setValue("hoveredImageUrl",_2c,true);
this._updateImageUrl();
},_getCurrentImageUrl:function(){
var _2d=null;
var _2e=this.get_imageElement();
if(_2e){
_2d=_2e.src;
}
return _2d;
},_getImageUrlToApply:function(){
var url=this.get_imageUrl();
var _30=this.get_expandedImageUrl();
var _31=this.get_disabledImageUrl();
var _32=this.get_selectedImageUrl();
if(this.get_expanded()&&_30){
url=_30;
}
if(this._highLighted&&this.get_hoveredImageUrl()){
url=this.get_hoveredImageUrl();
}
if(this.get_selected()&&_32){
url=_32;
}
if(!this.get_enabled()&&_31){
url=_31;
}
return url;
},_updateImageUrl:function(){
if(!this.get_element()){
return;
}
var url=this._getImageUrlToApply();
if(!url){
return;
}
var _34=this.get_imageElement();
if(!_34){
_34=this._createImageElement();
}
_34.src=url;
},_createImageElement:function(){
this._imageElement=document.createElement("img");
this._imageElement.className="rtImg";
var _35=this.get_contentElement();
_35.insertBefore(this._imageElement,this.get_textElement());
return this._imageElement;
},get_category:function(){
return this._properties.getValue("category",null);
},set_category:function(_36){
this._properties.setValue("category",_36,true);
},get_cssClass:function(){
return this._properties.getValue("cssClass",null);
},set_cssClass:function(_37){
this._removeClassFromContentElement(this.get_cssClass());
this._properties.setValue("cssClass",_37,true);
this._addClassToContentElement(_37);
},get_disabledCssClass:function(){
return this._properties.getValue("disabledCssClass",null);
},set_disabledCssClass:function(_38){
this._properties.setValue("disabledCssClass",_38,true);
},get_selectedCssClass:function(){
return this._properties.getValue("selectedCssClass",null);
},set_selectedCssClass:function(_39){
this._properties.setValue("selectedCssClass",_39,true);
},get_hoveredCssClass:function(){
return this._properties.getValue("hoveredCssClass",null);
},set_hoveredCssClass:function(_3a){
this._properties.setValue("hoveredCssClass",_3a,true);
},get_childListElement:function(){
if(!this._nodeListElement){
var _3b=this.get_element();
if(!_3b){
return null;
}
this._nodeListElement=$telerik.getFirstChildByTagName(_3b,"ul",1);
}
return this._nodeListElement;
},get_contentElement:function(){
if(!this._contentElement){
var _3c=this.get_element();
if(!_3c){
return null;
}
this._contentElement=$telerik.getFirstChildByTagName(_3c,"div",0);
}
return this._contentElement;
},get_contextMenuID:function(){
return this._properties.getValue("contextMenuID","");
},get_resolvedContextMenuID:function(){
if(this._resolvedContextMenuID==""){
this._resolvedContextMenuID=this.get_treeView()._resolveContextMenuID(this.get_contextMenuID());
}
return this._resolvedContextMenuID;
},set_contextMenuID:function(_3d){
this._properties.setValue("contextMenuID",_3d,true);
this._resolvedContextMenuID="";
this._contextMenu=null;
},get_textElement:function(){
if(!this._textElement){
var _3e=this.get_contentElement();
if(!_3e){
return null;
}
this._textElement=$telerik.getChildByClassName(_3e,"rtIn",0);
}
return this._textElement;
},get_toggleElement:function(){
if(!this._toggleElement){
var _3f=this.get_contentElement();
if(!_3f){
return null;
}
this._toggleElement=$telerik.getChildByClassName(_3f,"rtPlus",0);
if(!this._toggleElement){
this._toggleElement=$telerik.getChildByClassName(_3f,"rtMinus",0);
}
}
return this._toggleElement;
},get_inputElement:function(){
return this._inputElement;
},get_checkBoxElement:function(){
if(!this._checkBoxElement){
var _40=this.get_contentElement();
if(!_40){
return null;
}
this._checkBoxElement=$telerik.getChildByClassName(_40,"rtChk",0);
}
return this._checkBoxElement;
},get_imageElement:function(){
if(!this._imageElement){
var _41=this.get_contentElement();
if(!_41){
return null;
}
this._imageElement=$telerik.getChildByClassName(_41,"rtImg",0);
}
return this._imageElement;
},get_previousNode:function(){
return this.get_previousSibling();
},get_nextNode:function(){
return this.get_nextSibling();
},expand:function(){
this.set_expanded(true);
},collapse:function(){
this.set_expanded(false);
},toggle:function(){
this.set_expanded(!this.get_expanded());
},highlight:function(){
this._highlight();
},unhighlight:function(){
this._unhighlight();
},select:function(){
this.set_selected(true);
var _42=this.get_treeView();
_42._postClickCommand(this);
},unselect:function(){
this.set_selected(false);
},enable:function(){
this.set_enabled(true);
},disable:function(){
this.set_enabled(false);
},check:function(){
this.set_checked(true);
},uncheck:function(){
this.set_checked(false);
},startEdit:function(){
this._startEdit();
},endEdit:function(){
this._endEdit(true);
},scrollIntoView:function(){
var _43=this._getControl();
if(_43){
_43._scrollToNode(this);
}
},_showContextMenu:function(_44){
var _45=this.get_contextMenu();
if(_45&&this.get_enableContextMenu()){
_45.show(_44);
}
},_shouldInitializeChild:function(_46){
return _46.get_expanded();
},_highlight:function(){
if(!this.get_isEnabled()){
return;
}
this._addClassToContentElement("rtHover");
this._addClassToContentElement(this.get_hoveredCssClass());
this._highLighted=true;
this._updateImageUrl();
},_unhighlight:function(){
this._removeClassFromContentElement("rtHover");
this._removeClassFromContentElement(this.get_hoveredCssClass());
this._highLighted=false;
this._updateImageUrl();
},_getChildElements:function(){
return $telerik.getChildrenByTagName(this.get_childListElement(),"li");
},get_contextMenu:function(){
if(!this._contextMenu){
if(this.get_contextMenuID()==""){
var _47=this.get_treeView().get_contextMenuIDs();
if(_47.length==0){
return null;
}
var _48=$find(this.get_treeView()._resolveContextMenuID(_47[0]));
if(!_48){
var _48=$find(_47[0]);
}
this._contextMenu=_48;
}else{
this._contextMenu=$find(this.get_resolvedContextMenuID());
}
}
return this._contextMenu;
},get_enableContextMenu:function(){
return this._properties.getValue("enableContextMenu",true);
},set_enableContextMenu:function(_49){
this._properties.setValue("enableContextMenu",_49,true);
},_initialize:function(_4a,_4b){
Telerik.Web.UI.RadTreeNode.callBaseMethod(this,"_initialize",[_4a,_4b]);
this._properties.load(_4a);
if(this.get_expanded()){
this._ensureChildControls();
}
this._animationEndedDelegate=Function.createDelegate(this,this._animationEnded);
},_initializeRenderedItem:function(){
Telerik.Web.UI.RadTreeNode.callBaseMethod(this,"_initializeRenderedItem");
this._animationEndedDelegate=Function.createDelegate(this,this._animationEnded);
},showLoadingStatus:function(_4c,_4d){
this._loadingStatusElement=document.createElement("span");
if(_4d==Telerik.Web.UI.TreeViewLoadingStatusPosition.BeforeNodeText){
this._loadingStatusElement.className="rtLoadingBefore";
this.get_textElement().insertBefore(this._loadingStatusElement,this.get_textElement().firstChild);
}else{
if(_4d==Telerik.Web.UI.TreeViewLoadingStatusPosition.AfterNodeText){
this._loadingStatusElement.className="rtLoadingAfter";
this.get_textElement().appendChild(this._loadingStatusElement);
}else{
if(_4d==Telerik.Web.UI.TreeViewLoadingStatusPosition.BelowNodeText){
this._loadingStatusElement.className="rtLoadingBelow";
this.get_textElement().appendChild(this._loadingStatusElement);
}
}
}
this._loadingStatusElement.innerHTML=_4c;
},get_loadingStatusElement:function(){
return this._loadingStatusElement;
},hideLoadingStatus:function(){
if(!this._loadingStatusElement){
return;
}
this._loadingStatusElement.parentNode.removeChild(this._loadingStatusElement);
this._loadingStatusElement=null;
},get_postBack:function(){
return this._properties.getValue("postBack",true)==true;
},set_postBack:function(_4e){
this._properties.setValue("postBack",_4e);
},get_expandMode:function(){
return this._properties.getValue("expandMode",Telerik.Web.UI.TreeNodeExpandMode.ClientSide);
},set_expandMode:function(_4f){
this._properties.setValue("expandMode",_4f,true);
},_getData:function(){
var _50=this._properties._data;
if(this.get_disabledImageUrl()!==null){
_50["disabledImageUrl"]=this.get_disabledImageUrl();
}
if(this.get_expandedImageUrl()!==null){
_50["expandedImageUrl"]=this.get_expandedImageUrl();
}
if(this.get_hoveredImageUrl()!==null){
_50["hoveredImageUrl"]=this.get_hoveredImageUrl();
}
if(this.get_selectedImageUrl()!==null){
_50["selectedImageUrl"]=this.get_selectedImageUrl();
}
if(this.get_imageUrl()!==null){
_50["imageUrl"]=this.get_imageUrl();
}
if(this.get_navigateUrl()!==null){
_50["navigateUrl"]=this.get_navigateUrl();
}
_50["text"]=this.get_text();
if(this.get_attributes().get_count()>0){
_50["attributes"]=this.get_attributes()._data;
}
delete _50.items;
return _50;
},_createItemCollection:function(){
var _51=new Telerik.Web.UI.RadTreeNodeCollection(this);
Telerik.Web.UI.RadTreeView._createNodesFromJson(this,_51);
return _51;
},_hasChildren:function(){
return (this.get_nodes().get_count()>0);
},get_nextVisibleNode:function(){
if(this.get_nodes().get_count()>0&&this.get_expanded()){
return this.get_nodes().getNode(0);
}
var _52=this.get_nextNode();
if(_52){
return _52;
}
var _53=this.get_parent();
while(_53&&!Telerik.Web.UI.RadTreeView.isInstanceOfType(_53)){
var _54=_53.get_nextNode();
if(_54){
return _54;
}
_53=_53.get_parent();
}
return null;
},get_prevVisibleNode:function(){
var _55=this.get_previousNode();
if(_55){
if(_55.get_nodes().get_count()>0&&_55.get_expanded()){
return _55.get_lastVisibleChild();
}
return this.get_previousNode();
}
var _56=this.get_parent();
if(_56&&!Telerik.Web.UI.RadTreeView.isInstanceOfType(_56)){
return _56;
}
return null;
},get_lastVisibleChild:function(){
var _57=this.get_lastChild();
while(_57._hasChildren()&&_57.get_expanded()){
_57=_57.get_lastChild();
}
return _57;
},_getNextSelectableNode:function(){
var _58=this.get_nextVisibleNode();
while(_58&&!_58.get_enabled()){
_58=_58.get_nextVisibleNode();
}
return _58;
},_getPrevSelectableNode:function(){
var _59=this.get_prevVisibleNode();
while(_59&&!_59.get_enabled()){
_59=_59.get_prevVisibleNode();
}
return _59;
},get_lastChild:function(){
if(this._hasChildren()){
return this.get_nodes().getNode(this.get_nodes().get_count()-1);
}
return null;
},get_nodeData:function(){
return this.get_itemData();
},get_selected:function(){
return this._properties.getValue("selected",false)==true;
},set_selected:function(_5a){
if(!this.get_isEnabled()){
return;
}
if(this.get_selected()==_5a){
return;
}
this._properties.setValue("selected",_5a);
var _5b=this.get_treeView();
if(!_5b){
return;
}
if(_5a){
if(!_5b.get_multipleSelect()){
_5b._clearSelectedNodes();
}
if(!this._editing){
this.get_treeView()._endEdit(false);
}
this._select(_5b);
}else{
this._unselect(_5b);
}
this._updateImageUrl();
},_loadFromDictionary:function(_5c){
Telerik.Web.UI.RadTreeNode.callBaseMethod(this,"_loadFromDictionary",[_5c]);
if(typeof (_5c.ExpandMode)!="undefined"){
this.set_expandMode(_5c.ExpandMode);
}
if(typeof (_5c.NavigateUrl)!="undefined"&&_5c.NavigateUrl){
this.set_navigateUrl(_5c.NavigateUrl);
}
if(typeof (_5c.PostBack)!="undefined"&&!_5c.PostBack){
this.set_postBack(_5c.PostBack);
}
if(typeof (_5c.DisabledCssClass)!="undefined"&&_5c.SelectedCssClass){
this.set_disabledCssClass(_5c.DisabledCssClass);
}
if(typeof (_5c.SelectedCssClass)!="undefined"&&_5c.SelectedCssClass){
this.set_selectedCssClass(_5c.SelectedCssClass);
}
if(typeof (_5c.HoveredCssClass)!="undefined"&&_5c.HoveredCssClass){
this.set_hoveredCssClass(_5c.HoveredCssClass);
}
if(typeof (_5c.ImageUrl)!="undefined"&&_5c.ImageUrl){
this.set_imageUrl(_5c.ImageUrl);
}
if(typeof (_5c.HoveredImageUrl)!="undefined"&&_5c.HoveredImageUrl){
this.set_hoveredImageUrl(_5c.HoveredImageUrl);
}
if(typeof (_5c.DisabledImageUrl)!="undefined"&&_5c.DisabledImageUrl){
this.set_disabledImageUrl(_5c.DisabledImageUrl);
}
if(typeof (_5c.ExpandedImageUrl)!="undefined"&&_5c.ExpandedImageUrl){
this.set_expandedImageUrl(_5c.ExpandedImageUrl);
}
if(typeof (_5c.ContextMenuID)!="undefined"&&_5c.ContextMenuID!==null){
this.set_contextMenuID(_5c.ContextMenuID);
}
},_startEdit:function(){
var _5d=this._getControl();
if(_5d){
_5d._editing=true;
_5d._editNode=this;
}
this._editing=true;
this._originalText=this.get_text();
var _5e=this.get_textElement();
this._originalTextHtml=_5e.innerHTML;
_5e.innerHTML="";
var _5f=document.createElement("input");
_5f.setAttribute("type","text");
_5f.setAttribute("size",this._originalText.length+3);
_5f.setAttribute("value",this._originalText);
this._inputElement=_5f;
this._addClassToContentElement("rtEdit");
_5e.appendChild(_5f);
var _60=this;
_5f.onblur=function(){
_60._endEdit(false);
};
_5f.onchange=function(){
_60._endEdit(false);
};
_5f.focus();
this._cancelInputEvents(_5f);
this._selectInputText(_5f,this._originalText.length);
},_endEdit:function(_61){
this._editing=false;
var _62=this.get_inputElement();
var _63=_62.parentNode;
_63.removeChild(_62);
if(!_61&&this._originalText!=_62.value){
var _64=new RegExp(this._originalText,"g");
var _65=this._originalTextHtml.replace(_64,_62.value);
_63.innerHTML=_65;
this.get_treeView()._editNodeText(this,_62.value);
}else{
_63.innerHTML=this._originalTextHtml;
}
this._clearEdit();
},_clearEdit:function(){
this._removeClassFromContentElement("rtEdit");
this.get_treeView()._clearEdit();
this._originalText=null;
this._originalTextHtml=null;
this._inputElement.onblur=null;
this._inputElement.onchange=null;
this._inputElement=null;
},_selectInputText:function(_66,_67){
var _68=0;
var _69=_67;
if(_66.createTextRange){
var _6a=_66.createTextRange();
_6a.moveStart("character",_68);
_6a.moveEnd("character",_69);
_6a.select();
}else{
_66.setSelectionRange(_68,_69);
}
},_cancelInputEvents:function(_6b){
_6b.onselectstart=_6b.onmousedown=_6b.onmouseup=_6b.onclick=function(e){
if(!e){
e=window.event;
}
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;
}
};
},_select:function(_6d){
_6d._registerSelectedNode(this);
this._addClassToContentElement("rtSelected");
this._addClassToContentElement(this.get_selectedCssClass());
},_unselect:function(_6e){
_6e._unregisterSelectedNode(this);
this._removeClassFromContentElement("rtSelected");
this._removeClassFromContentElement(this.get_selectedCssClass());
},_addClassToContentElement:function(_6f){
if(!_6f){
return;
}
var _70=this.get_contentElement();
if(_70){
Sys.UI.DomElement.addCssClass(_70,_6f);
}
},_removeClassFromContentElement:function(_71){
if(!_71){
return;
}
var _72=this.get_contentElement();
if(_72){
Sys.UI.DomElement.removeCssClass(_72,_71);
}
},_displayChildren:function(_73){
var _74=this.get_childListElement();
if(!_74){
return;
}
if(this._animation){
this._animation.stop();
}
_74.style.height="auto";
_74.style.overflow="hidden";
var _75=this.get_treeView();
if(_73){
_74.style.visibility="hidden";
_74.style.position="absolute";
_74.style.display="";
var _76=_74.offsetHeight;
_74.style.height="1px";
_74.style.position="static";
this._expanding=true;
var _77=_75.get_expandAnimation();
if(_77.get_type()!=Telerik.Web.UI.AnimationType.None){
this._playAnimation(_75.get_expandAnimation(),1,_76);
}else{
this._playAnimation(_75.get_expandAnimation(),_76,_76);
}
}else{
this._expanding=false;
var _78=_75.get_collapseAnimation();
if(_78.get_type()!=Telerik.Web.UI.AnimationType.None){
this._playAnimation(_75.get_collapseAnimation(),_74.offsetHeight,0);
}else{
this._animationEnded();
}
}
},_playAnimation:function(_79,_7a,_7b){
var _7c=_79.get_duration();
var _7d=Telerik.Web.UI.AnimationFunctions.CalculateAnimationPoints(_79,_7a,_7b,this._fps);
var _7e=this.get_childListElement();
for(var i=0;i<_7d.length;i++){
_7d[i]=Math.max(0,parseInt(_7d[i]))+"px";
}
_7e.style.visibility="";
if(this._animation){
this._animation.set_duration(_7c/1000);
this._animation.set_values(_7d);
}else{
this._animation=new $TWA.DiscreteAnimation(_7e,_7c/1000,this._fps,"style","height",_7d);
this._animation.add_ended(this._animationEndedDelegate);
}
this._animation.play();
},_disposeAnimation:function(){
if(this._animation){
this._animation.dispose();
this._animation=null;
}
},_animationEnded:function(){
var _80=this.get_childListElement();
if(!_80){
return;
}
if(this._expanding){
_80.style.overflow="visible";
}else{
_80.style.display="none";
}
_80.style.height="auto";
_80.style.cssText=_80.style.cssText;
},_collapseSiblings:function(){
var _81=this.get_parent().get_nodes();
for(var i=0;i<_81.get_count();i++){
if(_81.getNode(i)!=this){
_81.getNode(i).set_expanded(false);
}
}
},set_expanded:function(_83){
if(!this.get_isEnabled()){
return;
}
if(this.get_expanded()==_83){
return;
}
this._properties.setValue("expanded",_83);
if(!this.get_element()){
return;
}
var _84=this.get_treeView();
if(_83){
_84._registerExpandedNode(this);
if(_84.get_singleExpandPath()){
this._collapseSiblings();
}
if(this.get_expandMode()==Telerik.Web.UI.TreeNodeExpandMode.ServerSide){
var _85={commandName:"Expand",index:this._getHierarchicalIndex()};
_84._postback(_85);
}
if(this.get_expandMode()==Telerik.Web.UI.TreeNodeExpandMode.ServerSideCallBack){
_84._doLoadOnDemand(this);
return;
}
if(this.get_expandMode()==Telerik.Web.UI.TreeNodeExpandMode.WebService){
_84._loadChildrenFromWebService(this);
return;
}
this._ensureChildControls();
}else{
_84._registerCollapsedNode(this);
if(this.get_expandMode()==Telerik.Web.UI.TreeNodeExpandMode.ServerSide){
var _85={commandName:"Collapse",index:this._getHierarchicalIndex()};
_84._postback(_85);
}
}
if(this.get_expandMode()==Telerik.Web.UI.TreeNodeExpandMode.ClientSide){
this._displayChildren(_83);
this._updateToggle();
this._updateImageUrl();
}
},get_treeView:function(){
return this._getControl();
},_updateToggle:function(){
var _86=this.get_toggleElement();
if(!_86){
return;
}
if(this.get_expanded()){
this._replaceCssClass(_86,"rtPlus","rtMinus");
}else{
this._replaceCssClass(_86,"rtMinus","rtPlus");
}
},_replaceCssClass:function(_87,_88,_89){
_87.className=_87.className.replace(_88,_89);
},get_expanded:function(){
return this._properties.getValue("expanded",false)==true;
},get_checked:function(){
return this._properties.getValue("checked",false)==true;
},set_checked:function(_8a){
if(!this.get_isEnabled()){
return;
}
if(!this.get_checkable()){
return;
}
if(this.get_checked()==_8a){
return;
}
this._properties.setValue("checked",_8a);
var _8b=this.get_treeView();
if(!_8b){
return;
}
if(_8a){
_8b._registerCheckedNode(this);
}else{
_8b._unregisterCheckedNode(this);
}
if(this.get_checkBoxElement()){
this.get_checkBoxElement().checked=_8a;
}
},get_nodes:function(){
return this._getChildren();
},set_text:function(_8c){
if(this.get_element()){
var _8d=this.get_textElement();
if(this._text){
var _8e=new RegExp(this._text,"g");
_8d.innerHTML=_8d.innerHTML.replace(_8e,_8c);
}else{
_8d.innerHTML=_8c;
}
}
this._text=_8c;
this._properties.setValue("text",_8c,true);
},get_allowEdit:function(){
return this._properties.getValue("allowEdit",true)==true;
},set_allowEdit:function(_8f){
this._properties.setValue("allowEdit",_8f);
},get_allowDrag:function(){
return this._properties.getValue("allowDrag",true)==true;
},set_allowDrag:function(_90){
this._properties.setValue("allowDrag",_90);
},get_allowDrop:function(){
return this._properties.getValue("allowDrop",true)==true;
},set_allowDrop:function(_91){
this._properties.setValue("allowDrop",_91);
},_dispose:function(){
Telerik.Web.UI.RadTreeNode.callBaseMethod(this,"_dispose");
this._nodeListElement=null;
this._inputElement=null;
this._contentElement=null;
this._toggleElement=null;
this._textElement=null;
this._checkBoxElement=null;
this._loadingStatusElement=null;
this._auxElement=null;
this._imageElement=null;
this._linkElement=null;
this._disposeAnimation();
},_createChildListElement:function(){
var _92=document.createElement("ul");
_92.className="rtUL rtLines";
this.get_element().appendChild(_92);
if(!this.get_expanded()){
_92.style.display="none";
}
return _92;
},_renderChildren:function(_93){
_93[_93.length]="<ul class='rtUL'";
if(!this.get_expanded()){
_93[_93.length]="style='display:none'>";
}else{
_93[_93.length]=">";
}
var _94=this.get_nodes();
for(var i=0,_96=_94.get_count();i<_96;i++){
_94.getNode(i)._render(_93);
}
_93[_93.length]="</ul>";
},_isDescendantOf:function(_97){
var _98=this.get_parent();
while(_98!=this._getControl()){
if(_98==_97){
return true;
}
_98=_98.get_parent();
}
return false;
},_isFirstRootNode:function(){
return this.get_isFirst()&&this.get_parent()==this.get_treeView();
},_renderBeginTag:function(_99){
_99[_99.length]="<li class='rtLI";
if(this.get_isLast()&&!this._isFirstRootNode()){
_99[_99.length]=" rtLast";
}else{
if(this._isFirstRootNode()){
_99[_99.length]=" rtFirst";
}
}
_99[_99.length]="'>";
},_hasChildren:function(){
return this.get_nodes().get_count()>0;
},_renderWrap:function(_9a){
_9a[_9a.length]="<div class='rt";
if(this.get_isLast()&&!this._isFirstRootNode()){
_9a[_9a.length]="Bot";
}else{
if(this.get_isFirst()){
_9a[_9a.length]="Top";
}else{
_9a[_9a.length]="Mid";
}
}
if(this.get_selected()){
_9a[_9a.length]=" rtSelected";
}
_9a[_9a.length]="'><span class='rtSp'></span>";
if(this._hasChildren()||this.get_expandMode()==Telerik.Web.UI.TreeNodeExpandMode.WebService){
this._renderToggleElement(_9a);
}
var _9b=this.get_treeView()._checkBoxes&&this.get_checkable();
if(_9b){
_9a[_9a.length]="<input type='checkbox' class='rtChk'";
if(this.get_checked()){
_9a[_9a.length]="checked='checked'";
}
_9a[_9a.length]=" />";
}
var _9c=this._getImageUrlToApply();
if(_9c){
_9a[_9a.length]="<img class='rtImg' alt='' src='";
_9a[_9a.length]=_9c;
_9a[_9a.length]="' />";
}
if(this.get_navigateUrl()){
_9a[_9a.length]="<a class='rtIn' href='";
_9a[_9a.length]=this.get_navigateUrl();
_9a[_9a.length]="'>";
_9a[_9a.length]=this.get_text();
_9a[_9a.length]="</a></div>";
}else{
_9a[_9a.length]="<span class='rtIn'>";
_9a[_9a.length]=this.get_text();
_9a[_9a.length]="</span></div>";
}
},_renderToggleElement:function(_9d){
_9d[_9d.length]="<span class='";
if(this.get_expanded()){
_9d[_9d.length]="rtMinus'></span>";
}else{
_9d[_9d.length]="rtPlus'></span>";
}
},_ensureAppearance:function(){
if(!this.get_element()){
return;
}
if(this._isFirstRootNode()){
this._ensureFirstRootNodeAppearance();
}else{
if(this.get_isLast()){
this._ensureLastNodeAppearance();
}else{
if(this.get_isFirst()){
this._ensureFirstNodeAppearance();
}else{
this._ensureMiddleNodeAppearance();
}
}
}
if(this.get_selected()){
this._addClassToContentElement("rtSelected");
}
},_render:function(_9e){
this._renderBeginTag(_9e);
this._renderWrap(_9e);
if(this._hasChildren()>0){
this._renderChildren(_9e);
}
_9e[_9e.length]="</li>";
var _9f=this.get_parent();
var _a0=this.get_nextSibling();
if(_a0){
_a0._ensureAppearance();
}
var _a1=this.get_previousSibling();
if(_a1){
_a1._ensureAppearance();
}
if(_9f!=this.get_treeView()){
_9f._ensureParentNodeAppearance();
}
},_ensureParentNodeAppearance:function(){
if(!this.get_element()){
return;
}
if(this.get_toggleElement()){
return;
}
var _a2=document.createElement("span");
_a2.className=this.get_expanded()?"rtMinus":"rtPlus";
this.get_contentElement().insertBefore(_a2,this.get_contentElement().firstChild);
},_ensureFirstNodeAppearance:function(){
this._setCssClass(this.get_element(),"rtLI");
this._setCssClass(this.get_contentElement(),"rtTop");
},_ensureLastNodeAppearance:function(){
this._setCssClass(this.get_element(),"rtLI rtLast");
this._setCssClass(this.get_contentElement(),"rtBot");
},_ensureMiddleNodeAppearance:function(){
this._setCssClass(this.get_element(),"rtLI");
this._setCssClass(this.get_contentElement(),"rtMid");
},_ensureFirstRootNodeAppearance:function(){
var _a3="rtLI rtFirst";
if(this.get_parent().get_nodes().get_count()<2){
_a3="rtLI rtFirst rtLast";
}
this._setCssClass(this.get_element(),_a3);
this._setCssClass(this.get_contentElement(),"rtTop");
},_cacheDomProperties:function(){
this.get_disabledImageUrl();
this.get_expandedImageUrl();
this.get_hoveredImageUrl();
this.get_selectedImageUrl();
this.get_imageUrl();
this.get_text();
this.get_navigateUrl();
for(var i=0;i<this.get_nodes().get_count();i++){
this.get_nodes().getNode(i)._cacheDomProperties();
}
},_removeFromDom:function(_a5){
this._cacheDomProperties();
_a5.get_childListElement().removeChild(this.get_element());
var _a6=_a5.get_nodes().getNode(0);
if(_a6){
_a6._ensureAppearance();
}
var _a7=_a5.get_nodes().getNode(_a5.get_nodes().get_count()-1);
if(_a7){
_a7._ensureAppearance();
}
},_getNodeData:function(){
return {Text:this.get_text(),Value:this.get_value(),ExpandMode:this.get_expandMode(),NavigateUrl:this.get_navigateUrl(),PostBack:this.get_postBack(),DisabledCssClass:this.get_disabledCssClass(),SelectedCssClass:this.get_selectedCssClass(),HoveredCssClass:this.get_hoveredCssClass(),ImageUrl:this.get_imageUrl(),HoveredImageUrl:this.get_hoveredImageUrl(),DisabledImageUrl:this.get_disabledImageUrl(),ExpandedImageUrl:this.get_expandedImageUrl(),ContextMenuID:this.get_contextMenuID()};
}};
Telerik.Web.UI.RadTreeNode.registerClass("Telerik.Web.UI.RadTreeNode",Telerik.Web.UI.ControlItem);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadTreeNodeCollection=function(_a8){
Telerik.Web.UI.RadTreeNodeCollection.initializeBase(this,[_a8]);
};
Telerik.Web.UI.RadTreeNodeCollection.prototype={getNode:function(_a9){
return this.getItem(_a9);
},insert:function(_aa,_ab){
var _ac=this._parent._getControl();
if(_ac){
_ac._childInserting(_aa,_ab,this._parent);
}
Telerik.Web.UI.RadTreeNodeCollection.callBaseMethod(this,"insert",[_aa,_ab]);
}};
Telerik.Web.UI.RadTreeNodeCollection.registerClass("Telerik.Web.UI.RadTreeNodeCollection",Telerik.Web.UI.ControlItemCollection);
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.TreeNodeExpandMode=function(){
};
Telerik.Web.UI.TreeNodeExpandMode.prototype={ClientSide:0,ServerSide:1,ServerSideCallBack:2,WebService:3};
Telerik.Web.UI.TreeNodeExpandMode.registerEnum("Telerik.Web.UI.TreeNodeExpandMode");
Telerik.Web.UI.TreeViewLoadingStatusPosition=function(){
};
Telerik.Web.UI.TreeViewLoadingStatusPosition.prototype={BeforeNodeText:0,AfterNodeText:1,BelowNodeText:2,None:3};
Telerik.Web.UI.TreeViewLoadingStatusPosition.registerEnum("Telerik.Web.UI.TreeViewLoadingStatusPosition");
Telerik.Web.UI.RadTreeView=function(_ad){
Telerik.Web.UI.RadTreeView.initializeBase(this,[_ad]);
this._childTypeName="Telerik.Web.UI.RadTreeNode";
this._loadingMessage="Loading ...";
this._loadingStatusPosition=Telerik.Web.UI.TreeViewLoadingStatusPosition.BeforeNodeText;
this._nodeData=null;
this._nodeListElement=null;
this._postBackReference=null;
this._uniqueId=null;
this._multipleSelect=false;
this._initialDragMousePos=null;
this._hoveredNode=null;
this._editing=false;
this._editNode=null;
this._dragging=false;
this._checkBoxes=false;
this._draggingClue=null;
this._initialDragNode=null;
this._dropClue=null;
this._enableDragAndDropBetweenNodes=false;
this._enableDragAndDrop=false;
this._selectedIndexes=[];
this._contextMenuIDs=[];
this._contextMenus=null;
this._checkedIndexes=[];
this._expandedNodesJson="[]";
this._collapsedNodesJson="[]";
this._selectedNodesJson="[]";
this._checkedNodesJson="[]";
this._logEntriesJson="[]";
this._scrollPosition=0;
this._allowNodeEditing=false;
this._postBackOnCheck=false;
this._postBackOnClick=false;
this._postBackOnExpand=false;
this._postBackOnEdit=false;
this._postBackOnContextMenuItemClick=false;
this._postBackOnCollapse=false;
this._isRtl=false;
this._singleExpandPath=false;
this._clientState={expandedNodes:[],collapsedNodes:[],checkedNodes:[],logEntries:[],selectedNodes:[]};
this._onDocumentMouseMoveDelegate=null;
this._onDocumentMouseUpDelegate=null;
this._onSelectStartDelegate=null;
this._contextMenuNode=null;
this._skin=null;
this._expandAnimation=new Telerik.Web.UI.AnimationSettings({});
this._collapseAnimation=new Telerik.Web.UI.AnimationSettings({});
this._webServiceSettings=new Telerik.Web.UI.WebServiceSettings({});
this._persistLoadOnDemandNodes=true;
this._webServiceLoader=null;
this._initializeComplete=false;
this._numpadPlusKeyCode=107;
this._numpadMinusKeyCode=109;
this._leftArrowKeyCode=37;
this._rightArrowKeyCode=39;
this._downArrowKeyCode=40;
this._upArrowKeyCode=38;
this._enterKeyCode=13;
this._spaceKeyCode=32;
this._f2KeyCode=113;
this._escapeKeyCode=27;
this._shiftKeyCode=16;
};
Telerik.Web.UI.RadTreeView._createNodesFromJson=function(_ae,_af){
var _b0=_ae.get_nodeData();
if(!_b0){
return;
}
var _b1=$telerik.getChildrenByTagName(_ae.get_childListElement(),"li");
for(var i=0;i<_b0.length;i++){
var _b3=new Telerik.Web.UI.RadTreeNode();
_af.add(_b3);
_b3._initialize(_b0[i],_b1[i]);
}
};
Telerik.Web.UI.RadTreeView.prototype={initialize:function(){
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"initialize");
this._clientState.selectedNodes=this._selectedIndexes;
this._updateSelectedState();
this._clientState.checkedNodes=this._checkedIndexes;
this._updateCheckedState();
this._eventMap.addHandlerForClassName("dblclick","rtIn",this._doubleClick);
this._eventMap.addHandlerForClassName("click","rtPlus",this._toggle);
this._eventMap.addHandlerForClassName("click","rtChk",this._check);
this._eventMap.addHandlerForClassName("click","rtMinus",this._toggle);
this._eventMap.addHandlerForClassName("click","rtIn",this._click);
this._eventMap.addHandlerForClassName("click","rtImg",this._click);
this._eventMap.addHandlerForClassName("keydown","RadTreeView",this._onKeyDown);
this._eventMap.addHandlerForClassName("mouseover","rtIn",this._mouseOver);
this._eventMap.addHandlerForClassName("mouseover","rtPlus",this._expandOnHover);
this._eventMap.addHandlerForClassName("mouseover","rtImg",this._expandOnHover);
this._eventMap.addHandlerForClassName("mouseout","rtIn",this._mouseOut);
this._eventMap.addHandlerForClassName("mouseout","rtLI",this._nodeMouseOut);
this._eventMap.addHandlerForClassName("mousedown","rtIn",this._mouseDown);
this._eventMap.addHandlerForClassName("mousedown","rtImg",this._mouseDown);
this._eventMap.addHandlerForClassName("selectstart","rtIn",this._cancelEvent);
this._eventMap.addHandlerForClassName("dragstart","rtImg",this._cancelEvent);
this._eventMap.addHandlerForClassName("dragstart","rtIn",this._cancelEvent);
this._eventMap.addHandlerForClassName("scroll","RadTreeView",this._updateScrollPosition);
if(!$telerik.isOpera){
this._eventMap.addHandlerForClassName("contextmenu","rtIn",this._contextMenu);
this._eventMap.addHandlerForClassName("contextmenu","rtImg",this._contextMenu);
}else{
this._eventMap.addHandlerForClassName("mousedown","rtImg",this._contextMenu);
}
this._onDocumentMouseMoveDelegate=Function.createDelegate(this,this._onDocumentMouseMove);
this._onDocumentMouseUpDelegate=Function.createDelegate(this,this._onDocumentMouseUp);
this._onDocumentMouseOutDelegate=Function.createDelegate(this,this._onDocumentMouseOut);
this._onDocumentKeyDownDelegate=Function.createDelegate(this,this._onDocumentKeyDown);
this._onSelectStartDelegate=Function.createDelegate(this,this._cancelEvent);
this._contextMenuItemClickingHandler=Function.createDelegate(this,this._contextMenuItemClickingHandler);
this._contextMenuShownHandler=Function.createDelegate(this,this._contextMenuShownHandler);
this._applicationLoadHandler=Function.createDelegate(this,this._applicationLoadHandler);
Sys.Application.add_load(this._applicationLoadHandler);
if($telerik.isIE){
document.attachEvent("onmousemove",this._onDocumentMouseMoveDelegate);
}else{
$addHandler(document,"mousemove",this._onDocumentMouseMoveDelegate);
}
$addHandler(document.documentElement,"keydown",this._onDocumentKeyDownDelegate);
this._isRtl=Telerik.Web.UI.RadTreeView._isRtl(this.get_element());
if(this._isRtl){
Telerik.Web.UI.RadTreeView._initializeRtl(this.get_element());
this._setRtlSkin();
}
this._initializeComplete=true;
},_setRtlSkin:function(){
if(this._skin&&this.get_element().className.indexOf("RadTreeView_rtl")<0){
this.get_element().className=String.format("{0} RadTreeView_rtl RadTreeView_{1}_rtl",this.get_element().className,this._skin);
}
},_applicationLoadHandler:function(){
this._addContextMenuHandlers();
Sys.Application.remove_load(this._applicationLoadHandler);
},_contextMenuItemClickingHandler:function(_b4,_b5){
if(this._contextMenuNode==null){
return;
}
var _b6=_b5.get_item();
var _b7=this._contextMenuNode;
if(this._raiseContextMenuItemClicking(_b7,_b6)){
_b5.set_cancel(true);
return;
}
var _b8=new Telerik.Web.UI.RadTreeViewContextMenuItemEventArgs(_b7,_b6);
this.raiseEvent("contextMenuItemClicked",_b8);
_b6.get_menu().hide();
if(this._postBackOnContextMenuItemClick&&_b6.get_postBack()){
var _b9={commandName:"ContextMenuItemClick",index:_b7._getHierarchicalIndex(),contextMenuID:_b6.get_menu().get_id(),menuItemIndex:_b6._getHierarchicalIndex()};
_b5.set_cancel(true);
this._postback(_b9);
}
},_contextMenuShownHandler:function(_ba,_bb){
var _bc=this._contextMenuNode;
var _bd=new Telerik.Web.UI.RadTreeViewContextMenuEventArgs(_bc,_ba);
this.raiseEvent("contextMenuShown",_bd);
},_resolveContextMenuID:function(_be){
return String.format("{0}_{1}",this.get_id(),_be);
},_addContextMenuHandlers:function(){
var _bf=this.get_contextMenus();
for(var i=0;i<_bf.length;i++){
var _c1=_bf[i];
if(_c1){
_c1.add_itemClicking(this._contextMenuItemClickingHandler);
_c1.add_shown(this._contextMenuShownHandler);
}
}
},_removeContextMenuHandlers:function(){
var _c2=this.get_contextMenus();
for(var i=0;i<_c2.length;i++){
var _c4=_c2[i];
if(_c4){
_c4.remove_shown(this._contextMenuShownHandler);
_c4.remove_itemClicking(this._contextMenuItemClickingHandler);
}
}
},findNodeByText:function(_c5){
return this._findItemByText(_c5);
},findNodeByValue:function(_c6){
return this._findItemByValue(_c6);
},findNodeByAttribute:function(_c7,_c8){
return this._findItemByAttribute(_c7,_c8);
},unselectAllNodes:function(){
this._clearSelectedNodes();
},showNodeContextMenu:function(_c9,_ca){
var _cb=_c9.get_contextMenu();
var _cc=new Telerik.Web.UI.RadTreeViewContextMenuCancelEventArgs(_c9,_cb,_ca);
this.raiseEvent("contextMenuShowing",_cc);
if(_cc.get_cancel()){
return;
}
this._contextMenuNode=_c9;
_c9._showContextMenu(_ca);
},get_allNodes:function(){
return this._getAllItems();
},set_enabled:function(_cd){
if(this.get_enabled()==_cd){
return;
}
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"set_enabled",[_cd]);
if(!this.get_isInitialized()){
return;
}
this.get_element().disabled=!_cd;
var _ce=String.format("RadTreeView_{0}_disabled",this._skin);
this.toggleCssClass(_ce);
var _cf=this.get_element().getElementsByTagName("input");
for(var i=0,_d1=_cf.length;i<_d1;i++){
var _d2=_cf[i];
if(_d2.className!="rtChk"){
continue;
}
_d2.disabled=!_cd;
}
},get_loadingStatusPosition:function(){
return this._loadingStatusPosition;
},set_loadingStatusPosition:function(_d3){
this._loadingStatusPosition=_d3;
},get_loadingMessage:function(){
return this._loadingMessage;
},set_loadingMessage:function(_d4){
this._loadingMessage=_d4;
},get_childListElement:function(){
if(!this._nodeListElement){
this._nodeListElement=$telerik.getFirstChildByTagName(this.get_element(),"ul",0);
}
return this._nodeListElement;
},get_expandAnimation:function(){
return this._expandAnimation;
},set_expandAnimation:function(_d5){
var _d6=Sys.Serialization.JavaScriptSerializer.deserialize(_d5);
this._expandAnimation=new Telerik.Web.UI.AnimationSettings(_d6);
},get_collapseAnimation:function(){
return this._collapseAnimation;
},set_collapseAnimation:function(_d7){
var _d8=Sys.Serialization.JavaScriptSerializer.deserialize(_d7);
this._collapseAnimation=new Telerik.Web.UI.AnimationSettings(_d8);
},_postback:function(_d9){
if(!this._postBackReference){
return;
}
var _da=this._postBackReference.replace("arguments",Sys.Serialization.JavaScriptSerializer.serialize(_d9));
eval(_da);
},_registerExpandedNode:function(_db){
var _dc=_db._getHierarchicalIndex();
if(Array.indexOf(this._clientState.collapsedNodes,_dc)>-1){
Array.remove(this._clientState.collapsedNodes,_dc);
}
Array.add(this._clientState.expandedNodes,_dc);
this._updateToggleState();
},_registerCollapsedNode:function(_dd){
var _de=_dd._getHierarchicalIndex();
if(Array.indexOf(this._clientState.expandedNodes,_de)>-1){
Array.remove(this._clientState.expandedNodes,_de);
}
Array.add(this._clientState.collapsedNodes,_de);
this._updateToggleState();
},_updateToggleState:function(){
this._expandedNodesJson=Sys.Serialization.JavaScriptSerializer.serialize(this._clientState.expandedNodes);
this._collapsedNodesJson=Sys.Serialization.JavaScriptSerializer.serialize(this._clientState.collapsedNodes);
this.updateClientState();
},_updateSelectedState:function(){
this._selectedNodesJson=Sys.Serialization.JavaScriptSerializer.serialize(this._clientState.selectedNodes);
this.updateClientState();
},_updateCheckedState:function(){
this._checkedNodesJson=Sys.Serialization.JavaScriptSerializer.serialize(this._clientState.checkedNodes);
this.updateClientState();
},commitChanges:function(){
this._logEntriesJson=this._log.serialize();
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"commitChanges");
},saveClientState:function(){
return "{\"expandedNodes\":"+this._expandedNodesJson+",\"collapsedNodes\":"+this._collapsedNodesJson+",\"logEntries\":"+this._logEntriesJson+",\"selectedNodes\":"+this._selectedNodesJson+",\"checkedNodes\":"+this._checkedNodesJson+",\"scrollPosition\":"+this._scrollPosition+"}";
},_updateScrollPosition:function(){
this._scrollPosition=this.get_element().scrollTop;
this.updateClientState();
},_unregisterSelectedNode:function(_df){
Array.remove(this._clientState.selectedNodes,_df._getHierarchicalIndex());
this._updateSelectedState();
},_unregisterCheckedNode:function(_e0){
Array.remove(this._clientState.checkedNodes,_e0._getHierarchicalIndex());
this._updateCheckedState();
},_unregisterNodeFromClientState:function(_e1){
Array.remove(this._clientState.collapsedNodes,_e1._getHierarchicalIndex());
Array.remove(this._clientState.expandedNodes,_e1._getHierarchicalIndex());
Array.remove(this._clientState.selectedNodes,_e1._getHierarchicalIndex());
Array.remove(this._clientState.checkedNodes,_e1._getHierarchicalIndex());
},_unregisterNodeChildrenFromClientState:function(_e2){
for(var i=0;i<_e2.get_nodes().get_count();i++){
this._unregisterNodeHierarchyFromClientState(_e2.get_nodes().getNode(i));
}
},_unregisterNodeHierarchyFromClientState:function(_e4){
this._unregisterNodeFromClientState(_e4);
this._unregisterNodeChildrenFromClientState(_e4);
},_clearSelectedNodes:function(){
var _e5=this.get_selectedNodes();
for(var i=0;i<_e5.length;i++){
_e5[i].set_selected(false);
}
this._clientState.selectedNodes=new Array();
this._updateSelectedState();
},get_selectedNode:function(){
var _e7=this._clientState.selectedNodes.length-1;
if(_e7>=0){
var _e8=this._clientState.selectedNodes[_e7];
if(_e8){
return this._findItemByHierarchicalIndex(_e8);
}
}
return null;
},get_selectedNodes:function(){
var _e9=[];
for(var i=0;i<this._clientState.selectedNodes.length;i++){
var _eb=this._findItemByHierarchicalIndex(this._clientState.selectedNodes[i]);
Array.add(_e9,_eb);
}
return _e9;
},get_checkedNodes:function(){
var _ec=[];
for(var i=0;i<this._clientState.checkedNodes.length;i++){
var _ee=this._findItemByHierarchicalIndex(this._clientState.checkedNodes[i]);
Array.add(_ec,_ee);
}
return _ec;
},_getExpandedNodes:function(){
var _ef=[];
for(var i=0;i<this._clientState.expandedNodes.length;i++){
var _f1=this._findItemByHierarchicalIndex(this._clientState.expandedNodes[i]);
Array.add(_ef,_f1);
}
return _ef;
},_getCollapsedNodes:function(){
var _f2=[];
for(var i=0;i<this._clientState.collapsedNodes.length;i++){
var _f4=this._findItemByHierarchicalIndex(this._clientState.collapsedNodes[i]);
Array.add(_f2,_f4);
}
return _f2;
},_backupClientState:function(){
this._backupCollapsedNodes=this._getCollapsedNodes();
this._backupExpandedNodes=this._getExpandedNodes();
this._backupSelectedNodes=this.get_selectedNodes();
this._backupCheckedNodes=this.get_checkedNodes();
},_restoreClientState:function(){
this._clientState.selectedNodes=[];
for(var i=0;i<this._backupSelectedNodes.length;i++){
Array.add(this._clientState.selectedNodes,this._backupSelectedNodes[i]._getHierarchicalIndex());
}
this._clientState.collapsedNodes=[];
for(var i=0;i<this._backupCollapsedNodes.length;i++){
Array.add(this._clientState.collapsedNodes,this._backupCollapsedNodes[i]._getHierarchicalIndex());
}
this._clientState.expandedNodes=[];
for(var i=0;i<this._backupExpandedNodes.length;i++){
Array.add(this._clientState.expandedNodes,this._backupExpandedNodes[i]._getHierarchicalIndex());
}
this._clientState.checkedNodes=[];
for(var i=0;i<this._backupCheckedNodes.length;i++){
Array.add(this._clientState.checkedNodes,this._backupCheckedNodes[i]._getHierarchicalIndex());
}
this._updateToggleState();
this._updateSelectedState();
this._updateCheckedState();
},_registerSelectedNode:function(_f6){
Array.add(this._clientState.selectedNodes,_f6._getHierarchicalIndex());
this._updateSelectedState();
},_registerCheckedNode:function(_f7){
Array.add(this._clientState.checkedNodes,_f7._getHierarchicalIndex());
this._updateCheckedState();
},_getMousePosition:function(e){
var _f9=$telerik.getScrollOffset(document.body,true);
var _fa=e.clientX;
var _fb=e.clientY;
_fa+=_f9.x;
_fb+=_f9.y;
return {x:_fa,y:_fb};
},_extractNodeFromDomElement:function(_fc){
return this._extractItemFromDomElement(_fc);
},_doubleClick:function(e){
var _fe=this._extractNodeFromDomElement(e.eventMapTarget);
this._raiseEvent("nodeDoubleClick",_fe,e);
if(this.get_allowNodeEditing()&&_fe.get_allowEdit()){
return;
}
this._toggle(e);
},_hideContextMenus:function(){
if(this.get_contextMenuIDs().length>0){
Telerik.Web.UI.RadContextMenu.hideAll();
}
},_expandOnHover:function(e){
if(Telerik.Web.UI.RadTreeView._draggingTreeView){
var node=this._extractNodeFromDomElement(e.eventMapTarget);
this._hoveredNode=node;
window.setTimeout(function(){
if(node==node._getControl()._hoveredNode){
node.set_expanded(true);
}
},1000);
}
return true;
},_toggle:function(e){
var node=this._extractNodeFromDomElement(e.eventMapTarget);
if(!node.get_isEnabled()){
return;
}
this._hideContextMenus();
e.stopPropagation();
var _103=node.get_expanded();
if(_103==false){
if(this._raiseCancelEvent("nodeExpanding",node,e)){
return;
}
}else{
if(this._raiseCancelEvent("nodeCollapsing",node,e)){
return;
}
}
node.toggle();
if(_103==false){
this._raiseEvent("nodeExpanded",node,e);
}else{
this._raiseEvent("nodeCollapsed",node,e);
}
},_check:function(e){
var node=this._extractNodeFromDomElement(e.eventMapTarget);
if(!node.get_isEnabled()){
return;
}
this._hideContextMenus();
e.stopPropagation();
if(this._raiseCancelEvent("nodeChecking",node,e)){
return;
}
node.set_checked(!node.get_checked());
this._raiseEvent("nodeChecked",node,e);
if(this._postBackOnCheck){
var _106={commandName:"Check",index:node._getHierarchicalIndex()};
this._postback(_106);
}
},_mouseDown:function(e){
if($telerik.isOpera&&e.button==2){
this._contextMenu(e);
return;
}
if(e.button!=0){
return;
}
if(!this.get_enableDragAndDrop()){
return;
}
var node=this._extractNodeFromDomElement(e.eventMapTarget);
if(!node){
return;
}
if(!node.get_isEnabled()||!node.get_allowDrag()){
return;
}
this._initialDragMousePos=this._getMousePosition(e);
this._initialDragNode=node;
$addHandler(document,"mouseup",this._onDocumentMouseUpDelegate);
$addHandler(document,"mouseout",this._onDocumentMouseOutDelegate);
e.preventDefault();
},_createDragClueAt:function(node,posX,posY){
this._draggingClue=document.createElement("div");
this._draggingClue.className=this.get_element().className;
this._draggingClue.style.position="absolute";
this._draggingClue.style.overflow="visible";
this._draggingClue.style.top=posY+"px";
if(this._isRtl){
var _10c=this.get_element().scrollWidth;
this._draggingClue.dir="rtl";
this._draggingClue.style.width=_10c+"px";
this._draggingClue.style.left=(posX-_10c)+"px";
}else{
this._draggingClue.style.left=posX+"px";
}
this._draggingClueList=node._createChildListElement();
this._draggingClueList.style.display="";
this._draggingClue.appendChild(this._draggingClueList);
var _10d=this.get_selectedNodes();
for(var i=0;i<_10d.length;i++){
var _10f=_10d[i];
var _110=$telerik.getElementByClassName(_10f.get_element(),"rtIn").cloneNode(true);
_110.style.display="block";
var _111=_110.getElementsByTagName("ul");
if(_111&&_111[0]){
_110.removeChild(_111[0]);
}
this._draggingClueList.appendChild(_110);
}
document.body.appendChild(this._draggingClue);
},_contextMenu:function(e){
if($telerik.isOpera&&e.button!=2){
return;
}
var node=this._extractNodeFromDomElement(e.eventMapTarget);
if(!node){
return;
}
if(!node.get_isEnabled()){
return;
}
this.showNodeContextMenu(node,e);
},_cancelEvent:function(e){
e.preventDefault();
return false;
},_shouldStartDrag:function(_115){
if(!this._initialDragNode||!this._initialDragMousePos){
return false;
}
if(Math.abs(this._initialDragMousePos.x-_115.x)>4||Math.abs(this._initialDragMousePos.y-_115.y)>4){
return true;
}
},_selectFirstNode:function(){
var _116=this.get_nodes().getNode(0);
if(!_116){
return;
}
_116.set_selected(true);
this._scrollToNode(_116);
},_onDocumentKeyDown:function(e){
if(e.keyCode==this._escapeKeyCode&&this._dragging){
this._clearDrag();
}
},_onKeyDown:function(e){
if(this._editing){
this._onEditKeyDown(e);
return;
}
var node=this.get_selectedNode();
if(!node){
if(e.keyCode==this._upArrowKeyCode||e.keyCode==this._downArrowKeyCode||e.keyCode==this._enterKeyCode||e.keyCode==this._spaceKeyCode){
this._selectFirstNode();
e.preventDefault();
}
return;
}
if(this._raiseCancelEvent("keyPressing",node,e)){
return;
}
if(e.keyCode==this._numpadPlusKeyCode||e.keyCode==this._numpadMinusKeyCode||e.keyCode==this._leftArrowKeyCode||e.keyCode==this._rightArrowKeyCode){
node.toggle();
}
if(e.keyCode==this._downArrowKeyCode){
var _11a=node._getNextSelectableNode();
if(!_11a){
return;
}
e.preventDefault();
if(!this.get_multipleSelect()||(!e.ctrlKey&&!e.shiftKey)){
this._clearSelectedNodes();
}
_11a.set_selected(true);
this._scrollToNode(_11a);
}
if(e.keyCode==this._upArrowKeyCode){
var _11b=node._getPrevSelectableNode();
if(!_11b){
return;
}
e.preventDefault();
if(!this.get_multipleSelect()||(!e.ctrlKey&&!e.shiftKey)){
this._clearSelectedNodes();
}
_11b.set_selected(true);
this._scrollToNode(_11b);
}
if(e.keyCode==this._f2KeyCode){
if(this.get_allowNodeEditing()&&node.get_selected()&&node.get_allowEdit()){
this._startEdit(node);
}
}
if(e.keyCode==this._spaceKeyCode){
node.set_checked(!node.get_checked());
}
if(e.keyCode==this._enterKeyCode){
if(this._raiseCancelEvent("nodeClicking",node,e)){
return true;
}
this._raiseEvent("nodeClicked",node,e);
this._postClickCommand(node);
e.preventDefault();
return true;
}
},_postClickCommand:function(node){
if(node.get_enabled()&&node.get_postBack()&&this._postBackOnClick&&!node._editing){
var _11d={commandName:"Click",index:node._getHierarchicalIndex()};
this._postback(_11d);
}
},_scrollToNode:function(node){
var _11f=node.get_contentElement();
var _120=this.get_element();
var _121=this._getTotalOffsetTop(_11f);
var _122=this._getTotalOffsetTop(_120);
var _123=_121-_122;
if(_123<_120.scrollTop){
_120.scrollTop=_123;
}
var _124=_11f.offsetHeight;
if(_123+_124>(_120.clientHeight+_120.scrollTop)){
_120.scrollTop+=((_123+_124)-(_120.clientHeight+_120.scrollTop));
}
},_getTotalOffsetTop:function(_125){
var _126=_125.offsetTop;
var _127=_125.offsetParent;
while(_127){
_126+=_127.offsetTop;
_127=_127.offsetParent;
}
return _126;
},_onEditKeyDown:function(e){
if(e.keyCode==this._escapeKeyCode){
this._endEdit(true);
}
if(e.keyCode==this._enterKeyCode){
this._endEdit(false);
}
e.stopPropagation();
return false;
},_onDocumentMouseMove:function(e){
if(e.srcElement){
e.target=e.srcElement;
}
var _12a=this._getMousePosition(e);
if(!this._dragging&&this._shouldStartDrag(_12a)&&!this._raiseCancelEvent("nodeDragStart",this._initialDragNode,e)){
this._startDrag(e,_12a);
}
if(!this._dragging){
return;
}
var _12b=new Telerik.Web.UI.RadTreeNodeDraggingEventArgs(this._initialDragNode,e);
this.raiseEvent("nodeDragging",_12b);
if(!_12b.get_cancel()){
this._positionDropClue(e);
}
this._mousePos=_12a;
this._adjustScroll();
this._draggingClue.style.top=_12a.y+4+"px";
if(!this._isRtl){
this._draggingClue.style.left=_12a.x+4+"px";
}else{
this._draggingClue.style.left=(_12a.x-4-this._draggingClue.scrollWidth)+"px";
}
},_onDocumentMouseOut:function(e){
if(!this._dragging){
return;
}
var _12d;
if(e.rawEvent.relatedTarget){
_12d=e.rawEvent.relatedTarget;
}else{
_12d=e.rawEvent.toElement;
}
if(!_12d){
this._clearDrag();
}
},_startDrag:function(e,_12f){
if(this._initialDragNode.get_selected()==false){
if(!this.get_multipleSelect()||(!e.ctrlKey&&!e.shiftKey)){
this._clearSelectedNodes();
}
this._initialDragNode.set_selected(true);
}
this._createDragClueAt(this._initialDragNode,_12f.x,_12f.y);
this._createDropClue();
$addHandler(document,"selectstart",this._onSelectStartDelegate);
this._dragging=true;
this._draggingPosition="over";
Telerik.Web.UI.RadTreeView._draggingTreeView=this;
e.returnValue=false;
},_createDropClue:function(){
this._dropClue=document.createElement("div");
document.body.appendChild(this._dropClue);
this._dropClue.style.position="absolute";
this._dropClue.style.height="5px";
},_positionDropClue:function(e){
if(this._dropClue==e.target){
return;
}
var node=this._extractNodeFromDomElement(e.target);
if(!node){
this._dropClue.style.visibility="hidden";
return;
}
var _132=node._getControl();
if(!_132.get_enableDragAndDropBetweenNodes()){
return;
}
if($telerik.isDescendantOrSelf(node.get_textElement(),e.target)){
this._dropClue.style.visibility="hidden";
this._draggingPosition="over";
return;
}else{
this._dropClue.style.visibility="visible";
}
this._dropClue.treeNode=node;
var _133=node.get_element();
this._dropClue.style.width=_133.offsetWidth+"px";
var _134=node.get_contentElement();
var _135=$telerik.getLocation(_134);
this._dropClue.style.left=_135.x+"px";
var _136=this._getMousePosition(e);
if(_136.y<(_135.y+(_134.offsetHeight/2))){
this._dropClue.style.top=_135.y+"px";
this._dropClue.className=String.format("rtDropAbove_{0}",this._skin);
this._draggingPosition="above";
}else{
this._dropClue.style.top=(_135.y+_134.offsetHeight-5)+"px";
this._dropClue.className=String.format("rtDropBelow_{0}",this._skin);
this._draggingPosition="below";
}
},_adjustScroll:function(){
var _137=this.get_element();
if(_137){
var topY,_139;
var _13a=this;
topY=$telerik.getLocation(_137).y;
_139=topY+_137.offsetHeight;
var _13b=_137.scrollTop<=0;
var _13c=_137.scrollTop>=(_137.scrollHeight-_137.offsetHeight+16);
var _13d=this._mousePos.y-topY;
var _13e=_139-this._mousePos.y;
if(_13d<50&&!_13b){
var _13f=(10-(_13d/5));
_137.scrollTop=_137.scrollTop-_13f;
window.setTimeout(function(){
_13a._adjustScroll(this._mousePos);
},100);
}else{
if(_13e<50&&!_13c){
var _13f=(10-(_13e/5));
_137.scrollTop=_137.scrollTop+_13f;
window.setTimeout(function(){
_13a._adjustScroll(this._mousePos);
},100);
}
}
this._scrollPosition=_137.scrollTop;
}
},_onDocumentMouseUp:function(e){
if(!this._dragging){
this._initialDragMousePos=null;
this._initialDragNode=null;
return;
}
var _141=this.get_selectedNodes();
var _142=null;
if(e.target==this._dropClue){
_142=this._dropClue.treeNode;
}else{
_142=this._extractNodeFromDomElement(e.target);
}
if(_142){
if(_142._isDescendantOf(this._initialDragNode)||this._initialDragNode==_142){
this._clearDrag();
return;
}
}
var _143=e.target;
var _144=new Telerik.Web.UI.RadTreeNodeDroppingEventArgs(_141,_142,_143,this._draggingPosition,e);
this.raiseEvent("nodeDropping",_144);
if(!_144.get_cancel()){
var _145={};
_143=_144.get_htmlElement();
if(_142&&(_142.get_allowDrop()||this._draggingPosition!="over")&&_142.get_isEnabled()){
_145.destIndex=_142._getHierarchicalIndex();
if(_142._getControl()==this){
_145.commandName="NodeDrop";
}else{
_145.commandName="NodeDropOnTree";
_145.treeId=_142._getControl()._uniqueId;
}
_145.dropPosition=this._draggingPosition;
}else{
if(_143.id&&_143.id!=""){
_145.commandName="NodeDropOnHtmlElement";
_145.htmlElementId=_143.id;
}
}
if(_145.commandName){
var _144=new Telerik.Web.UI.RadTreeNodeDroppedEventArgs(_141);
this.raiseEvent("nodeDropped",_144);
this._postback(_145);
}
}
this._clearDrag();
},_clearDrag:function(){
if(!this._dragging){
return;
}
if(this._dropClue){
document.body.removeChild(this._dropClue);
this._dropClue=null;
}
if(this._draggingClue){
document.body.removeChild(this._draggingClue);
this._draggingClue=null;
}
this._dragging=false;
Telerik.Web.UI.RadTreeView._draggingTreeView=null;
this._initialDragMousePos=null;
this._initialDragNode=null;
$removeHandler(document,"mouseup",this._onDocumentMouseUpDelegate);
$removeHandler(document,"selectstart",this._onSelectStartDelegate);
$removeHandler(document,"mouseout",this._onDocumentMouseOutDelegate);
},_mouseOver:function(e){
var node=this._extractNodeFromDomElement(e.eventMapTarget);
if(this._highlightedNode){
this._highlightedNode._unhighlight();
}
node._highlight();
this._expandOnHover(e);
if(Telerik.Web.UI.RadTreeView._draggingTreeView&&!node.get_allowDrop()){
node.get_textElement().style.cursor="not-allowed";
}
this._highlightedNode=node;
this._raiseEvent("mouseOver",node,e);
},_mouseOut:function(e){
if(!this._highlightedNode){
return;
}
var _149=e.eventMapRelatedTarget;
if(!_149){
return;
}
if($telerik.isDescendant(this._highlightedNode.get_contentElement(),_149)){
return;
}
var node=this._highlightedNode;
this._highlightedNode._unhighlight();
if(Telerik.Web.UI.RadTreeView._draggingTreeView){
node.get_textElement().style.cursor="default";
}
this._highlightedNode=null;
this._raiseEvent("mouseOut",node,e);
},_editNodeText:function(node,text){
var _14d=new Telerik.Web.UI.RadTreeNodeEditingEventArgs(node,text);
this.raiseEvent("nodeEditing",_14d);
if(_14d.get_cancel()){
return;
}
node._text=text;
node._properties.setValue("text",text,true);
this._raiseEvent("nodeEdited",node,null);
if(this._postBackOnEdit){
var _14e={};
_14e.commandName="NodeEdit";
_14e.index=node._getHierarchicalIndex();
text=text.replace(/'/g,"&squote");
_14e.nodeEditText=encodeURIComponent(text);
this._postback(_14e);
}
},_startEdit:function(node){
node._startEdit();
},_clearEdit:function(){
this._editing=false;
this._editNode=null;
},_endEdit:function(_150){
if(this._editing){
this._editNode._endEdit(_150);
}
},_nodeMouseOut:function(e){
var node=this._extractNodeFromDomElement(e.eventMapTarget);
this._hoveredNode=null;
},_click:function(e){
var node=this._extractNodeFromDomElement(e.eventMapTarget);
if(this._raiseCancelEvent("nodeClicking",node,e)){
e.preventDefault();
return;
}
if(!node.get_isEnabled()){
this._raiseEvent("nodeClicked",node,e);
e.preventDefault();
return;
}
this._hideContextMenus();
if(this.get_multipleSelect()&&(e.ctrlKey||e.shiftKey)){
node.set_selected(!node.get_selected());
return;
}else{
if(this.get_allowNodeEditing()&&node.get_selected()&&node.get_allowEdit()){
this._clearSelectedNodes();
this._startEdit(node);
e.stopPropagation();
}else{
this._clearSelectedNodes();
node.set_selected(true);
}
}
this._raiseEvent("nodeClicked",node,e);
this._postClickCommand(node);
return;
},_raiseEvent:function(_155,node,_157){
var _158=new Telerik.Web.UI.RadTreeNodeEventArgs(node,_157);
this.raiseEvent(_155,_158);
},_raiseCancelEvent:function(_159,node,_15b){
var _15c=new Telerik.Web.UI.RadTreeNodeCancelEventArgs(node,_15b);
this.raiseEvent(_159,_15c);
return _15c.get_cancel();
},add_mouseOver:function(_15d){
this.get_events().addHandler("mouseOver",_15d);
},remove_mouseOver:function(_15e){
this.get_events().removeHandler("mouseOver",_15e);
},add_mouseOut:function(_15f){
this.get_events().addHandler("mouseOut",_15f);
},remove_mouseOut:function(_160){
this.get_events().removeHandler("mouseOut",_160);
},add_nodePopulating:function(_161){
this.get_events().addHandler("nodePopulating",_161);
},remove_nodePopulating:function(_162){
this.get_events().removeHandler("nodePopulating",_162);
},add_nodePopulated:function(_163){
this.get_events().addHandler("nodePopulated",_163);
},remove_nodePopulated:function(_164){
this.get_events().removeHandler("nodePopulated",_164);
},add_nodePopulationFailed:function(_165){
this.get_events().addHandler("nodePopulationFailed",_165);
},remove_nodePopulationFailed:function(_166){
this.get_events().removeHandler("nodePopulationFailed",_166);
},add_nodeChecked:function(_167){
this.get_events().addHandler("nodeChecked",_167);
},remove_nodeChecked:function(_168){
this.get_events().removeHandler("nodeChecked",_168);
},add_nodeChecking:function(_169){
this.get_events().addHandler("nodeChecking",_169);
},remove_nodeChecking:function(_16a){
this.get_events().removeHandler("nodeChecking",_16a);
},add_nodeClicking:function(_16b){
this.get_events().addHandler("nodeClicking",_16b);
},remove_nodeClicking:function(_16c){
this.get_events().removeHandler("nodeClicking",_16c);
},add_nodeDragStart:function(_16d){
this.get_events().addHandler("nodeDragStart",_16d);
},remove_nodeDragStart:function(_16e){
this.get_events().removeHandler("nodeDragStart",_16e);
},add_nodeDragging:function(_16f){
this.get_events().addHandler("nodeDragging",_16f);
},remove_nodeDragging:function(_170){
this.get_events().removeHandler("nodeDragging",_170);
},add_nodeExpanding:function(_171){
this.get_events().addHandler("nodeExpanding",_171);
},remove_nodeExpanding:function(_172){
this.get_events().removeHandler("nodeExpanding",_172);
},add_nodeCollapsing:function(_173){
this.get_events().addHandler("nodeCollapsing",_173);
},remove_nodeCollapsing:function(_174){
this.get_events().removeHandler("nodeCollapsing",_174);
},add_nodeClicked:function(_175){
this.get_events().addHandler("nodeClicked",_175);
},remove_nodeClicked:function(_176){
this.get_events().removeHandler("nodeClicked",_176);
},add_nodeDoubleClick:function(_177){
this.get_events().addHandler("nodeDoubleClick",_177);
},remove_nodeDoubleClick:function(_178){
this.get_events().removeHandler("nodeDoubleClick",_178);
},add_nodeExpanded:function(_179){
this.get_events().addHandler("nodeExpanded",_179);
},remove_nodeExpanded:function(_17a){
this.get_events().removeHandler("nodeExpanded",_17a);
},add_nodeCollapsed:function(_17b){
this.get_events().addHandler("nodeCollapsed",_17b);
},remove_nodeCollapsed:function(_17c){
this.get_events().removeHandler("nodeCollapsed",_17c);
},add_nodeDropping:function(_17d){
this.get_events().addHandler("nodeDropping",_17d);
},remove_nodeDropping:function(_17e){
this.get_events().removeHandler("nodeDropping",_17e);
},add_nodeDropped:function(_17f){
this.get_events().addHandler("nodeDropped",_17f);
},remove_nodeDropped:function(_180){
this.get_events().removeHandler("nodeDropped",_180);
},add_contextMenuItemClicking:function(_181){
this.get_events().addHandler("contextMenuItemClicking",_181);
},remove_contextMenuItemClicking:function(_182){
this.get_events().removeHandler("contextMenuItemClicking",_182);
},_raiseContextMenuItemClicking:function(node,_184){
var _185=new Telerik.Web.UI.RadTreeViewContextMenuItemCancelEventArgs(node,_184);
this.raiseEvent("contextMenuItemClicking",_185);
return _185.get_cancel();
},add_contextMenuItemClicked:function(_186){
this.get_events().addHandler("contextMenuItemClicked",_186);
},remove_contextMenuItemClicked:function(_187){
this.get_events().removeHandler("contextMenuItemClicked",_187);
},add_contextMenuShowing:function(_188){
this.get_events().addHandler("contextMenuShowing",_188);
},remove_contextMenuShowing:function(_189){
this.get_events().removeHandler("contextMenuShowing",_189);
},add_contextMenuShown:function(_18a){
this.get_events().addHandler("contextMenuShown",_18a);
},remove_contextMenuShown:function(_18b){
this.get_events().removeHandler("contextMenuShown",_18b);
},add_nodeEditing:function(_18c){
this.get_events().addHandler("nodeEditing",_18c);
},remove_nodeEditing:function(_18d){
this.get_events().removeHandler("nodeEditing",_18d);
},add_nodeEdited:function(_18e){
this.get_events().addHandler("nodeEdited",_18e);
},remove_nodeEdited:function(_18f){
this.get_events().removeHandler("nodeEdited",_18f);
},add_keyPressing:function(_190){
this.get_events().addHandler("keyPressing",_190);
},remove_keyPressing:function(_191){
this.get_events().removeHandler("keyPressing",_191);
},dispose:function(){
this._removeContextMenuHandlers();
if($telerik.isIE){
document.detachEvent("onmousemove",this._onDocumentMouseMoveDelegate);
}else{
$removeHandler(document,"mousemove",this._onDocumentMouseMoveDelegate);
}
$removeHandler(document.documentElement,"keydown",this._onDocumentKeyDownDelegate);
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"dispose");
},_ensureChildControls:function(){
if(this._initializeComplete){
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"_ensureChildControls");
}
},_createChildControls:function(){
this._children=new Telerik.Web.UI.RadTreeNodeCollection(this);
Telerik.Web.UI.RadTreeView._createNodesFromJson(this,this._children);
},get_nodes:function(){
return this._getChildren();
},get_nodeData:function(){
return this._nodeData;
},set_nodeData:function(_192){
this._nodeData=_192;
},get_multipleSelect:function(){
return this._multipleSelect;
},set_multipleSelect:function(_193){
this._multipleSelect=_193;
},get_singleExpandPath:function(){
return this._singleExpandPath;
},set_singleExpandPath:function(_194){
this._singleExpandPath=_194;
},get_selectedIndexes:function(){
return this._selectedIndexes;
},set_selectedIndexes:function(_195){
this._selectedIndexes=_195;
},get_contextMenuIDs:function(){
return this._contextMenuIDs;
},set_contextMenuIDs:function(_196){
this._contextMenuIDs=_196;
this._contextMenus=null;
},get_contextMenus:function(){
if(!this._contextMenus){
this._contextMenus=[];
var _197=this.get_contextMenuIDs();
for(var i=0;i<_197.length;i++){
Array.add(this._contextMenus,$find(this._resolveContextMenuID(_197[i])));
}
}
return this._contextMenus;
},get_allowNodeEditing:function(){
return this._allowNodeEditing;
},set_allowNodeEditing:function(_199){
this._allowNodeEditing=_199;
},get_enableDragAndDrop:function(){
return this._enableDragAndDrop;
},set_enableDragAndDrop:function(_19a){
this._enableDragAndDrop=_19a;
},get_enableDragAndDropBetweenNodes:function(){
return this._enableDragAndDropBetweenNodes;
},set_enableDragAndDropBetweenNodes:function(_19b){
this._enableDragAndDropBetweenNodes=_19b;
},get_checkedIndexes:function(){
return this._checkedIndexes;
},set_checkedIndexes:function(_19c){
this._checkedIndexes=_19c;
},get_webServiceSettings:function(){
return this._webServiceSettings;
},set_webServiceSettings:function(_19d){
var _19e=Sys.Serialization.JavaScriptSerializer.deserialize(_19d);
this._webServiceSettings=new Telerik.Web.UI.WebServiceSettings(_19e);
},get_persistLoadOnDemandNodes:function(){
return this._persistLoadOnDemandNodes;
},set_persistLoadOnDemandNodes:function(_19f){
this._persistLoadOnDemandNodes=_19f;
},_childRemoved:function(node,_1a1){
this._restoreClientState();
node._removeFromDom(_1a1);
if(_1a1.get_nodes().get_count()<1){
if(_1a1!=this){
_1a1.get_element().removeChild(_1a1.get_childListElement());
_1a1._nodeListElement=null;
_1a1.get_contentElement().removeChild(_1a1.get_toggleElement());
_1a1._toggleElement=null;
}
}
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"_childRemoved",[node,_1a1]);
},_childRemoving:function(node){
this._unregisterNodeHierarchyFromClientState(node);
node.set_selected(false);
node.set_checked(false);
this._backupClientState();
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"_childRemoving",[node]);
},_childInserting:function(_1a3,node,_1a5){
if(!_1a5._childControlsCreated){
return;
}
this._backupClientState();
},_childInserted:function(_1a6,node,_1a8){
if(!_1a8._childControlsCreated){
return;
}
this._restoreClientState();
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"_childInserted",[_1a6,node,_1a8]);
},_childrenCleared:function(_1a9){
this._unregisterNodeChildrenFromClientState(_1a9);
Telerik.Web.UI.RadTreeView.callBaseMethod(this,"_childrenCleared",[_1a9]);
},_doLoadOnDemand:function(node){
var _1ab=new Telerik.Web.UI.RadTreeNodePopulatingEventArgs(node,null);
this.raiseEvent("nodePopulating",_1ab);
if(_1ab.get_cancel()){
node._properties.setValue("expanded",false);
return;
}
var _1ac=String.format("{{commandName:\"LOD\",index:\"{0}\",data:{1},clientState:{2}}}",node._getHierarchicalIndex(),Sys.Serialization.JavaScriptSerializer.serialize(node._getData()),this.saveClientState());
if(this.get_loadingStatusPosition()!=Telerik.Web.UI.TreeViewLoadingStatusPosition.None){
node.showLoadingStatus(this.get_loadingMessage(),this.get_loadingStatusPosition());
}
var _1ad=Function.createDelegate(this,this._onCallbackResponse);
var _1ae=Function.createDelegate(this,this._onCallbackError);
WebForm_DoCallback(this._uniqueId,_1ac,_1ad,node,_1ae,true);
},_onCallbackError:function(_1af,node){
var _1b1=this._extractErrorMessage(_1af);
this._onLoadOnDemandFailed(_1b1,node);
},_onCallbackResponse:function(_1b2,node){
if(this.get_loadingStatusPosition()!=Telerik.Web.UI.TreeViewLoadingStatusPosition.None){
node.hideLoadingStatus();
}
var _1b4=_1b2.split("_$$_");
node._itemData=eval(_1b4[0]);
node._childControlsCreated=false;
var _1b5=node.get_childListElement();
if(!_1b5){
_1b5=node._createChildListElement();
_1b5.style.display="none";
node.get_element().appendChild(_1b5);
}
_1b5.innerHTML=_1b4[1];
node._updateToggle();
node._updateImageUrl();
var _1b6=this.get_persistLoadOnDemandNodes();
if(_1b6){
this.trackChanges();
}
node.set_expandMode(Telerik.Web.UI.TreeNodeExpandMode.ClientSide);
var _1b7=node._getAllItems();
for(var i=0;i<_1b7.length;i++){
if(_1b7[i].get_checked()){
this._registerCheckedNode(_1b7[i]);
}
if(_1b7[i].get_selected()){
this._registerSelectedNode(_1b7[i]);
}
if(_1b6){
this._log.logInsert(_1b7[i]);
}
}
if(_1b6){
this.commitChanges();
}
var _1b9=new Telerik.Web.UI.RadTreeNodePopulatedEventArgs(node);
this.raiseEvent("nodePopulated",_1b9);
node._displayChildren(true);
},_initializeWebServiceLoader:function(){
this._webServiceLoader=new Telerik.Web.UI.WebServiceLoader(this.get_webServiceSettings());
this._webServiceLoader.add_loadingStarted(Function.createDelegate(this,this._onNodeLoadingStarted));
this._webServiceLoader.add_loadingSuccess(Function.createDelegate(this,this._onNodeLoadingSuccess));
this._webServiceLoader.add_loadingError(Function.createDelegate(this,this._onNodeLoadingError));
},_loadChildrenFromWebService:function(node){
if(!this._webServiceLoader){
this._initializeWebServiceLoader();
}
var _1bb={};
var _1bc=new Telerik.Web.UI.RadTreeNodePopulatingEventArgs(node,_1bb);
this.raiseEvent("nodePopulating",_1bc);
if(_1bc.get_cancel()){
node._properties.setValue("expanded",false);
return;
}
var _1bd={node:node._getNodeData(),context:_1bb};
this._webServiceLoader.loadData(_1bd,node);
},_onNodeLoadingStarted:function(_1be,_1bf){
var node=_1bf.get_context();
if(this.get_loadingStatusPosition()!=Telerik.Web.UI.TreeViewLoadingStatusPosition.None){
node.showLoadingStatus(this.get_loadingMessage(),this.get_loadingStatusPosition());
}
},_onNodeLoadingSuccess:function(_1c1,_1c2){
var _1c3=_1c2.get_data();
var node=_1c2.get_context();
var _1c5=this.get_persistLoadOnDemandNodes();
if(this.get_loadingStatusPosition()!=Telerik.Web.UI.TreeViewLoadingStatusPosition.None){
node.hideLoadingStatus();
}
node._updateToggle();
if(_1c5){
this.trackChanges();
}
var _1c6=node.get_nodes();
for(i=0;i<_1c3.length;i++){
var _1c7=_1c3[i];
var _1c8=new Telerik.Web.UI.RadTreeNode();
_1c8._loadFromDictionary(_1c7);
_1c6.add(_1c8);
}
node.set_expandMode(Telerik.Web.UI.TreeNodeExpandMode.ClientSide);
if(_1c5){
this.commitChanges();
}
node.set_expanded(false);
node.set_expanded(true);
var _1c9=new Telerik.Web.UI.RadTreeNodePopulatedEventArgs(node);
this.raiseEvent("nodePopulated",_1c9);
},_onNodeLoadingError:function(_1ca,_1cb){
var _1cc=_1cb.get_message();
var node=_1cb.get_context();
this._onLoadOnDemandFailed(_1cc,node);
},_onLoadOnDemandFailed:function(_1ce,node){
node._properties.setValue("expanded",false);
if(this.get_loadingStatusPosition()!=Telerik.Web.UI.TreeViewLoadingStatusPosition.None){
node.hideLoadingStatus();
}
var _1d0=new Telerik.Web.UI.RadTreeNodePopulationFailedEventArgs(node,_1ce);
this.raiseEvent("nodePopulationFailed",_1d0);
if(_1d0.get_cancel()){
return;
}
alert(_1ce);
},_clearLog:function(){
this._log.initialize();
this._logEntriesJson="[]";
this.updateClientState();
}};
Telerik.Web.UI.RadTreeView._preInitialize=function(_1d1,_1d2){
var _1d3=$get(_1d1);
_1d3.scrollTop=_1d2;
if(Telerik.Web.UI.RadTreeView._isRtl(_1d3)){
Telerik.Web.UI.RadTreeView._initializeRtl(_1d3);
}
};
Telerik.Web.UI.RadTreeView._isRtl=function(_1d4){
while(_1d4){
if(_1d4.dir&&_1d4.dir.toLowerCase()=="rtl"){
return true;
}
_1d4=_1d4.parentNode;
}
return false;
};
Telerik.Web.UI.RadTreeView._initializeRtl=function(_1d5){
_1d5.style.styleFloat="right";
_1d5.style.cssFloat="right";
};
Telerik.Web.UI.RadTreeView._clearLog=function(_1d6){
var _1d7=$find(_1d6);
if(_1d7){
_1d7._clearLog();
}
};
Telerik.Web.UI.RadTreeView._draggingTreeView=null;
Telerik.Web.UI.RadTreeView.registerClass("Telerik.Web.UI.RadTreeView",Telerik.Web.UI.ControlItemContainer);


/* END Telerik.Web.UI.TreeView.RadTreeViewScripts.js */
/* START AjaxControlToolkit.Common.Common.js */
// (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" />


// Add common toolkit scripts here.  To consume the scripts on a control add
// 
//      [RequiredScript(typeof(CommonToolkitScripts))] 
//      public class SomeExtender : ...
// 
// to the controls extender class declaration.


Type.registerNamespace('AjaxControlToolkit');


AjaxControlToolkit.BoxSide = function() {
    /// <summary>
    /// The BoxSide enumeration describes the sides of a DOM element
    /// </summary>
    /// <field name="Top" type="Number" integer="true" static="true" />
    /// <field name="Right" type="Number" integer="true" static="true" />
    /// <field name="Bottom" type="Number" integer="true" static="true" />
    /// <field name="Left" type="Number" integer="true" static="true" />
}
AjaxControlToolkit.BoxSide.prototype = {
    Top : 0,
    Right : 1,
    Bottom : 2,
    Left : 3
}
AjaxControlToolkit.BoxSide.registerEnum("AjaxControlToolkit.BoxSide", false);


AjaxControlToolkit._CommonToolkitScripts = function() {
    /// <summary>
    /// The _CommonToolkitScripts class contains functionality utilized across a number
    /// of controls (but not universally)
    /// </summary>
    /// <remarks>
    /// You should not create new instances of _CommonToolkitScripts.  Instead you should use the shared instance CommonToolkitScripts (or AjaxControlToolkit.CommonToolkitScripts).
    /// </remarks>
}
AjaxControlToolkit._CommonToolkitScripts.prototype = {
    // The order of these lookup tables is directly linked to the BoxSide enum defined above
    _borderStyleNames : ["borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle"],
    _borderWidthNames : ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"],
    _paddingWidthNames : ["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"],
    _marginWidthNames : ["marginTop", "marginRight", "marginBottom", "marginLeft"],

    getCurrentStyle : function(element, attribute, defaultValue) {
        /// <summary>
        /// CommonToolkitScripts.getCurrentStyle is used to compute the value of a style attribute on an
        /// element that is currently being displayed.  This is especially useful for scenarios where
        /// several CSS classes and style attributes are merged, or when you need information about the
        /// size of an element (such as its padding or margins) that is not exposed in any other fashion.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// Live DOM element to check style of
        /// </param>
        /// <param name="attribute" type="String">
        /// The style attribute's name is expected to be in a camel-cased form that you would use when
        /// accessing a JavaScript property instead of the hyphenated form you would use in a CSS
        /// stylesheet (i.e. it should be "backgroundColor" and not "background-color").
        /// </param>
        /// <param name="defaultValue" type="Object" mayBeNull="true" optional="true">
        /// In the event of a problem (i.e. a null element or an attribute that cannot be found) we
        /// return this object (or null if none if not specified).
        /// </param>
        /// <returns type="Object">
        /// Current style of the element's attribute
        /// </returns>

        var currentValue = null;
        if (element) {
            if (element.currentStyle) {
                currentValue = element.currentStyle[attribute];
            } else if (document.defaultView && document.defaultView.getComputedStyle) {
                var style = document.defaultView.getComputedStyle(element, null);
                if (style) {
                    currentValue = style[attribute];
                }
            }
            
            if (!currentValue && element.style.getPropertyValue) {
                currentValue = element.style.getPropertyValue(attribute);
            }
            else if (!currentValue && element.style.getAttribute) {
                currentValue = element.style.getAttribute(attribute);
            }       
        }
        
        if ((!currentValue || currentValue == "" || typeof(currentValue) === 'undefined')) {
            if (typeof(defaultValue) != 'undefined') {
                currentValue = defaultValue;
            }
            else {
                currentValue = null;
            }
        }   
        return currentValue;  
    },

    getInheritedBackgroundColor : function(element) {
        /// <summary>
        /// CommonToolkitScripts.getInheritedBackgroundColor provides the ability to get the displayed
        /// background-color of an element.  In most cases calling CommonToolkitScripts.getCurrentStyle
        /// won't do the job because it will return "transparent" unless the element has been given a
        /// specific background color.  This function will walk up the element's parents until it finds
        /// a non-transparent color.  If we get all the way to the top of the document or have any other
        /// problem finding a color, we will return the default value '#FFFFFF'.  This function is
        /// especially important when we're using opacity in IE (because ClearType will make text look
        /// horrendous if you fade it with a transparent background color).
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// Live DOM element to get the background color of
        /// </param>
        /// <returns type="String">
        /// Background color of the element
        /// </returns>
        
        if (!element) return '#FFFFFF';
        var background = this.getCurrentStyle(element, 'backgroundColor');
        try {
            while (!background || background == '' || background == 'transparent' || background == 'rgba(0, 0, 0, 0)') {
                element = element.parentNode;
                if (!element) {
                    background = '#FFFFFF';
                } else {
                    background = this.getCurrentStyle(element, 'backgroundColor');
                }
            }
        } catch(ex) {
            background = '#FFFFFF';
        }
        return background;
    },

    getLocation : function(element) {
    /// <summary>Gets the coordinates of a DOM element.</summary>
    /// <param name="element" domElement="true"/>
    /// <returns type="Sys.UI.Point">
    ///   A Point object with two fields, x and y, which contain the pixel coordinates of the element.
    /// </returns>

    // workaround for an issue in getLocation where it will compute the location of the document element.
    // this will return an offset if scrolled.
    //
    if (element === document.documentElement) {
        return new Sys.UI.Point(0,0);
    }

    // Workaround for IE6 bug in getLocation (also required patching getBounds - remove that fix when this is removed)
    if (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version < 7) {
        if (element.window === element || element.nodeType === 9 || !element.getClientRects || !element.getBoundingClientRect) return new Sys.UI.Point(0,0);

        // Get the first bounding rectangle in screen coordinates
        var screenRects = element.getClientRects();
        if (!screenRects || !screenRects.length) {
            return new Sys.UI.Point(0,0);
        }
        var first = screenRects[0];

        // Delta between client coords and screen coords
        var dLeft = 0;
        var dTop = 0;

        var inFrame = false;
        try {
            inFrame = element.ownerDocument.parentWindow.frameElement;
        } catch(ex) {
            // If accessing the frameElement fails, a frame is probably in a different
            // domain than its parent - and we still want to do the calculation below
            inFrame = true;
        }

        // If we're in a frame, get client coordinates too so we can compute the delta
        if (inFrame) {
            // Get the bounding rectangle in client coords
            var clientRect = element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0,0);
            }

            // Find the minima in screen coords
            var minLeft = first.left;
            var minTop = first.top;
            for (var i = 1; i < screenRects.length; i++) {
                var r = screenRects[i];
                if (r.left < minLeft) {
                    minLeft = r.left;
                }
                if (r.top < minTop) {
                    minTop = r.top;
                }
            }

            // Compute the delta between screen and client coords
            dLeft = minLeft - clientRect.left;
            dTop = minTop - clientRect.top;
        }

        // Subtract 2px, the border of the viewport (It can be changed in IE6 by applying a border style to the HTML element,
        // but this is not supported by ASP.NET AJAX, and it cannot be changed in IE7.), and also subtract the delta between
        // screen coords and client coords
        var ownerDocument = element.document.documentElement;
        return new Sys.UI.Point(first.left - 2 - dLeft + ownerDocument.scrollLeft, first.top - 2 - dTop + ownerDocument.scrollTop);
    }

    return Sys.UI.DomElement.getLocation(element);
},

    setLocation : function(element, point) {
        /// <summary>
        /// Sets the current location for an element.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="point" type="Object">
        /// Point object (of the form {x,y})
        /// </param>
        /// <remarks>
        /// This method does not attempt to set the positioning mode of an element.
        /// The position is relative from the elements nearest position:relative or
        /// position:absolute element.
        /// </remarks>
        Sys.UI.DomElement.setLocation(element, point.x, point.y);
    },
    
    getContentSize : function(element) {
        /// <summary>
        /// Gets the "content-box" size of an element.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <returns type="Object">
        /// Size of the element (in the form {width,height})
        /// </returns>
        /// <remarks>
        /// The "content-box" is the size of the content area *inside* of the borders and
        /// padding of an element. The "content-box" size does not include the margins around
        /// the element.
        /// </remarks>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        var size = this.getSize(element);
        var borderBox = this.getBorderBox(element);
        var paddingBox = this.getPaddingBox(element);
        return {
            width :  size.width - borderBox.horizontal - paddingBox.horizontal,
            height : size.height - borderBox.vertical - paddingBox.vertical
        }
    },

    getSize : function(element) {
        /// <summary>
        /// Gets the "border-box" size of an element.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <returns type="Object">
        /// Size of the element (in the form {width,height})
        /// </returns>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* of the borders and
        /// padding of an element.  The "border-box" size does not include the margins around
        /// the element.
        /// </remarks>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        return {
            width:  element.offsetWidth,
            height: element.offsetHeight
        };
    },
    
    setContentSize : function(element, size) {
        /// <summary>
        /// Sets the "content-box" size of an element.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="size" type="Object">
        /// Size of the element (in the form {width,height})
        /// </param>
        /// <remarks>
        /// The "content-box" is the size of the content area *inside* of the borders and
        /// padding of an element. The "content-box" size does not include the margins around
        /// the element.
        /// </remarks>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!size) {
            throw Error.argumentNull('size');
        }
        // FF respects -moz-box-sizing css extension, so adjust the box size for the border-box
        if(this.getCurrentStyle(element, 'MozBoxSizing') == 'border-box' || this.getCurrentStyle(element, 'BoxSizing') == 'border-box') {
            var borderBox = this.getBorderBox(element);
            var paddingBox = this.getPaddingBox(element);
            size = {
                width: size.width + borderBox.horizontal + paddingBox.horizontal,
                height: size.height + borderBox.vertical + paddingBox.vertical
            };
        }
        element.style.width = size.width.toString() + 'px';
        element.style.height = size.height.toString() + 'px';
    },
    
    setSize : function(element, size) {
        /// <summary>
        /// Sets the "border-box" size of an element.
        /// </summary>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* of the borders and 
        /// padding of an element.  The "border-box" size does not include the margins around
        /// the element.
        /// </remarks>
        /// <param name="element" type="Sys.UI.DomElement">DOM element</param>
        /// <param name="size" type="Object">Size of the element (in the form {width,height})</param>
        /// <returns />
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!size) {
            throw Error.argumentNull('size');
        }
        var borderBox = this.getBorderBox(element);
        var paddingBox = this.getPaddingBox(element);
        var contentSize = {
            width:  size.width - borderBox.horizontal - paddingBox.horizontal,
            height: size.height - borderBox.vertical - paddingBox.vertical
        };
        this.setContentSize(element, contentSize);
    },
    
    getBounds : function(element) {
        /// <summary>Gets the coordinates, width and height of an element.</summary>
        /// <param name="element" domElement="true"/>
        /// <returns type="Sys.UI.Bounds">
        ///   A Bounds object with four fields, x, y, width and height, which contain the pixel coordinates,
        ///   width and height of the element.
        /// </returns>
        /// <remarks>
        ///   Use the CommonToolkitScripts version of getLocation to handle the workaround for IE6.  We can
        ///   remove the below implementation and just call Sys.UI.DomElement.getBounds when the other bug
        ///   is fixed.
        /// </remarks>
        
        var offset = $common.getLocation(element);
        return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, element.offsetHeight || 0);
    }, 
    
    setBounds : function(element, bounds) {
        /// <summary>
        /// Sets the "border-box" bounds of an element
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="bounds" type="Object">
        /// Bounds of the element (of the form {x,y,width,height})
        /// </param>
        /// <remarks>
        /// The "border-box" is the size of the content area *outside* of the borders and
        /// padding of an element.  The "border-box" size does not include the margins around
        /// the element.
        /// </remarks>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if (!bounds) {
            throw Error.argumentNull('bounds');
        }
        this.setSize(element, bounds);
        $common.setLocation(element, bounds);
    },
    
    getClientBounds : function() {
        /// <summary>
        /// Gets the width and height of the browser client window (excluding scrollbars)
        /// </summary>
        /// <returns type="Sys.UI.Bounds">
        /// Browser's client width and height
        /// </returns>

        var clientWidth;
        var clientHeight;
        switch(Sys.Browser.agent) {
            case Sys.Browser.InternetExplorer:
                clientWidth = document.documentElement.clientWidth;
                clientHeight = document.documentElement.clientHeight;
                break;
            case Sys.Browser.Safari:
                clientWidth = window.innerWidth;
                clientHeight = window.innerHeight;
                break;
            case Sys.Browser.Opera:
                clientWidth = Math.min(window.innerWidth, document.body.clientWidth);
                clientHeight = Math.min(window.innerHeight, document.body.clientHeight);
                break;
            default:  // Sys.Browser.Firefox, etc.
                clientWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);
                clientHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);
                break;
        }
        return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight);
    },
   
    getMarginBox : function(element) {
        /// <summary>
        /// Gets the entire margin box sizes.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <returns type="Object">
        /// Element's margin box sizes (of the form {top,left,bottom,right,horizontal,vertical})
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        var box = {
            top: this.getMargin(element, AjaxControlToolkit.BoxSide.Top),
            right: this.getMargin(element, AjaxControlToolkit.BoxSide.Right),
            bottom: this.getMargin(element, AjaxControlToolkit.BoxSide.Bottom),
            left: this.getMargin(element, AjaxControlToolkit.BoxSide.Left)
        };
        box.horizontal = box.left + box.right;
        box.vertical = box.top + box.bottom;
        return box;
    },
    
    getBorderBox : function(element) {
        /// <summary>
        /// Gets the entire border box sizes.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <returns type="Object">
        /// Element's border box sizes (of the form {top,left,bottom,right,horizontal,vertical})
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        var box = {
            top: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Top),
            right: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Right),
            bottom: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Bottom),
            left: this.getBorderWidth(element, AjaxControlToolkit.BoxSide.Left)
        };
        box.horizontal = box.left + box.right;
        box.vertical = box.top + box.bottom;
        return box;
    },
    
    getPaddingBox : function(element) {
        /// <summary>
        /// Gets the entire padding box sizes.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <returns type="Object">
        /// Element's padding box sizes (of the form {top,left,bottom,right,horizontal,vertical})
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        var box = {
            top: this.getPadding(element, AjaxControlToolkit.BoxSide.Top),
            right: this.getPadding(element, AjaxControlToolkit.BoxSide.Right),
            bottom: this.getPadding(element, AjaxControlToolkit.BoxSide.Bottom),
            left: this.getPadding(element, AjaxControlToolkit.BoxSide.Left)
        };
        box.horizontal = box.left + box.right;
        box.vertical = box.top + box.bottom;
        return box;
    },
    
    isBorderVisible : function(element, boxSide) {
        /// <summary>
        /// Gets whether the current border style for an element on a specific boxSide is not 'none'.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="boxSide" type="AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type="Boolean">
        /// Whether the current border style for an element on a specific boxSide is not 'none'.
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
            throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        var styleName = this._borderStyleNames[boxSide];
        var styleValue = this.getCurrentStyle(element, styleName);
        return styleValue != "none";
    },
    
    getMargin : function(element, boxSide) {
        /// <summary>
        /// Gets the margin thickness of an element on a specific boxSide.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="boxSide" type="AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type="Number" integer="true">
        /// Margin thickness on the element's specified side
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
            throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        var styleName = this._marginWidthNames[boxSide];
        var styleValue = this.getCurrentStyle(element, styleName);
        try { return this.parsePadding(styleValue); } catch(ex) { return 0; }
    },

    getBorderWidth : function(element, boxSide) {
        /// <summary>
        /// Gets the border thickness of an element on a specific boxSide.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="boxSide" type="AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type="Number" integer="true">
        /// Border thickness on the element's specified side
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
            throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        if(!this.isBorderVisible(element, boxSide)) {
            return 0;
        }        
        var styleName = this._borderWidthNames[boxSide];    
        var styleValue = this.getCurrentStyle(element, styleName);
        return this.parseBorderWidth(styleValue);
    },
    
    getPadding : function(element, boxSide) {
        /// <summary>
        /// Gets the padding thickness of an element on a specific boxSide.
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// DOM element
        /// </param>
        /// <param name="boxSide" type="AjaxControlToolkit.BoxSide">
        /// Side of the element
        /// </param>
        /// <returns type="Number" integer="true">
        /// Padding on the element's specified side
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > AjaxControlToolkit.BoxSide.Left) {
            throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, boxSide, 'AjaxControlToolkit.BoxSide'));
        }
        var styleName = this._paddingWidthNames[boxSide];
        var styleValue = this.getCurrentStyle(element, styleName);
        return this.parsePadding(styleValue);
    },
    
    parseBorderWidth : function(borderWidth) {
        /// <summary>
        /// Parses a border-width string into a pixel size
        /// </summary>
        /// <param name="borderWidth" type="String" mayBeNull="true">
        /// Type of border ('thin','medium','thick','inherit',px unit,null,'')
        /// </param>
        /// <returns type="Number" integer="true">
        /// Number of pixels in the border-width
        /// </returns>
        if (!this._borderThicknesses) {
            
            // Populate the borderThicknesses lookup table
            var borderThicknesses = { };
            var div0 = document.createElement('div');
            div0.style.visibility = 'hidden';
            div0.style.position = 'absolute';
            div0.style.fontSize = '1px';
            document.body.appendChild(div0)
            var div1 = document.createElement('div');
            div1.style.height = '0px';
            div1.style.overflow = 'hidden';
            div0.appendChild(div1);
            var base = div0.offsetHeight;
            div1.style.borderTop = 'solid black';
            div1.style.borderTopWidth = 'thin';
            borderThicknesses['thin'] = div0.offsetHeight - base;
            div1.style.borderTopWidth = 'medium';
            borderThicknesses['medium'] = div0.offsetHeight - base;
            div1.style.borderTopWidth = 'thick';
            borderThicknesses['thick'] = div0.offsetHeight - base;
            div0.removeChild(div1);
            document.body.removeChild(div0);
            this._borderThicknesses = borderThicknesses;
        }
        
        if (borderWidth) {
            switch(borderWidth) {
                case 'thin':
                case 'medium':
                case 'thick':
                    return this._borderThicknesses[borderWidth];
                case 'inherit':
                    return 0;
            }
            var unit = this.parseUnit(borderWidth);
            Sys.Debug.assert(unit.type == 'px', String.format(AjaxControlToolkit.Resources.Common_InvalidBorderWidthUnit, unit.type));
            return unit.size;
        }
        return 0;
    },
    
    parsePadding : function(padding) {
        /// <summary>
        /// Parses a padding string into a pixel size
        /// </summary>
        /// <param name="padding" type="String" mayBeNull="true">
        /// Padding to parse ('inherit',px unit,null,'')
        /// </param>
        /// <returns type="Number" integer="true">
        /// Number of pixels in the padding
        /// </returns>
        
        if(padding) {
            if(padding == 'inherit') {
                return 0;
            }
            var unit = this.parseUnit(padding);
            Sys.Debug.assert(unit.type == 'px', String.format(AjaxControlToolkit.Resources.Common_InvalidPaddingUnit, unit.type));
            return unit.size;
        }
        return 0;
    },
    
    parseUnit : function(value) {
        /// <summary>
        /// Parses a unit string into a unit object
        /// </summary>
        /// <param name="value" type="String" mayBeNull="true">
        /// Value to parse (of the form px unit,% unit,em unit,...)
        /// </param>
        /// <returns type="Object">
        /// Parsed unit (of the form {size,type})
        /// </returns>
        
        if (!value) {
            throw Error.argumentNull('value');
        }
        
        value = value.trim().toLowerCase();
        var l = value.length;
        var s = -1;
        for(var i = 0; i < l; i++) {
            var ch = value.substr(i, 1);
            if((ch < '0' || ch > '9') && ch != '-' && ch != '.' && ch != ',') {
                break;
            }
            s = i;
        }
        if(s == -1) {
            throw Error.create(AjaxControlToolkit.Resources.Common_UnitHasNoDigits);
        }
        var type;
        var size;
        if(s < (l - 1)) {
            type = value.substring(s + 1).trim();
        } else {
            type = 'px';
        }
        size = parseFloat(value.substr(0, s + 1));
        if(type == 'px') {
            size = Math.floor(size);
        }
        return { 
            size: size,
            type: type
        };
    },
    
    getElementOpacity : function(element) {
        /// <summary>
        /// Get the element's opacity
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// Element
        /// </param>
        /// <returns type="Number">
        /// Opacity of the element
        /// </returns>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        
        var hasOpacity = false;
        var opacity;
        
        if (element.filters) {
            var filters = element.filters;
            if (filters.length !== 0) {
                var alphaFilter = filters['DXImageTransform.Microsoft.Alpha'];
                if (alphaFilter) {
                    opacity = alphaFilter.opacity / 100.0;
                    hasOpacity = true;
                }
            }
        }
        else {
            opacity = this.getCurrentStyle(element, 'opacity', 1);
            hasOpacity = true;
        }
        
        if (hasOpacity === false) {
            return 1.0;
        }
        return parseFloat(opacity);
    },

    setElementOpacity : function(element, value) {
        /// <summary>
        /// Set the element's opacity
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// Element
        /// </param>
        /// <param name="value" type="Number">
        /// Opacity of the element
        /// </param>
        
        if (!element) {
            throw Error.argumentNull('element');
        }
        
        if (element.filters) {
            var filters = element.filters;
            var createFilter = true;
            if (filters.length !== 0) {
                var alphaFilter = filters['DXImageTransform.Microsoft.Alpha'];
                if (alphaFilter) {
                    createFilter = false;
                    alphaFilter.opacity = value * 100;
                }
            }
            if (createFilter) {
                element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (value * 100) + ')';
            }
        }
        else {
            element.style.opacity = value;
        }
    },
    
    getVisible : function(element) {
        /// <summary>
        /// Check if an element is visible
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// Element
        /// </param>
        /// <returns type="Boolean" mayBeNull="false">
        /// True if the element is visible, false otherwise
        /// </returns>
        
        // Note: reference to CommonToolkitScripts must be left intact (i.e. don't
        // replace with 'this') because this function will be aliased
        
        return (element &&
                ("none" != $common.getCurrentStyle(element, "display")) &&
                ("hidden" != $common.getCurrentStyle(element, "visibility")));
    },
    
    setVisible : function(element, value) {
        /// <summary>
        /// Check if an element is visible
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement" domElement="true">
        /// Element
        /// </param>
        /// <param name="value" type="Boolean" mayBeNull="false">
        /// True to make the element visible, false to hide it
        /// </param>
        
        // Note: reference to CommonToolkitScripts must be left intact (i.e. don't
        // replace with 'this') because this function will be aliased
        
        if (element && value != $common.getVisible(element)) {
            if (value) {
                if (element.style.removeAttribute) {
                    element.style.removeAttribute("display");
                } else {
                   element.style.removeProperty("display");
                }
            } else {
                element.style.display = 'none';
            }
            element.style.visibility = value ? 'visible' : 'hidden';
        }
    },
    
    resolveFunction : function(value) {
        /// <summary>
        /// Returns a function reference that corresponds to the provided value
        /// </summary>
        /// <param name="value" type="Object">
        /// The value can either be a Function, the name of a function (that can be found using window['name']),
        /// or an expression that evaluates to a function.
        /// </param>
        /// <returns type="Function">
        /// Reference to the function, or null if not found
        /// </returns>
        
        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(element, classNames) {
        /// <summary>
        /// Adds multiple css classes to a DomElement
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to modify</param>
        /// <param name="classNames" type="Array">The class names to add</param>
        
        for(var i = 0; i < classNames.length; i++) {
            Sys.UI.DomElement.addCssClass(element, classNames[i]);
        }
    },
    removeCssClasses : function(element, classNames) {
        /// <summary>
        /// Removes multiple css classes to a DomElement
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to modify</param>
        /// <param name="classNames" type="Array">The class names to remove</param>
        
        for(var i = 0; i < classNames.length; i++) {
            Sys.UI.DomElement.removeCssClass(element, classNames[i]);
        }
    },
    setStyle : function(element, style) {
        /// <summary>
        /// Sets the style of the element using the supplied style template object
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to modify</param>
        /// <param name="style" type="Object">The template</param>

        $common.applyProperties(element.style, style);
    },
    removeHandlers : function(element, events) {
        /// <summary>
        /// Removes a set of event handlers from an element
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to modify</param>
        /// <param name="events" type="Object">The template object that contains event names and delegates</param>
        /// <remarks>
        /// This is NOT the same as $clearHandlers which removes all delegates from a DomElement.  This rather removes select delegates 
        /// from a specified element and has a matching signature as $addHandlers
        /// </remarks>
        for (var name in events) {
            $removeHandler(element, name, events[name]);
        }
    },
    
    overlaps : function(r1, r2) {
        /// <summary>
        /// Determine if two rectangles overlap
        /// </summary>
        /// <param name="r1" type="Object">
        /// Rectangle
        /// </param>
        /// <param name="r2" type="Object">
        /// Rectangle
        /// </param>
        /// <returns type="Boolean">
        /// True if the rectangles overlap, false otherwise
        /// </returns>
        
         return r1.x < (r2.x + r2.width)
                && r2.x < (r1.x + r1.width)
                && r1.y < (r2.y + r2.height)
                && r2.y < (r1.y + r1.height);
    },
    
    containsPoint : function(rect, x, y) {
        /// <summary>
        /// Tests whether a point (x,y) is contained within a rectangle
        /// </summary>
        /// <param name="rect" type="Object">The rectangle</param>
        /// <param name="x" type="Number">The x coordinate of the point</param>
        /// <param name="y" type="Number">The y coordinate of the point</param>
        
        return x >= rect.x && x < (rect.x + rect.width) && y >= rect.y && y < (rect.y + rect.height);
    },

    isKeyDigit : function(keyCode) { 
        /// <summary>
        /// Gets whether the supplied key-code is a digit
        /// </summary>
        /// <param name="keyCode" type="Number" integer="true">The key code of the event (from Sys.UI.DomEvent)</param>
        /// <returns type="Boolean" />

        return (0x30 <= keyCode && keyCode <= 0x39); 
    },
    
    isKeyNavigation : function(keyCode) { 
        /// <summary>
        /// Gets whether the supplied key-code is a navigation key
        /// </summary>
        /// <param name="keyCode" type="Number" integer="true">The key code of the event (from Sys.UI.DomEvent)</param>
        /// <returns type="Boolean" />

        return (Sys.UI.Key.left <= keyCode && keyCode <= Sys.UI.Key.down); 
    },
    
    padLeft : function(text, size, ch, truncate) { 
        /// <summary>
        /// Pads the left hand side of the supplied text with the specified pad character up to the requested size
        /// </summary>
        /// <param name="text" type="String">The text to pad</param>
        /// <param name="size" type="Number" integer="true" optional="true">The size to pad the text (default is 2)</param>
        /// <param name="ch" type="String" optional="true">The single character to use as the pad character (default is ' ')</param>
        /// <param name="truncate" type="Boolean" optional="true">Whether to truncate the text to size (default is false)</param>
        
        return $common._pad(text, size || 2, ch || ' ', 'l', truncate || false); 
    },
    
    padRight : function(text, size, ch, truncate) { 
        /// <summary>
        /// Pads the right hand side of the supplied text with the specified pad character up to the requested size
        /// </summary>
        /// <param name="text" type="String">The text to pad</param>
        /// <param name="size" type="Number" integer="true" optional="true">The size to pad the text (default is 2)</param>
        /// <param name="ch" type="String" optional="true">The single character to use as the pad character (default is ' ')</param>
        /// <param name="truncate" type="Boolean" optional="true">Whether to truncate the text to size (default is false)</param>

        return $common._pad(text, size || 2, ch || ' ', 'r', truncate || false); 
    },
    
    _pad : function(text, size, ch, side, truncate) {
        /// <summary>
        /// Pads supplied text with the specified pad character up to the requested size
        /// </summary>
        /// <param name="text" type="String">The text to pad</param>
        /// <param name="size" type="Number" integer="true">The size to pad the text</param>
        /// <param name="ch" type="String">The single character to use as the pad character</param>
        /// <param name="side" type="String">Either 'l' or 'r' to siginfy whether to pad the Left or Right side respectively</param>
        /// <param name="truncate" type="Boolean">Whether to truncate the text to size</param>

        text = text.toString();
        var length = text.length;
        var builder = new Sys.StringBuilder();
        if (side == 'r') {
            builder.append(text);
        } 
        while (length < size) {
            builder.append(ch);
            length++;
        }
        if (side == 'l') {
            builder.append(text);
        }
        var result = builder.toString();
        if (truncate && result.length > size) {
            if (side == 'l') {
                result = result.substr(result.length - size, size);
            } else {
                result = result.substr(0, size);
            }
        }
        return result;
    },
    
    __DOMEvents : {
        focusin : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("focusin", true, false, window, 1); } },
        focusout : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("focusout", true, false, window, 1); } },
        activate : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("activate", true, true, window, 1); } },
        focus : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("focus", false, false, window, 1); } },
        blur : { eventGroup : "UIEvents", init : function(e, p) { e.initUIEvent("blur", false, false, window, 1); } },
        click : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("click", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        dblclick : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("click", true, true, window, 2, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        mousedown : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mousedown", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        mouseup : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mouseup", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        mouseover : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mouseover", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        mousemove : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        mouseout : { eventGroup : "MouseEvents", init : function(e, p) { e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || 0, p.relatedTarget || null); } },
        load : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("load", false, false); } },
        unload : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("unload", false, false); } },
        select : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("select", true, false); } },
        change : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("change", true, false); } },
        submit : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("submit", true, true); } },
        reset : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("reset", true, false); } },
        resize : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("resize", true, false); } },
        scroll : { eventGroup : "HTMLEvents", init : function(e, p) { e.initEvent("scroll", true, false); } }
    },
    
    tryFireRawEvent : function(element, rawEvent) {
        /// <summary>
        /// Attempts to fire a raw DOM event on an element
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to fire the event</param>
        /// <param name="rawEvent" type="Object">The raw DOM event object to fire. Must not be Sys.UI.DomEvent</param>
        /// <returns type="Boolean">True if the event was successfully fired, otherwise false</returns>
        
        try {
            if (element.fireEvent) {
                element.fireEvent("on" + rawEvent.type, rawEvent);
                return true;
            } else if (element.dispatchEvent) {
                element.dispatchEvent(rawEvent);
                return true;
            }
        } catch (e) {
        }
        return false;
    },    

    tryFireEvent : function(element, eventName, properties) {
        /// <summary>
        /// Attempts to fire a DOM event on an element
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to fire the event</param>
        /// <param name="eventName" type="String">The name of the event to fire (without an 'on' prefix)</param>
        /// <param name="properties" type="Object">Properties to add to the event</param>
        /// <returns type="Boolean">True if the event was successfully fired, otherwise false</returns>
        
        try {
            if (document.createEventObject) {
                var e = document.createEventObject();
                $common.applyProperties(e, properties || {});
                element.fireEvent("on" + eventName, e);
                return true;
            } else if (document.createEvent) {
                var def = $common.__DOMEvents[eventName];
                if (def) {
                    var e = document.createEvent(def.eventGroup);
                    def.init(e, properties || {});
                    element.dispatchEvent(e);
                    return true;
                }
            }
        } catch (e) {
        }
        return false;
    },

    wrapElement : function(innerElement, newOuterElement, newInnerParentElement) {
        /// <summary>
        /// Wraps an inner element with a new outer element at the same DOM location as the inner element
        /// </summary>
        /// <param name="innerElement" type="Sys.UI.DomElement">The element to be wrapped</param>
        /// <param name="newOuterElement" type="Sys.UI.DomElement">The new parent for the element</param>
        /// <returns />
        
        var parent = innerElement.parentNode;
        parent.replaceChild(newOuterElement, innerElement);        
        (newInnerParentElement || newOuterElement).appendChild(innerElement);
    },

    unwrapElement : function(innerElement, oldOuterElement) {
        /// <summary>
        /// Unwraps an inner element from an outer element at the same DOM location as the outer element
        /// </summary>
        /// <param name="innerElement" type="Sys.UI.DomElement">The element to be wrapped</param>
        /// <param name="newOuterElement" type="Sys.UI.DomElement">The new parent for the element</param>
        /// <returns />

        var parent = oldOuterElement.parentNode;
        if (parent != null) {
            $common.removeElement(innerElement);
            parent.replaceChild(innerElement, oldOuterElement);
        }
    },
    
    removeElement : function(element) {
        /// <summary>
        /// Removes an element from the DOM tree
        /// </summary>
        /// <param name="element" type="Sys.UI.DomElement">The element to be removed</param>
        /// <returns />

        var parent = element.parentNode;
        if (parent != null) {
            parent.removeChild(element);
        }
    },
 
    applyProperties : function(target, properties) {
        /// <summary>
        /// Quick utility method to copy properties from a template object to a target object
        /// </summary>
        /// <param name="target" type="Object">The object to apply to</param>
        /// <param name="properties" type="Object">The template to copy values from</param>
        
        for (var p in properties) {
            var pv = properties[p];
            if (pv != null && Object.getType(pv)===Object) {
                var tv = target[p];
                $common.applyProperties(tv, pv);
            } else {
                target[p] = pv;
            }
        }
    },
        
    createElementFromTemplate : function(template, appendToParent, nameTable) {
        /// <summary>
        /// Creates an element for the current document based on a template object
        /// </summary>
        /// <param name="template" type="Object">The template from which to create the element</param>
        /// <param name="appendToParent" type="Sys.UI.DomElement" optional="true" mayBeNull="true">A DomElement under which to append this element</param>
        /// <param name="nameTable" type="Object" optional="true" mayBeNull="true">An object to use as the storage for the element using template.name as the key</param>
        /// <returns type="Sys.UI.DomElement" />
        /// <remarks>
        /// This method is useful if you find yourself using the same or similar DomElement constructions throughout a class.  You can even set the templates
        /// as static properties for a type to cut down on overhead.  This method is often called with a JSON style template:
        /// <code>
        /// var elt = $common.createElementFromTemplate({
        ///     nodeName : "div",
        ///     properties : {
        ///         style : {
        ///             height : "100px",
        ///             width : "100px",
        ///             backgroundColor : "white"
        ///         },
        ///         expandoAttribute : "foo"
        ///     },
        ///     events : {
        ///         click : function() { alert("foo"); },
        ///         mouseover : function() { elt.backgroundColor = "silver"; },
        ///         mouseout : function() { elt.backgroundColor = "white"; }
        ///     },
        ///     cssClasses : [ "class0", "class1" ],
        ///     visible : true,
        ///     opacity : .5
        /// }, someParent);
        /// </code>
        /// </remarks>
        
        // if we wish to override the name table we do so here
        if (typeof(template.nameTable)!='undefined') {
            var newNameTable = template.nameTable;
            if (String.isInstanceOfType(newNameTable)) {
                newNameTable = nameTable[newNameTable];
            }
            if (newNameTable != null) {
                nameTable = newNameTable;
            }
        }
        
        // get a name for the element in the nameTable
        var elementName = null;
        if (typeof(template.name)!=='undefined') {
            elementName = template.name;
        }
        
        // create or acquire the element
        var elt = document.createElement(template.nodeName);
        
        // if our element is named, add it to the name table
        if (typeof(template.name)!=='undefined' && nameTable) {
            nameTable[template.name] = elt;
        }
        
        // if we wish to supply a default parent we do so here
        if (typeof(template.parent)!=='undefined' && appendToParent == null) {
            var newParent = template.parent;
            if (String.isInstanceOfType(newParent)) {
                newParent = nameTable[newParent];
            }
            if (newParent != null) {
                appendToParent = newParent;
            }
        }
        
        // properties are applied as expando values to the element
        if (typeof(template.properties)!=='undefined' && template.properties != null) {
            $common.applyProperties(elt, template.properties);
        }
        
        // css classes are added to the element's className property
        if (typeof(template.cssClasses)!=='undefined' && template.cssClasses != null) {
            $common.addCssClasses(elt, template.cssClasses);
        }
        
        // events are added to the dom element using $addHandlers
        if (typeof(template.events)!=='undefined' && template.events != null) {
            $addHandlers(elt, template.events);
        }
        
        // if the element is visible or not its visibility is set
        if (typeof(template.visible)!=='undefined' && template.visible != null) {
            this.setVisible(elt, template.visible);
        }
        
        // if we have an appendToParent we will now append to it
        if (appendToParent) {
            appendToParent.appendChild(elt);
        }

        // if we have opacity, apply it
        if (typeof(template.opacity)!=='undefined' && template.opacity != null) {
            $common.setElementOpacity(elt, template.opacity);
        }
        
        // if we have child templates, process them
        if (typeof(template.children)!=='undefined' && template.children != null) {
            for (var i = 0; i < template.children.length; i++) {
                var subtemplate = template.children[i];
                $common.createElementFromTemplate(subtemplate, elt, nameTable);
            }
        }
        
        // if we have a content presenter for the element get it (the element itself is the default presenter for content)
        var contentPresenter = elt;
        if (typeof(template.contentPresenter)!=='undefined' && template.contentPresenter != null) {
            contentPresenter = nameTable[contentPresenter];
        }
        
        // if we have content, add it
        if (typeof(template.content)!=='undefined' && template.content != null) {
            var content = template.content;
            if (String.isInstanceOfType(content)) {
                content = nameTable[content];
            }
            if (content.parentNode) {
                $common.wrapElement(content, elt, contentPresenter);
            } else {
                contentPresenter.appendChild(content);
            }
        }
        
        // return the created element
        return elt;
    },
    
    prepareHiddenElementForATDeviceUpdate : function () {
        /// <summary>
        /// JAWS, an Assistive Technology device responds to updates to form elements 
        /// and refreshes its document buffer to what is showing live
        /// in the browser. To ensure that Toolkit controls that make XmlHttpRequests to
        /// retrieve content are useful to users with visual disabilities, we update a
        /// hidden form element to ensure that JAWS conveys what is in
        /// the browser. See this article for more details: 
        /// http://juicystudio.com/article/improving-ajax-applications-for-jaws-users.php
        /// This method creates a hidden input on the screen for any page that uses a Toolkit
        /// control that will perform an XmlHttpRequest.
        /// </summary>   
        var objHidden = document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts');
        if (!objHidden) {
            var objHidden = document.createElement('input');
            objHidden.setAttribute('type', 'hidden');
            objHidden.setAttribute('value', '1');
            objHidden.setAttribute('id', 'hiddenInputToUpdateATBuffer_CommonToolkitScripts');
            objHidden.setAttribute('name', 'hiddenInputToUpdateATBuffer_CommonToolkitScripts');
            if ( document.forms[0] ) {
                document.forms[0].appendChild(objHidden);
            }
        }
    },
    
    updateFormToRefreshATDeviceBuffer : function () {
        /// <summary>
        /// Updates the hidden buffer to ensure that the latest document stream is picked up
        /// by the screen reader.
        /// </summary>
        var objHidden = document.getElementById('hiddenInputToUpdateATBuffer_CommonToolkitScripts');

        if (objHidden) {
            if (objHidden.getAttribute('value') == '1') {
                objHidden.setAttribute('value', '0');
            } else {
                objHidden.setAttribute('value', '1');
            }
        }
    }
}

// Create the singleton instance of the CommonToolkitScripts
var CommonToolkitScripts = AjaxControlToolkit.CommonToolkitScripts = new AjaxControlToolkit._CommonToolkitScripts();
var $common = CommonToolkitScripts;

// Alias functions that were moved from BlockingScripts into Common
Sys.UI.DomElement.getVisible = $common.getVisible;
Sys.UI.DomElement.setVisible = $common.setVisible;
Sys.UI.Control.overlaps = $common.overlaps;

AjaxControlToolkit._DomUtility = function() {
    /// <summary>
    /// Utility functions for manipulating the DOM
    /// </summary>
}
AjaxControlToolkit._DomUtility.prototype = {
    isDescendant : function(ancestor, descendant) {
        /// <summary>
        /// Whether the specified element is a descendant of the ancestor
        /// </summary>
        /// <param name="ancestor" type="Sys.UI.DomElement">Ancestor node</param>
        /// <param name="descendant" type="Sys.UI.DomElement">Possible descendant node</param>
        /// <returns type="Boolean" />
        
        for (var n = descendant.parentNode; n != null; n = n.parentNode) {
            if (n == ancestor) return true;
        }
        return false;
    },
    isDescendantOrSelf : function(ancestor, descendant) {
        /// <summary>
        /// Whether the specified element is a descendant of the ancestor or the same as the ancestor
        /// </summary>
        /// <param name="ancestor" type="Sys.UI.DomElement">Ancestor node</param>
        /// <param name="descendant" type="Sys.UI.DomElement">Possible descendant node</param>
        /// <returns type="Boolean" />

        if (ancestor === descendant) 
            return true;
        return AjaxControlToolkit.DomUtility.isDescendant(ancestor, descendant);
    },
    isAncestor : function(descendant, ancestor) {
        /// <summary>
        /// Whether the specified element is an ancestor of the descendant
        /// </summary>
        /// <param name="descendant" type="Sys.UI.DomElement">Descendant node</param>
        /// <param name="ancestor" type="Sys.UI.DomElement">Possible ancestor node</param>
        /// <returns type="Boolean" />

        return AjaxControlToolkit.DomUtility.isDescendant(ancestor, descendant);
    },
    isAncestorOrSelf : function(descendant, ancestor) {
        /// <summary>
        /// Whether the specified element is an ancestor of the descendant or the same as the descendant
        /// </summary>
        /// <param name="descendant" type="Sys.UI.DomElement">Descendant node</param>
        /// <param name="ancestor" type="Sys.UI.DomElement">Possible ancestor node</param>
        /// <returns type="Boolean" />
        
        if (descendant === ancestor)
            return true;
            
        return AjaxControlToolkit.DomUtility.isDescendant(ancestor, descendant);
    },
    isSibling : function(self, sibling) {
        /// <summary>
        /// Whether the specified element is a sibling of the self element
        /// </summary>
        /// <param name="self" type="Sys.UI.DomElement">Self node</param>
        /// <param name="sibling" type="Sys.UI.DomElement">Possible sibling node</param>
        /// <returns type="Boolean" />
        
        var parent = self.parentNode;
        for (var i = 0; i < parent.childNodes.length; i++) {
            if (parent.childNodes[i] == sibling) return true;
        }
        return false;
    }
}
AjaxControlToolkit._DomUtility.registerClass("AjaxControlToolkit._DomUtility");
AjaxControlToolkit.DomUtility = new AjaxControlToolkit._DomUtility();


AjaxControlToolkit.TextBoxWrapper = function(element) {
    /// <summary>
    /// Class that wraps a TextBox (INPUT type="text") to abstract-out the
    /// presence of a watermark (which may be visible to the user but which
    /// should never be read by script.
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// The DOM element the behavior is associated with
    /// </param>
    AjaxControlToolkit.TextBoxWrapper.initializeBase(this, [element]);
    this._current = element.value;
    this._watermark = null;
    this._isWatermarked = false;
}

AjaxControlToolkit.TextBoxWrapper.prototype = {

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        this.get_element().AjaxControlToolkitTextBoxWrapper = null;
        AjaxControlToolkit.TextBoxWrapper.callBaseMethod(this, 'dispose');
    },

    get_Current : function() {
        /// <value type="String">
        /// Current value actually in the TextBox (i.e., TextBox.value)
        /// </value>
        this._current = this.get_element().value;
        return this._current;
    },
    set_Current : function(value) {
        this._current = value;
        this._updateElement();
    },

    get_Value : function() {
        /// <value type="String">
        /// Conceptual "value" of the TextBox - its contents if no watermark is present
        /// or "" if one is
        /// </value>
        if (this.get_IsWatermarked()) {
            return "";
        } else {
            return this.get_Current();
        }
    },
    set_Value : function(text) {
        this.set_Current(text);
        if (!text || (0 == text.length)) {
            if (null != this._watermark) {
                this.set_IsWatermarked(true);
            }
        } else {
            this.set_IsWatermarked(false);
        }
    },

    get_Watermark : function() {
        /// <value type="String">
        /// Text of the watermark for the TextBox
        /// </value>
        return this._watermark;
    },
    set_Watermark : function(value) {
        this._watermark = value;
        this._updateElement();
    },

    get_IsWatermarked : function() {
        /// <value type="Boolean">
        /// true iff the TextBox is watermarked
        /// </value>
        return this._isWatermarked;
    },
    set_IsWatermarked : function(isWatermarked) {
        if (this._isWatermarked != isWatermarked) {
            this._isWatermarked = isWatermarked;
            this._updateElement();
            this._raiseWatermarkChanged();
        }
    },

    _updateElement : function() {
        /// <summary>
        /// Updates the actual contents of the TextBox according to what should be there
        /// </summary>
        var element = this.get_element();
        if (this._isWatermarked) {
            if (element.value != this._watermark) {
                element.value = this._watermark;
            }
        } else {
            if (element.value != this._current) {
                element.value = this._current;
            }
        }
    },

    add_WatermarkChanged : function(handler) {
        /// <summary>
        /// Adds a handler for the WatermarkChanged event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        this.get_events().addHandler("WatermarkChanged", handler);
    },
    remove_WatermarkChanged : function(handler) {
        /// <summary>
        /// Removes a handler for the WatermarkChanged event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        this.get_events().removeHandler("WatermarkChanged", handler);
    },
    _raiseWatermarkChanged : function() {
        /// <summary>
        /// Raises the WatermarkChanged event
        /// </summary>
        var onWatermarkChangedHandler = this.get_events().getHandler("WatermarkChanged");
        if (onWatermarkChangedHandler) {
            onWatermarkChangedHandler(this, Sys.EventArgs.Empty);
        }
    }
}
AjaxControlToolkit.TextBoxWrapper.get_Wrapper = function(element) {
    /// <summary>
    /// Gets (creating one if necessary) the TextBoxWrapper for the specified TextBox
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// TextBox for which to get the wrapper
    /// </param>
    /// <returns type="AjaxControlToolkit.TextBoxWrapper">
    /// TextBoxWrapper instance
    /// </returns>
    if (null == element.AjaxControlToolkitTextBoxWrapper) {
        element.AjaxControlToolkitTextBoxWrapper = new AjaxControlToolkit.TextBoxWrapper(element);
    }
    return element.AjaxControlToolkitTextBoxWrapper;
}
AjaxControlToolkit.TextBoxWrapper.registerClass('AjaxControlToolkit.TextBoxWrapper', Sys.UI.Behavior);

AjaxControlToolkit.TextBoxWrapper.validatorGetValue = function(id) {
    /// <summary>
    /// Wrapper for ASP.NET's validatorGetValue to return the value from the wrapper if present
    /// </summary>
    /// <param name="id" type="String">
    /// id of the element
    /// </param>
    /// <returns type="Object">
    /// Value from the wrapper or result of original ValidatorGetValue
    /// </returns>
    var control = $get(id);
    if (control && control.AjaxControlToolkitTextBoxWrapper) {
        return control.AjaxControlToolkitTextBoxWrapper.get_Value();
    }
    return AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id);
}

// Wrap ASP.NET's ValidatorGetValue with AjaxControlToolkit.TextBoxWrapper.validatorGetValue
// to make validators work properly with watermarked TextBoxes
if (typeof(ValidatorGetValue) == 'function') {
    AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue = ValidatorGetValue;
    ValidatorGetValue = AjaxControlToolkit.TextBoxWrapper.validatorGetValue;
}


// Temporary fix null reference bug in Sys.CultureInfo._getAbbrMonthIndex
if (Sys.CultureInfo.prototype._getAbbrMonthIndex) {
    try {
        Sys.CultureInfo.prototype._getAbbrMonthIndex('');
    } catch(ex) {
        Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value) {
            if (!this._upperAbbrMonths) {
                this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
            }
            return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));
        }
        Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex = Sys.CultureInfo.prototype._getAbbrMonthIndex;
        Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex = Sys.CultureInfo.prototype._getAbbrMonthIndex;
    }
}

/* END AjaxControlToolkit.Common.Common.js */
/* START AjaxControlToolkit.Compat.Timer.Timer.js */
// (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" />


///////////////////////////////////////////////////////////////////////////////
// Sys.Timer

Sys.Timer = function() {
    Sys.Timer.initializeBase(this);
    
    this._interval = 1000;
    this._enabled = false;
    this._timer = null;
}

Sys.Timer.prototype = {
    get_interval: function() {
        
        return this._interval;
    },
    set_interval: function(value) {
        
        if (this._interval !== value) {
            this._interval = value;
            this.raisePropertyChanged('interval');
            
            if (!this.get_isUpdating() && (this._timer !== null)) {
                this._stopTimer();
                this._startTimer();
            }
        }
    },
    
    get_enabled: function() {
        
        return this._enabled;
    },
    set_enabled: function(value) {
        
        if (value !== this.get_enabled()) {
            this._enabled = value;
            this.raisePropertyChanged('enabled');
            if (!this.get_isUpdating()) {
                if (value) {
                    this._startTimer();
                }
                else {
                    this._stopTimer();
                }
            }
        }
    },

    
    add_tick: function(handler) {
        
        
        this.get_events().addHandler("tick", handler);
    },

    remove_tick: function(handler) {
        
        
        this.get_events().removeHandler("tick", handler);
    },

    dispose: function() {
        this.set_enabled(false);
        this._stopTimer();
        
        Sys.Timer.callBaseMethod(this, 'dispose');
    },
    
    updated: function() {
        Sys.Timer.callBaseMethod(this, 'updated');

        if (this._enabled) {
            this._stopTimer();
            this._startTimer();
        }
    },

    _timerCallback: function() {
        var handler = this.get_events().getHandler("tick");
        if (handler) {
            handler(this, Sys.EventArgs.Empty);
        }
    },

    _startTimer: function() {
        this._timer = window.setInterval(Function.createDelegate(this, this._timerCallback), this._interval);
    },

    _stopTimer: function() {
        window.clearInterval(this._timer);
        this._timer = null;
    }
}

Sys.Timer.descriptor = {
    properties: [   {name: 'interval', type: Number},
                    {name: 'enabled', type: Boolean} ],
    events: [ {name: 'tick'} ]
}

Sys.Timer.registerClass('Sys.Timer', Sys.Component);

/* END AjaxControlToolkit.Compat.Timer.Timer.js */
/* START AjaxControlToolkit.Compat.DragDrop.DragDropScripts.js */
// (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="../../Common/Common.js" />
/// <reference path="../Timer/Timer.js" />


///////////////////////////////////////////////////////////////////////////////
// IDropSource

Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.IDragSource = function() {
}
AjaxControlToolkit.IDragSource.prototype = {
    // Type get_dragDataType()
    get_dragDataType: function() { throw Error.notImplemented(); },
    // Object getDragData(Context)
    getDragData: function() { throw Error.notImplemented(); },
    // DragMode get_dragMode()
    get_dragMode: function() { throw Error.notImplemented(); },
    // void onDragStart()
    onDragStart: function() { throw Error.notImplemented(); },
    // void onDrag()
    onDrag: function() { throw Error.notImplemented(); },
    // void onDragEnd(Cancelled)
    onDragEnd: function() { throw Error.notImplemented(); }
}
AjaxControlToolkit.IDragSource.registerInterface('AjaxControlToolkit.IDragSource');

///////////////////////////////////////////////////////////////////////////////
// IDropTarget
AjaxControlToolkit.IDropTarget = function() {
}
AjaxControlToolkit.IDropTarget.prototype = {
    get_dropTargetElement: function() { throw Error.notImplemented(); },
    // bool canDrop(DragMode, DataType, Data)
    canDrop: function() { throw Error.notImplemented(); },
    // void drop(DragMode, DataType, Data)
    drop: function() { throw Error.notImplemented(); },
    // void onDragEnterTarget(DragMode, DataType, Data)
    onDragEnterTarget: function() { throw Error.notImplemented(); },
    // void onDragLeaveTarget(DragMode, DataType, Data)
    onDragLeaveTarget: function() { throw Error.notImplemented(); },
    // void onDragInTarget(DragMode, DataType, Data)
    onDragInTarget: function() { throw Error.notImplemented(); }
}
AjaxControlToolkit.IDropTarget.registerInterface('AjaxControlToolkit.IDropTarget');

///////////////////////////////////////////////
// DragMode
//

AjaxControlToolkit.DragMode = function() {
    throw Error.invalidOperation();
}
AjaxControlToolkit.DragMode.prototype = {
    Copy: 0,
    Move: 1
}
AjaxControlToolkit.DragMode.registerEnum('AjaxControlToolkit.DragMode');

////////////////////////////////////////////////////////////////////
// DragDropEventArgs
//

AjaxControlToolkit.DragDropEventArgs = function(dragMode, dragDataType, dragData) {
    this._dragMode = dragMode;
    this._dataType = dragDataType;
    this._data = dragData;
}
AjaxControlToolkit.DragDropEventArgs.prototype = {
    get_dragMode: function() {
        return this._dragMode || null;
    },
    get_dragDataType: function() {
        return this._dataType || null;
    },
    get_dragData: function() {
        return this._data || null;
    }
}
AjaxControlToolkit.DragDropEventArgs.registerClass('AjaxControlToolkit.DragDropEventArgs');


AjaxControlToolkit._DragDropManager = function() {
    this._instance = null;
    this._events =  null;
}
AjaxControlToolkit._DragDropManager.prototype = {

    add_dragStart: function(handler) {
        this.get_events().addHandler('dragStart', handler);
    },
    remove_dragStart: function(handler) {
        this.get_events().removeHandler('dragStart', handler);
    },
    
    get_events: function() {
    // todo: doc comments. this one is commented out (two //) due to a bug with the preprocessor.
        // <value type="Sys.EventHandlerList">
        // </value>
        if (!this._events) {
            this._events = new Sys.EventHandlerList();
        }
        return this._events;
    },
    
    add_dragStop: function(handler) {
        this.get_events().addHandler('dragStop', handler);
    },
    remove_dragStop: function(handler) {
        this.get_events().removeHandler('dragStop', handler);
    },
    
    _getInstance: function() {
        if (!this._instance) {
            if (Sys.Browser.agent === Sys.Browser.InternetExplorer) {
                this._instance = new AjaxControlToolkit.IEDragDropManager();
            }
            else {
                this._instance = new AjaxControlToolkit.GenericDragDropManager();
            }
            this._instance.initialize();
            this._instance.add_dragStart(Function.createDelegate(this, this._raiseDragStart));
            this._instance.add_dragStop(Function.createDelegate(this, this._raiseDragStop));
        }
        return this._instance;
    },
    
    startDragDrop: function(dragSource, dragVisual, context) {
        this._getInstance().startDragDrop(dragSource, dragVisual, context);
    },
    
    registerDropTarget: function(target) {
        this._getInstance().registerDropTarget(target);
    },
    
    unregisterDropTarget: function(target) {
        this._getInstance().unregisterDropTarget(target);
    },
    
    dispose: function() {
        delete this._events;
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    },
    
    _raiseDragStart: function(sender, eventArgs) {
        var handler = this.get_events().getHandler('dragStart');
        if(handler) {
            handler(this, eventArgs);
        }
    },
    
    _raiseDragStop: function(sender, eventArgs) {
        var handler = this.get_events().getHandler('dragStop');
        if(handler) {
            handler(this, eventArgs);
        }
    }
}
AjaxControlToolkit._DragDropManager.registerClass('AjaxControlToolkit._DragDropManager');
AjaxControlToolkit.DragDropManager = new AjaxControlToolkit._DragDropManager();


AjaxControlToolkit.IEDragDropManager = function() {
    AjaxControlToolkit.IEDragDropManager.initializeBase(this);
    
    this._dropTargets = null;
    // Radius of the cursor used to determine what drop target we 
    // are hovering. Anything below the cursor's zone may be a 
    // potential drop target.
    this._radius = 10;
    this._activeDragVisual = null;
    this._activeContext = null;
    this._activeDragSource = null;
    this._underlyingTarget = null;
    this._oldOffset = null;
    this._potentialTarget = null;
    this._isDragging = false;
    this._mouseUpHandler = null;
    this._documentMouseMoveHandler = null;
    this._documentDragOverHandler = null;
    this._dragStartHandler = null;
    this._mouseMoveHandler = null;
    this._dragEnterHandler = null;
    this._dragLeaveHandler = null;
    this._dragOverHandler = null;
    this._dropHandler = null;
}
AjaxControlToolkit.IEDragDropManager.prototype = {

    add_dragStart : function(handler) {
        this.get_events().addHandler("dragStart", handler);
    },
    
    remove_dragStart : function(handler) {
        this.get_events().removeHandler("dragStart", handler);
    },
    
    add_dragStop : function(handler) {
        this.get_events().addHandler("dragStop", handler);
    },
    
    remove_dragStop : function(handler) {
        this.get_events().removeHandler("dragStop", handler);
    },
    
    initialize : function() {
        AjaxControlToolkit.IEDragDropManager.callBaseMethod(this, 'initialize');
        this._mouseUpHandler = Function.createDelegate(this, this._onMouseUp);
        this._documentMouseMoveHandler = Function.createDelegate(this, this._onDocumentMouseMove);
        this._documentDragOverHandler = Function.createDelegate(this, this._onDocumentDragOver);
        this._dragStartHandler = Function.createDelegate(this, this._onDragStart);
        this._mouseMoveHandler = Function.createDelegate(this, this._onMouseMove);
        this._dragEnterHandler = Function.createDelegate(this, this._onDragEnter);
        this._dragLeaveHandler = Function.createDelegate(this, this._onDragLeave);
        this._dragOverHandler = Function.createDelegate(this, this._onDragOver);
        this._dropHandler = Function.createDelegate(this, this._onDrop);
    },
    
    
    dispose : function() {
        if(this._dropTargets) {
            for (var i = 0; i < this._dropTargets; i++) {
                this.unregisterDropTarget(this._dropTargets[i]);
            }
            this._dropTargets = null;
        }
        
        AjaxControlToolkit.IEDragDropManager.callBaseMethod(this, 'dispose');
    },
    

    startDragDrop : function(dragSource, dragVisual, context) {
        var ev = window._event;
        
        // Don't allow drag and drop if there is another active drag operation going on.
        if (this._isDragging) {
            return;
        }
        
        this._underlyingTarget = null;
        this._activeDragSource = dragSource;
        this._activeDragVisual = dragVisual;
        this._activeContext = context;
        
        var mousePosition = { x: ev.clientX, y: ev.clientY };
        
        // By default we use absolute positioning, unless a different type 
        // of positioning is set explicitly.
        dragVisual.originalPosition = dragVisual.style.position;
        dragVisual.style.position = "absolute";
        
        document._lastPosition = mousePosition;
        dragVisual.startingPoint = mousePosition;
        var scrollOffset = this.getScrollOffset(dragVisual, /* recursive */ true);
        
        dragVisual.startingPoint = this.addPoints(dragVisual.startingPoint, scrollOffset);
        
        if (dragVisual.style.position == "absolute") {
            dragVisual.startingPoint = this.subtractPoints(dragVisual.startingPoint, $common.getLocation(dragVisual));
        }
        else {
            var left = parseInt(dragVisual.style.left);
            var top = parseInt(dragVisual.style.top);
            if (isNaN(left)) left = "0";
            if (isNaN(top)) top = "0";
            
            dragVisual.startingPoint = this.subtractPoints(dragVisual.startingPoint, { x: left, y: top });
        }
        
        // Monitor DOM changes.
        this._prepareForDomChanges();
        dragSource.onDragStart();
        var eventArgs = new AjaxControlToolkit.DragDropEventArgs(
            dragSource.get_dragMode(),
            dragSource.get_dragDataType(),
            dragSource.getDragData(context));
        var handler = this.get_events().getHandler('dragStart');
        if(handler) handler(this,eventArgs);
        this._recoverFromDomChanges();
        
        this._wireEvents();
        
        this._drag(/* isInitialDrag */ true);
    },
    
    
    _stopDragDrop : function(cancelled) {
        var ev = window._event;
        if (this._activeDragSource != null) {
            this._unwireEvents();
        
            if (!cancelled) {
                // The drag operation is cancelled if there 
                // is no drop target.
                cancelled = (this._underlyingTarget == null);
            }

            if (!cancelled && this._underlyingTarget != null) {
                this._underlyingTarget.drop(this._activeDragSource.get_dragMode(), this._activeDragSource.get_dragDataType(),
                    this._activeDragSource.getDragData(this._activeContext));
            }

            this._activeDragSource.onDragEnd(cancelled);
            var handler = this.get_events().getHandler('dragStop');
            if(handler) handler(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;
            ev.preventDefault();
        }
    },
    
    _drag : function(isInitialDrag) {
        var ev = window._event;
        var mousePosition = { x: ev.clientX, y: ev.clientY };
        
        // NOTE: We store the event object to be able to determine the current 
        // mouse position in Mozilla in other event handlers such as keydown.
        document._lastPosition = mousePosition;
        
        var scrollOffset = this.getScrollOffset(this._activeDragVisual, /* recursive */ true);
        var position = this.addPoints(this.subtractPoints(mousePosition, this._activeDragVisual.startingPoint), scrollOffset);
        
        // Check if the visual moved at all.
        if (!isInitialDrag && parseInt(this._activeDragVisual.style.left) == position.x && parseInt(this._activeDragVisual.style.top) == position.y) {
            return;
        }
        
        $common.setLocation(this._activeDragVisual, position);
        
        // Monitor DOM changes.
        this._prepareForDomChanges();
        this._activeDragSource.onDrag();
        this._recoverFromDomChanges();
        
        // Find a potential target.
        this._potentialTarget = this._findPotentialTarget(this._activeDragSource, this._activeDragVisual);
        
        var movedToOtherTarget = (this._potentialTarget != this._underlyingTarget || this._potentialTarget == null);
        // Check if we are leaving an underlying target.
        if (movedToOtherTarget && this._underlyingTarget != null) {
            this._leaveTarget(this._activeDragSource, this._underlyingTarget);
        }
        
        if (this._potentialTarget != null) {
            // Check if we are entering a new target.
            if (movedToOtherTarget) {
                this._underlyingTarget = this._potentialTarget;
                
                // Enter the new target.
                this._enterTarget(this._activeDragSource, this._underlyingTarget);
            }
            else {
                this._moveInTarget(this._activeDragSource, this._underlyingTarget);
            }
        }
        else {
            this._underlyingTarget = null;
        }
    },
    
    
    _wireEvents : function() {
        $addHandler(document, "mouseup", this._mouseUpHandler);
        $addHandler(document, "mousemove", this._documentMouseMoveHandler);
        $addHandler(document.body, "dragover", this._documentDragOverHandler);
        
        $addHandler(this._activeDragVisual, "dragstart", this._dragStartHandler);
        $addHandler(this._activeDragVisual, "dragend", this._mouseUpHandler);
        $addHandler(this._activeDragVisual, "drag", this._mouseMoveHandler);
    },
    
    
    _unwireEvents : function() {
        $removeHandler(this._activeDragVisual, "drag", this._mouseMoveHandler);
        $removeHandler(this._activeDragVisual, "dragend", this._mouseUpHandler);
        $removeHandler(this._activeDragVisual, "dragstart", this._dragStartHandler);

        $removeHandler(document.body, "dragover", this._documentDragOverHandler);
        $removeHandler(document, "mousemove", this._documentMouseMoveHandler);
        $removeHandler(document, "mouseup", this._mouseUpHandler);
    },
    
    
    registerDropTarget : function(dropTarget) {
        if (this._dropTargets == null) {
            this._dropTargets = [];
        }
        Array.add(this._dropTargets, dropTarget);
        
        this._wireDropTargetEvents(dropTarget);
    },
    
    
    unregisterDropTarget : function(dropTarget) {
        this._unwireDropTargetEvents(dropTarget);
        if (this._dropTargets) {
            Array.remove(this._dropTargets, dropTarget);
        }
    },
    
    
    _wireDropTargetEvents : function(dropTarget) {
        var associatedElement = dropTarget.get_dropTargetElement();
        associatedElement._dropTarget = dropTarget;
        $addHandler(associatedElement, "dragenter",  this._dragEnterHandler);
        $addHandler(associatedElement, "dragleave",  this._dragLeaveHandler);
        $addHandler(associatedElement, "dragover", this._dragOverHandler);
        $addHandler(associatedElement, "drop", this._dropHandler);
    },
    
    
    _unwireDropTargetEvents : function(dropTarget) {
        var associatedElement = dropTarget.get_dropTargetElement();
        // make sure that the handlers are not removed twice
        if(associatedElement._dropTarget)
        {
            associatedElement._dropTarget = null;
            $removeHandler(associatedElement, "dragenter",  this._dragEnterHandler);
            $removeHandler(associatedElement, "dragleave",  this._dragLeaveHandler);
            $removeHandler(associatedElement, "dragover", this._dragOverHandler);
            $removeHandler(associatedElement, "drop", this._dropHandler);
        }
    },
    
    
    _onDragStart : function(ev) {
        window._event = ev;
        document.selection.empty();
        
        var dt = ev.dataTransfer;
        if(!dt && ev.rawEvent) dt = ev.rawEvent.dataTransfer;
        
        var dataType = this._activeDragSource.get_dragDataType().toLowerCase();
        var data = this._activeDragSource.getDragData(this._activeContext);
        
        if (data) {
            // TODO: How do we want to deal with 'non-compatible types'?
            if (dataType != "text" && dataType != "url") {
                dataType = "text";
                
                if (data.innerHTML != null) {
                    data = data.innerHTML;
                }
            }
            
            dt.effectAllowed = "move";
            dt.setData(dataType, data.toString());
        }
    },
    
    _onMouseUp : function(ev) {
        window._event = ev;
        this._stopDragDrop(false);
    },
    
    _onDocumentMouseMove : function(ev) {
        window._event = ev;
        this._dragDrop();
    },

    _onDocumentDragOver : function(ev) {
        window._event = ev;
        if(this._potentialTarget) ev.preventDefault();
        //ev.returnValue = (_potentialTarget == null);
    },
    
    _onMouseMove : function(ev) {
        window._event = ev;
        this._drag();
    },
    
    _onDragEnter : function(ev) {
        window._event = ev;
        if (this._isDragging) {
            ev.preventDefault();
            //ev.returnValue = false;
        }
        else {
            // An external object is dragged to the drop target.
            var dataObjects = AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
            for (var i = 0; i < dataObjects.length; i++) {
                this._dropTarget.onDragEnterTarget(AjaxControlToolkit.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
            }
        }
    },
    
    _onDragLeave : function(ev) {
        window._event = ev;
        if (this._isDragging) {
            ev.preventDefault();
            //ev.returnValue = false;
        }
        else {
            // An external object is dragged to the drop target.
            var dataObjects = AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
            for (var i = 0; i < dataObjects.length; i++) {
                this._dropTarget.onDragLeaveTarget(AjaxControlToolkit.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
            }
        }
    },
    
    _onDragOver : function(ev) {
        window._event = ev;
        if (this._isDragging) {
            ev.preventDefault();
            //ev.returnValue = false;
        }
        else {
            // An external object is dragged over the drop target.
            var dataObjects = AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
            for (var i = 0; i < dataObjects.length; i++) {
                this._dropTarget.onDragInTarget(AjaxControlToolkit.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
            }
        }
    },
    
    _onDrop : function(ev) {
        window._event = ev;
        if (!this._isDragging) {
            // An external object is dropped on the drop target.
            var dataObjects = AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
            for (var i = 0; i < dataObjects.length; i++) {
                this._dropTarget.drop(AjaxControlToolkit.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
            }
        }
        ev.preventDefault();
        //ev.returnValue = false;
    },
    
    _getDropTarget : function(element) {
        while (element) {
            if (element._dropTarget != null) {
                return element._dropTarget;
            }
            element = element.parentNode;
        }
        return null;
    },
    
    _dragDrop : function() {
        if (this._isDragging) {
            return;
        }
        
        this._isDragging = true;
        this._activeDragVisual.dragDrop();
        document.selection.empty();
    },
    
    _moveInTarget : function(dragSource, dropTarget) {
        // Monitor DOM changes.
        this._prepareForDomChanges();
        dropTarget.onDragInTarget(dragSource.get_dragMode(), dragSource.get_dragDataType(), dragSource.getDragData(this._activeContext));
        this._recoverFromDomChanges();
    },
    
    _enterTarget : function(dragSource, dropTarget) {
        // Monitor DOM changes.
        this._prepareForDomChanges();
        dropTarget.onDragEnterTarget(dragSource.get_dragMode(), dragSource.get_dragDataType(), dragSource.getDragData(this._activeContext));
        this._recoverFromDomChanges();
    },
    
    _leaveTarget : function(dragSource, dropTarget) {
        // Monitor DOM changes.
        this._prepareForDomChanges();
        dropTarget.onDragLeaveTarget(dragSource.get_dragMode(), dragSource.get_dragDataType(), dragSource.getDragData(this._activeContext));
        this._recoverFromDomChanges();
    },
    
    _findPotentialTarget : function(dragSource, dragVisual) {
        var ev = window._event;

        if (this._dropTargets == null) {
            return null;
        }
        
        var type = dragSource.get_dragDataType();
        var mode = dragSource.get_dragMode();
        var data = dragSource.getDragData(this._activeContext);

        // Get the current cursor location.
        var scrollOffset = this.getScrollOffset(document.body, /* recursive */ true);
        var x = ev.clientX + scrollOffset.x;
        var y = ev.clientY + scrollOffset.y;
        var cursorRect = { x: x - this._radius, y: y - this._radius, width: this._radius * 2, height: this._radius * 2 };
        
        // Find any targets near the current cursor location.
        var targetRect;
        for (var i = 0; i < this._dropTargets.length; i++) {
            targetRect = $common.getBounds(this._dropTargets[i].get_dropTargetElement());
            if ($common.overlaps(cursorRect, targetRect) && this._dropTargets[i].canDrop(mode, type, data)) {
                return this._dropTargets[i];
            }
        }
        
        return null;
    },
    
    _prepareForDomChanges : function() {
        this._oldOffset = $common.getLocation(this._activeDragVisual);
    },
    
    _recoverFromDomChanges : function() {
        var newOffset = $common.getLocation(this._activeDragVisual);
        if (this._oldOffset.x != newOffset.x || this._oldOffset.y != newOffset.y) {
            this._activeDragVisual.startingPoint = this.subtractPoints(this._activeDragVisual.startingPoint, this.subtractPoints(this._oldOffset, newOffset));
            scrollOffset = this.getScrollOffset(this._activeDragVisual, /* recursive */ true);
            var position = this.addPoints(this.subtractPoints(document._lastPosition, this._activeDragVisual.startingPoint), scrollOffset);
            $common.setLocation(this._activeDragVisual, position);
        }
    },
    
    addPoints : function(p1, p2) {
        return { x: p1.x + p2.x, y: p1.y + p2.y };
    },
    
    subtractPoints : function(p1, p2) {
        return { x: p1.x - p2.x, y: p1.y - p2.y };
    },
    
    // -- Drag and drop helper methods.
    getScrollOffset : function(element, recursive) {
        var left = element.scrollLeft;
        var top = element.scrollTop;
        if (recursive) {
            var parent = element.parentNode;
            while (parent != null && parent.scrollLeft != null) {
                left += parent.scrollLeft;
                top += parent.scrollTop;
                // Don't include anything below the body.
                if (parent == document.body && (left != 0 && top != 0))
                    break;
                parent = parent.parentNode;
            }
        }
        return { x: left, y: top };
    },
    
    getBrowserRectangle : function() {
        var width = window.innerWidth;
        var height = window.innerHeight;
        if (width == null) {
            width = document.body.clientWidth;
        }
        if (height == null) {
            height = document.body.clientHeight;
        }
        
        return { x: 0, y: 0, width: width, height: height };
    },
    
    getNextSibling : function(item) {
        for (item = item.nextSibling; item != null; item = item.nextSibling) {
            if (item.innerHTML != null) {
                return item;
            }
        }
        return null;
    },
    
    hasParent : function(element) {
        return (element.parentNode != null && element.parentNode.tagName != null);
    }
}
AjaxControlToolkit.IEDragDropManager.registerClass('AjaxControlToolkit.IEDragDropManager', Sys.Component);

AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget = function(dropTarget) {
    if (dropTarget == null) {
        return [];
    }
    var ev = window._event;
    var dataObjects = [];
    var dataTypes = [ "URL", "Text" ];
    var data;
    for (var i = 0; i < dataTypes.length; i++) {
        var dt = ev.dataTransfer;
        if(!dt && ev.rawEvent) dt = ev.rawEvent.dataTransfer;
        data = dt.getData(dataTypes[i]);
        if (dropTarget.canDrop(AjaxControlToolkit.DragMode.Copy, dataTypes[i], data)) {
            if (data) {
                Array.add(dataObjects, { type : dataTypes[i], value : data });
            }
        }
    }

    return dataObjects;
}


AjaxControlToolkit.GenericDragDropManager = function() {
    AjaxControlToolkit.GenericDragDropManager.initializeBase(this);
    
    this._dropTargets = null;
    // Radius of the cursor used to determine what drop target we 
    // are hovering. Anything below the cursor's zone may be a 
    // potential drop target.
    this._scrollEdgeConst = 40;
    this._scrollByConst = 10;
    this._scroller = null;
    this._scrollDeltaX = 0;
    this._scrollDeltaY = 0;
    this._activeDragVisual = null;
    this._activeContext = null;
    this._activeDragSource = null;
    this._oldOffset = null;
    this._potentialTarget = null;
    this._mouseUpHandler = null;
    this._mouseMoveHandler = null;
    this._keyPressHandler = null;
    this._scrollerTickHandler = null;
}
AjaxControlToolkit.GenericDragDropManager.prototype = {
   
    initialize : function() {
        AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this, "initialize");
        this._mouseUpHandler = Function.createDelegate(this, this._onMouseUp);
        this._mouseMoveHandler = Function.createDelegate(this, this._onMouseMove);
        this._keyPressHandler = Function.createDelegate(this, this._onKeyPress);
        this._scrollerTickHandler = Function.createDelegate(this, this._onScrollerTick);
        if (Sys.Browser.agent === Sys.Browser.Safari) {
            AjaxControlToolkit.GenericDragDropManager.__loadSafariCompatLayer(this);
        }
        this._scroller = new Sys.Timer();
        this._scroller.set_interval(10);
        this._scroller.add_tick(this._scrollerTickHandler);
    },

    startDragDrop : function(dragSource, dragVisual, context) {
        this._activeDragSource = dragSource;
        this._activeDragVisual = dragVisual;
        this._activeContext = context;
        
        AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this, "startDragDrop", [dragSource, dragVisual, context]);
    },
    
    _stopDragDrop : function(cancelled) {
        this._scroller.set_enabled(false);
        
        AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this, "_stopDragDrop", [cancelled]);
    },
    
    _drag : function(isInitialDrag) {
        AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this, "_drag", [isInitialDrag]);
        
        this._autoScroll();
    },
    
    _wireEvents : function() {
        $addHandler(document, "mouseup", this._mouseUpHandler);
        $addHandler(document, "mousemove", this._mouseMoveHandler);
        $addHandler(document, "keypress", this._keyPressHandler);
    },
    
    _unwireEvents : function() {
        $removeHandler(document, "keypress", this._keyPressHandler);
        $removeHandler(document, "mousemove", this._mouseMoveHandler);
        $removeHandler(document, "mouseup", this._mouseUpHandler);
    },
    
    _wireDropTargetEvents : function(dropTarget) {
        //
    },
    
    _unwireDropTargetEvents : function(dropTarget) {
        //
    },
    
    _onMouseUp : function(e) {
        window._event = e;
        this._stopDragDrop(false);
    },
    
    _onMouseMove : function(e) {
        window._event = e;
        this._drag();
    },
    
    _onKeyPress : function(e) {
        window._event = e;
        // Escape.
        var k = e.keyCode ? e.keyCode : e.rawEvent.keyCode;
        if (k == 27) {
            this._stopDragDrop(/* cancel */ true);
        }
    },
    
    _autoScroll : function() {
        var ev = window._event;
        var browserRect = this.getBrowserRectangle();
        if (browserRect.width > 0) {
            this._scrollDeltaX = this._scrollDeltaY = 0;
            if (ev.clientX < browserRect.x + this._scrollEdgeConst) this._scrollDeltaX = -this._scrollByConst;
            else if (ev.clientX > browserRect.width - this._scrollEdgeConst) this._scrollDeltaX = this._scrollByConst;
            if (ev.clientY < browserRect.y + this._scrollEdgeConst) this._scrollDeltaY = -this._scrollByConst;
            else if (ev.clientY > browserRect.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);
            }
        }
    },
    
    _onScrollerTick : function() {
        var oldLeft = document.body.scrollLeft;
        var oldTop = document.body.scrollTop;
        window.scrollBy(this._scrollDeltaX, this._scrollDeltaY);
        var newLeft = document.body.scrollLeft;
        var newTop = document.body.scrollTop;
        
        var dragVisual = this._activeDragVisual;
        var position = { x: parseInt(dragVisual.style.left) + (newLeft - oldLeft), y: parseInt(dragVisual.style.top) + (newTop - oldTop) };
        $common.setLocation(dragVisual, position);
    }
}
AjaxControlToolkit.GenericDragDropManager.registerClass('AjaxControlToolkit.GenericDragDropManager', AjaxControlToolkit.IEDragDropManager);


if (Sys.Browser.agent === Sys.Browser.Safari) {
    AjaxControlToolkit.GenericDragDropManager.__loadSafariCompatLayer = function(ddm) {
        ddm._getScrollOffset = ddm.getScrollOffset;

        ddm.getScrollOffset = function(element, recursive) {
            return { x: 0, y: 0 };
        }

        ddm._getBrowserRectangle = ddm.getBrowserRectangle;

        ddm.getBrowserRectangle = function() {
            var browserRect = ddm._getBrowserRectangle();
            
            var offset = ddm._getScrollOffset(document.body, true);
            return { x: browserRect.x + offset.x, y: browserRect.y + offset.y,
                width: browserRect.width + offset.x, height: browserRect.height + offset.y };
        }
    }
}

/* END AjaxControlToolkit.Compat.DragDrop.DragDropScripts.js */
/* START AjaxControlToolkit.ExtenderBase.BaseScripts.js */
// (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" />


Type.registerNamespace('AjaxControlToolkit');

// This is the base behavior for all extender behaviors
AjaxControlToolkit.BehaviorBase = function(element) {
    /// <summary>
    /// Base behavior for all extender behaviors
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// Element the behavior is associated with
    /// </param>
    AjaxControlToolkit.BehaviorBase.initializeBase(this,[element]);
    
    this._clientStateFieldID = null;
    this._pageRequestManager = null;
    this._partialUpdateBeginRequestHandler = null;
    this._partialUpdateEndRequestHandler = null;
}
AjaxControlToolkit.BehaviorBase.prototype = {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>

        // TODO: Evaluate necessity
        AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'initialize');
    },

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'dispose');

        if (this._pageRequestManager) {
            if (this._partialUpdateBeginRequestHandler) {
                this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequestHandler);
                this._partialUpdateBeginRequestHandler = null;
            }
            if (this._partialUpdateEndRequestHandler) {
                this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestHandler);
                this._partialUpdateEndRequestHandler = null;
            }
            this._pageRequestManager = null;
        }
    },

    get_ClientStateFieldID : function() {
        /// <value type="String">
        /// ID of the hidden field used to store client state
        /// </value>
        return this._clientStateFieldID;
    },
    set_ClientStateFieldID : function(value) {
        if (this._clientStateFieldID != value) {
            this._clientStateFieldID = value;
            this.raisePropertyChanged('ClientStateFieldID');
        }
    },

    get_ClientState : function() {
        /// <value type="String">
        /// Client state
        /// </value>
        if (this._clientStateFieldID) {
            var input = document.getElementById(this._clientStateFieldID);
            if (input) {
                return input.value;
            }
        }
        return null;
    },
    set_ClientState : function(value) {
        if (this._clientStateFieldID) {
            var input = document.getElementById(this._clientStateFieldID);
            if (input) {
                input.value = value;
            }
        }
    },

    registerPartialUpdateEvents : function() {
        /// <summary>
        /// Register for beginRequest and endRequest events on the PageRequestManager,
        /// (which cause _partialUpdateBeginRequest and _partialUpdateEndRequest to be
        /// called when an UpdatePanel refreshes)
        /// </summary>

        if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager){
            this._pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
            if (this._pageRequestManager) {
                this._partialUpdateBeginRequestHandler = Function.createDelegate(this, this._partialUpdateBeginRequest);
                this._pageRequestManager.add_beginRequest(this._partialUpdateBeginRequestHandler);
                this._partialUpdateEndRequestHandler = Function.createDelegate(this, this._partialUpdateEndRequest);
                this._pageRequestManager.add_endRequest(this._partialUpdateEndRequestHandler);
            }
        }
    },

    _partialUpdateBeginRequest : function(sender, beginRequestEventArgs) {
        /// <summary>
        /// Method that will be called when a partial update (via an UpdatePanel) begins,
        /// if registerPartialUpdateEvents() has been called.
        /// </summary>
        /// <param name="sender" type="Object">
        /// Sender
        /// </param>
        /// <param name="beginRequestEventArgs" type="Sys.WebForms.BeginRequestEventArgs">
        /// Event arguments
        /// </param>

        // Nothing done here; override this method in a child class
    },
    
    _partialUpdateEndRequest : function(sender, endRequestEventArgs) {
        /// <summary>
        /// Method that will be called when a partial update (via an UpdatePanel) finishes,
        /// if registerPartialUpdateEvents() has been called.
        /// </summary>
        /// <param name="sender" type="Object">
        /// Sender
        /// </param>
        /// <param name="endRequestEventArgs" type="Sys.WebForms.EndRequestEventArgs">
        /// Event arguments
        /// </param>

        // Nothing done here; override this method in a child class
    }
}
AjaxControlToolkit.BehaviorBase.registerClass('AjaxControlToolkit.BehaviorBase', Sys.UI.Behavior);


// Dynamically populates content when the populate method is called
AjaxControlToolkit.DynamicPopulateBehaviorBase = function(element) {
    /// <summary>
    /// DynamicPopulateBehaviorBase is used to add DynamicPopulateBehavior funcitonality
    /// to other extenders.  It will dynamically populate the contents of the target element
    /// when its populate method is called.
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// DOM Element the behavior is associated with
    /// </param>
    AjaxControlToolkit.DynamicPopulateBehaviorBase.initializeBase(this, [element]);
    
    this._DynamicControlID = null;
    this._DynamicContextKey = null;
    this._DynamicServicePath = null;
    this._DynamicServiceMethod = null;
    this._cacheDynamicResults = false;
    this._dynamicPopulateBehavior = null;
    this._populatingHandler = null;
    this._populatedHandler = null;
}
AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype = {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>

        AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, 'initialize');

        // Create event handlers
        this._populatingHandler = Function.createDelegate(this, this._onPopulating);
        this._populatedHandler = Function.createDelegate(this, this._onPopulated);
    },

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        // Dispose of event handlers
        if (this._populatedHandler) {
            if (this._dynamicPopulateBehavior) {
                this._dynamicPopulateBehavior.remove_populated(this._populatedHandler);
            }
            this._populatedHandler = null;
        }
        if (this._populatingHandler) {
            if (this._dynamicPopulateBehavior) {
                this._dynamicPopulateBehavior.remove_populating(this._populatingHandler);
            }
            this._populatingHandler = null;
        }

        // Dispose of the placeholder control and behavior
        if (this._dynamicPopulateBehavior) {
            this._dynamicPopulateBehavior.dispose();
            this._dynamicPopulateBehavior = null;
        }
        AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, 'dispose');
    },

    populate : function(contextKeyOverride) {
        /// <summary>
        /// Demand-create the DynamicPopulateBehavior and use it to populate the target element
        /// </summary>
        /// <param name="contextKeyOverride" type="String" mayBeNull="true" optional="true">
        /// An arbitrary string value to be passed to the web method. For example, if the element to be populated is within a data-bound repeater, this could be the ID of the current row.
        /// </param>

        // If the DynamicPopulateBehavior's element is out of date, dispose of it
        if (this._dynamicPopulateBehavior && (this._dynamicPopulateBehavior.get_element() != $get(this._DynamicControlID))) {
            this._dynamicPopulateBehavior.dispose();
            this._dynamicPopulateBehavior = null;
        }
        
        // If a DynamicPopulateBehavior is not available and the necessary information is, create one
        if (!this._dynamicPopulateBehavior && this._DynamicControlID && this._DynamicServiceMethod) {
            this._dynamicPopulateBehavior = $create(AjaxControlToolkit.DynamicPopulateBehavior,
                {
                    "id" : this.get_id() + "_DynamicPopulateBehavior",
                    "ContextKey" : this._DynamicContextKey,
                    "ServicePath" : this._DynamicServicePath,
                    "ServiceMethod" : this._DynamicServiceMethod,
                    "cacheDynamicResults" : this._cacheDynamicResults
                }, null, null, $get(this._DynamicControlID));

            // Attach event handlers
            this._dynamicPopulateBehavior.add_populating(this._populatingHandler);
            this._dynamicPopulateBehavior.add_populated(this._populatedHandler);
        }
        
        // If a DynamicPopulateBehavior is available, use it to populate the dynamic content
        if (this._dynamicPopulateBehavior) {
            this._dynamicPopulateBehavior.populate(contextKeyOverride ? contextKeyOverride : this._DynamicContextKey);
        }
    },

    _onPopulating : function(sender, eventArgs) {
        /// <summary>
        /// Handler for DynamicPopulate behavior's Populating event
        /// </summary>
        /// <param name="sender" type="Object">
        /// DynamicPopulate behavior
        /// </param>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event args
        /// </param>
        this.raisePopulating(eventArgs);
    },

    _onPopulated : function(sender, eventArgs) {
        /// <summary>
        /// Handler for DynamicPopulate behavior's Populated event
        /// </summary>
        /// <param name="sender" type="Object">
        /// DynamicPopulate behavior
        /// </param>
        /// <param name="eventArgs" type="Sys.EventArgs" mayBeNull="false">
        /// Event args
        /// </param>
        this.raisePopulated(eventArgs);
    },

    get_dynamicControlID : function() {
        /// <value type="String">
        /// ID of the element to populate with dynamic content
        /// </value>
        return this._DynamicControlID;
    },
    get_DynamicControlID : this.get_dynamicControlID,
    set_dynamicControlID : function(value) {
        if (this._DynamicControlID != value) {
            this._DynamicControlID = value;
            this.raisePropertyChanged('dynamicControlID');
            this.raisePropertyChanged('DynamicControlID');
        }
    },
    set_DynamicControlID : this.set_dynamicControlID,

    get_dynamicContextKey : function() {
        /// <value type="String">
        /// An arbitrary string value to be passed to the web method.
        /// For example, if the element to be populated is within a
        /// data-bound repeater, this could be the ID of the current row.
        /// </value>
        return this._DynamicContextKey;
    },
    get_DynamicContextKey : this.get_dynamicContextKey,
    set_dynamicContextKey : function(value) {
        if (this._DynamicContextKey != value) {
            this._DynamicContextKey = value;
            this.raisePropertyChanged('dynamicContextKey');
            this.raisePropertyChanged('DynamicContextKey');
        }
    },
    set_DynamicContextKey : this.set_dynamicContextKey,

    get_dynamicServicePath : function() {
        /// <value type="String" mayBeNull="true" optional="true">
        /// The URL of the web service to call.  If the ServicePath is not defined, then we will invoke a PageMethod instead of a web service.
        /// </value>
        return this._DynamicServicePath;
    },
    get_DynamicServicePath : this.get_dynamicServicePath,
    set_dynamicServicePath : function(value) {
        if (this._DynamicServicePath != value) {
            this._DynamicServicePath = value;
            this.raisePropertyChanged('dynamicServicePath');
            this.raisePropertyChanged('DynamicServicePath');
        }
    },
    set_DynamicServicePath : this.set_dynamicServicePath,

    get_dynamicServiceMethod : function() {
        /// <value type="String">
        /// The name of the method to call on the page or web service
        /// </value>
        /// <remarks>
        /// The signature of the method must exactly match the following:
        ///     [WebMethod]
        ///     string DynamicPopulateMethod(string contextKey)
        ///     {
        ///         ...
        ///     }
        /// </remarks>
        return this._DynamicServiceMethod;
    },
    get_DynamicServiceMethod : this.get_dynamicServiceMethod,
    set_dynamicServiceMethod : function(value) {
        if (this._DynamicServiceMethod != value) {
            this._DynamicServiceMethod = value;
            this.raisePropertyChanged('dynamicServiceMethod');
            this.raisePropertyChanged('DynamicServiceMethod');
        }
    },
    set_DynamicServiceMethod : this.set_dynamicServiceMethod,
    
    get_cacheDynamicResults : function() {
        /// <value type="Boolean" mayBeNull="false">
        /// Whether the results of the dynamic population should be cached and
        /// not fetched again after the first load
        /// </value>
        return this._cacheDynamicResults;
    },
    set_cacheDynamicResults : function(value) {
        if (this._cacheDynamicResults != value) {
            this._cacheDynamicResults = value;
            this.raisePropertyChanged('cacheDynamicResults');
        }
    },
    
    add_populated : function(handler) {
        /// <summary>
        /// Add a handler on the populated event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        this.get_events().addHandler("populated", handler);
    },
    remove_populated : function(handler) {
        /// <summary>
        /// Remove a handler from the populated event
        /// </summary>
        /// <param name="handler" type="Function">
        /// Handler
        /// </param>
        this.get_events().removeHandler("populated", handler);
    },
    raisePopulated : function(arg) {
        /// <summary>
        /// Raise the populated event
        /// </summary>
        /// <param name="arg" type="Sys.EventArgs">
        /// Event arguments
        /// </param>
        var handler = this.get_events().getHandler("populated");  
        if (handler) handler(this, arg);
    },
    
    add_populating : function(handler) {
        /// <summary>
        /// Add an event handler for the populating event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('populating', handler);
    },
    remove_populating : function(handler) {
        /// <summary>
        /// Remove an event handler from the populating event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('populating', handler);
    },
    raisePopulating : function(eventArgs) {
        /// <summary>
        /// Raise the populating event
        /// </summary>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event arguments for the populating event
        /// </param>
        /// <returns />
        
        var handler = this.get_events().getHandler('populating');
        if (handler) {
            handler(this, eventArgs);
        }
    }
}
AjaxControlToolkit.DynamicPopulateBehaviorBase.registerClass('AjaxControlToolkit.DynamicPopulateBehaviorBase', AjaxControlToolkit.BehaviorBase);


AjaxControlToolkit.ControlBase = function(element) {
    AjaxControlToolkit.ControlBase.initializeBase(this, [element]);
    this._clientStateField = null;
    this._callbackTarget = null;
    this._onsubmit$delegate = Function.createDelegate(this, this._onsubmit);
    this._oncomplete$delegate = Function.createDelegate(this, this._oncomplete);
    this._onerror$delegate = Function.createDelegate(this, this._onerror);
}
AjaxControlToolkit.ControlBase.prototype = {
    initialize : function() {
        AjaxControlToolkit.ControlBase.callBaseMethod(this, "initialize");
        // load the client state if possible
        if (this._clientStateField) {
            this.loadClientState(this._clientStateField.value);
        }
        // attach an event to save the client state before a postback or updatepanel partial postback
        if (typeof(Sys.WebForms)!=="undefined" && typeof(Sys.WebForms.PageRequestManager)!=="undefined") {
            Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements, this._onsubmit$delegate);
        } else {
            $addHandler(document.forms[0], "submit", this._onsubmit$delegate);
        }
    },
    dispose : function() {
        if (typeof(Sys.WebForms)!=="undefined" && typeof(Sys.WebForms.PageRequestManager)!=="undefined") {
            Array.remove(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatements, this._onsubmit$delegate);
        } else {
            $removeHandler(document.forms[0], "submit", this._onsubmit$delegate);
        }
        AjaxControlToolkit.ControlBase.callBaseMethod(this, "dispose");
    },
    findElement : function(id) {
        // <summary>Finds an element within this control (ScriptControl/ScriptUserControl are NamingContainers);
        return $get(this.get_id() + '_' + id.split(':').join('_'));
    },
    get_clientStateField : function() {
        return this._clientStateField;
    },
    set_clientStateField : function(value) {
        if (this.get_isInitialized()) throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_CannotSetClientStateField);
        if (this._clientStateField != value) {
            this._clientStateField = value;
            this.raisePropertyChanged('clientStateField');
        }
    },
    loadClientState : function(value) {
        /// <remarks>override this method to intercept client state loading after a callback</remarks>
    },
    saveClientState : function() {
        /// <remarks>override this method to intercept client state acquisition before a callback</remarks>
        return null;
    },
    _invoke : function(name, args, cb) {
        /// <summary>invokes a callback method on the server control</summary>        
        if (!this._callbackTarget) {
            throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_ControlNotRegisteredForCallbacks);
        }
        if (typeof(WebForm_DoCallback)==="undefined") {
            throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_PageNotRegisteredForCallbacks);
        }
        var ar = [];
        for (var i = 0; i < args.length; i++) 
            ar[i] = args[i];
        var clientState = this.saveClientState();
        if (clientState != null && !String.isInstanceOfType(clientState)) {
            throw Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_InvalidClientStateType);
        }
        var payload = Sys.Serialization.JavaScriptSerializer.serialize({name:name,args:ar,state:this.saveClientState()});
        WebForm_DoCallback(this._callbackTarget, payload, this._oncomplete$delegate, cb, this._onerror$delegate, true);
    },
    _oncomplete : function(result, context) {
        result = Sys.Serialization.JavaScriptSerializer.deserialize(result);
        if (result.error) {
            throw Error.create(result.error);
        }
        this.loadClientState(result.state);
        context(result.result);
    },
    _onerror : function(message, context) {
        throw Error.create(message);
    },
    _onsubmit : function() {
        if (this._clientStateField) {
            this._clientStateField.value = this.saveClientState();
        }
        return true;
    }    
   
}
AjaxControlToolkit.ControlBase.registerClass("AjaxControlToolkit.ControlBase", Sys.UI.Control);

AjaxControlToolkit.Resources={
"PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios must have 4 elements","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","ExtenderBase_CannotSetClientStateField":"clientStateField can only be set before initialization","RTE_PreviewHTML":"Preview HTML","RTE_JustifyCenter":"Justify Center","PasswordStrength_RemainingUpperCase":"{0} more upper case characters","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","RTE_Heading":"Heading","Tabs_PropertySetBeforeInitialization":"{0} cannot be changed before initialization","RTE_OrderedList":"Ordered List","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","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","RTE_Italic":"Italic","CascadingDropDown_NoParentElement":"Failed to find parent element \"{0}\"","ValidatorCallout_DefaultErrorMessage":"This control is invalid","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","RTE_Border":"Border","RTE_Create":"Create","RTE_BackgroundColor":"Background Color","RTE_Cancel":"Cancel","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}","Common_DateTime_InvalidFormat":"Invalid format","ListSearch_DefaultPrompt":"Type to search","CollapsiblePanel_NoControlID":"Failed to find element \"{0}\"","RTE_ViewEditor":"View Editor","RTE_BarColor":"Bar Color","PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very Weak;Weak;Poor;Almost OK;Barely Acceptable;Average;Good;Strong;Excellent;Unbreakable!","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","Rating_CallbackError":"An unhandled exception has occurred:\\r\\n{0}","Tabs_OwnerExpected":"owner must be set before initialize","DynamicPopulate_WebServiceTimeout":"Web service call timed out","PasswordStrength_RemainingLowerCase":"{0} more lower case characters","Animation_MissingAnimationName":"AjaxControlToolkit.Animation.createAnimation requires an object with an AnimationName property","RTE_JustifyRight":"Justify Right","Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of the tabs collection","RTE_CellPadding":"Cell Padding","RTE_ClearFormatting":"Clear Formatting","AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVisibleControlBehavior must have an element","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: ","PasswordStrength_RemainingCharacters":"{0} more characters","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.","PasswordStrength_GetHelpRequirements":"Get help on password requirements","PasswordStrength_InvalidStrengthDescriptions":"Invalid number of text strength descriptions specified","RTE_Underline":"Underline","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","CascadingDropDown_MethodError":"[Method error {0}]","RTE_BorderColor":"Border Color","RTE_Paragraph":"Paragraph","RTE_InsertHorizontalRule":"Insert Horizontal Rule","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","Shared_BrowserSecurityPreventsPaste":"Your browser security settings don\u0027t permit the automatic execution of paste operations. Please use the keyboard shortcut Ctrl+V instead."};
/* END AjaxControlToolkit.ExtenderBase.BaseScripts.js */
/* START AjaxControlToolkit.DragPanel.FloatingBehavior.js */
// (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="../Compat/DragDrop/DragDropScripts.js" />


AjaxControlToolkit.FloatingBehavior = function(element) {
    AjaxControlToolkit.FloatingBehavior.initializeBase(this,[element]);
    
    var _handle;
    var _location;
    var _dragStartLocation;
    var _profileProperty;
    var _profileComponent;
    
    var _mouseDownHandler = Function.createDelegate(this, mouseDownHandler);
    
    this.add_move = function(handler) {
        this.get_events().addHandler('move', handler);
    }
    this.remove_move = function(handler) {
        this.get_events().removeHandler('move', handler);
    }
    
    this.get_handle = function() {
        return _handle;
    }
    this.set_handle = function(value) {
        if (_handle != null) {
            $removeHandler(_handle, "mousedown", _mouseDownHandler);            
        }
    
        _handle = value;
        $addHandler(_handle, "mousedown", _mouseDownHandler);        
    }
    
    this.get_profileProperty = function() {
        return _profileProperty;
    }
    this.set_profileProperty = function(value) {
        //##DEBUG Sys.Debug.assert(!this.get_isInitialized() || _profileProperty === value, "You cannot change the profile property after initialization.");
        _profileProperty = value;
    }
    
    this.get_profileComponent = function() {
        return _profileComponent;
    }
    this.set_profileComponent = function(value) {
        _profileComponent = value;
    }
    
    this.get_location = function() {
        return _location;
    }
    this.set_location = function(value) {
        if (_location != value) {
            _location = value;
            if (this.get_isInitialized()) {                
                $common.setLocation(this.get_element(), _location);
            }
            this.raisePropertyChanged('location');
        }
    }
    
    this.initialize = function() {
        AjaxControlToolkit.FloatingBehavior.callBaseMethod(this, 'initialize');
        AjaxControlToolkit.DragDropManager.registerDropTarget(this);

        var el = this.get_element();

        
        if (!_location) {                       
            _location = $common.getLocation(el);
        }
        
        el.style.position = "fixed";
        $common.setLocation(el, _location);

//        var p = this.get_profileProperty();
//        if(p) {
//            var b = new Sys.Preview.Binding();
//            b.beginUpdate();
//            b.set_target(this);
//            b.set_property("location");
//            var profile = this.get_profileComponent();
//            if(!profile) profile = Sys.Preview.Services.Components.Profile.instance;
//            b.set_dataContext(profile);
//            b.set_dataPath(p);
//            b.set_direction(Sys.Preview.BindingDirection.InOut);            
//                      
//            // we must hook into the loaded event since the profile may be loaded and the location property
//            // will be different. But profile doesnt raise a change notificaiton for every property after a load
//            var a = new Sys.Preview.InvokeMethodAction();
//            a.beginUpdate();
//            a.set_eventSource(profile);
//            a.set_eventName("loadComplete");
//            a.set_target(b);
//            a.set_method("evaluateIn");

//            a.endUpdate();
//            b.endUpdate();

//            this._binding = b;
//            this._action = a;
//        }
    }
    
    this.dispose = function() {
        AjaxControlToolkit.DragDropManager.unregisterDropTarget(this);
        if (_handle && _mouseDownHandler) {
            $removeHandler(_handle, "mousedown", _mouseDownHandler);
            //_handle.detachEvent("onmousedown", _mouseDownHandler);
        }
        _mouseDownHandler = null;
        AjaxControlToolkit.FloatingBehavior.callBaseMethod(this, 'dispose');
    }
    
    this.checkCanDrag = function(element) {
        var undraggableTagNames = ["input", "button", "select", "textarea", "label"];
        var tagName = element.tagName;
        
        if ((tagName.toLowerCase() == "a") && (element.href != null) && (element.href.length > 0)) {
            return false;
        }
        if (Array.indexOf(undraggableTagNames, tagName.toLowerCase()) > -1) {
            return false;
        }
        return true;
    }
    
    function mouseDownHandler(ev) {
        window._event = ev;
        var el = this.get_element();
        
        if (this.checkCanDrag(ev.target)) {
            _dragStartLocation = $common.getLocation(el);
            
            ev.preventDefault();
            
            this.startDragDrop(el);
        }
    }

    // Type get_dataType()
    this.get_dragDataType = function() {
        return "_floatingObject";
    }
    
    // Object get_data(Context)
    this.getDragData = function(context) {
        return null;
    }
    
    // DragMode get_dragMode()
    this.get_dragMode = function() {
        return AjaxControlToolkit.DragMode.Move;
    }
    
    // void onDragStart()
    this.onDragStart = function() { }
    
    // void onDrag()
    this.onDrag = function() { }
    
    // void onDragEnd(Canceled)
    this.onDragEnd = function(canceled) {
        if (!canceled) {
            var handler = this.get_events().getHandler('move');
            if(handler) {
                var cancelArgs = new Sys.CancelEventArgs();
                handler(this, cancelArgs);
                canceled = cancelArgs.get_cancel();
            }            
        }
        
        var el = this.get_element();
        if (canceled) {
            // Restore the position of the control.
            $common.setLocation(el, _dragStartLocation);
        } else {
            _location = $common.getLocation(el);
            this.raisePropertyChanged('location');
        }
    }
    
    this.startDragDrop = function(dragVisual) {
        AjaxControlToolkit.DragDropManager.startDragDrop(this, dragVisual, null);
    }
    
    this.get_dropTargetElement = function() {
        return document.body;
    }
    
    // bool canDrop(DragMode, DataType, Data)
    this.canDrop = function(dragMode, dataType, data) {
        return (dataType == "_floatingObject");
    }
    
    // void drop(DragMode, DataType, Data)
    this.drop = function(dragMode, dataType, data) {}
    
    // void onDragEnterTarget(DragMode, DataType, Data)
    this.onDragEnterTarget = function(dragMode, dataType, data) {}
    
    // void onDragLeaveTarget(DragMode, DataType, Data)
    this.onDragLeaveTarget = function(dragMode, dataType, data) {}
    
    // void onDragInTarget(DragMode, DataType, Data)
    this.onDragInTarget = function(dragMode, dataType, data) {}
}
//AjaxControlToolkit.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: AjaxControlToolkit.DragMode, readOnly: true},
//                    {name: "dropTargetElement", type: Object, readOnly: true},
//                    {name: "handle", type: Sys.UI.DomElement},
//                    {name: "location", type: String} ],
//    events: [   {name: "move"} ]
//}
AjaxControlToolkit.FloatingBehavior.registerClass('AjaxControlToolkit.FloatingBehavior', AjaxControlToolkit.BehaviorBase, AjaxControlToolkit.IDragSource, AjaxControlToolkit.IDropTarget, Sys.IDisposable);

/* END AjaxControlToolkit.DragPanel.FloatingBehavior.js */
/* START AjaxControlToolkit.DynamicPopulate.DynamicPopulateBehavior.js */
// (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" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.DynamicPopulateBehavior = function(element) {
    /// <summary>
    /// The DynamicPopulateBehavior replaces the contents of an element with the result of a web service or page method call.  The method call returns a string of HTML that is inserted as the children of the target element.
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// DOM Element the behavior is associated with
    /// </param>
    AjaxControlToolkit.DynamicPopulateBehavior.initializeBase(this, [element]);
    
    this._servicePath = null;
    this._serviceMethod = null;
    this._contextKey = null;
    this._cacheDynamicResults = false;
    this._populateTriggerID = null;
    this._setUpdatingCssClass = null;
    this._clearDuringUpdate = true;
    this._customScript = null;
    
    this._clickHandler = null;
    
    this._callID = 0;
    this._currentCallID = -1;
    
    // Whether or not we've already populated (used for cacheDynamicResults)
    this._populated = false;
}
AjaxControlToolkit.DynamicPopulateBehavior.prototype = {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        AjaxControlToolkit.DynamicPopulateBehavior.callBaseMethod(this, 'initialize');
        $common.prepareHiddenElementForATDeviceUpdate();        
    
        // hook up the trigger if we have one.
        if (this._populateTriggerID) {
            var populateTrigger = $get(this._populateTriggerID);
            if (populateTrigger) {
                this._clickHandler = Function.createDelegate(this, this._onPopulateTriggerClick);
                $addHandler(populateTrigger, "click", this._clickHandler);
            }
        }
    },
    
    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        // clean up the trigger event.
        if (this._populateTriggerID && this._clickHandler) {
            var populateTrigger = $get(this._populateTriggerID);
            if (populateTrigger) {
                $removeHandler(populateTrigger, "click", this._clickHandler);
            }
            this._populateTriggerID = null;
            this._clickHandler = null;
        }
       
        AjaxControlToolkit.DynamicPopulateBehavior.callBaseMethod(this, 'dispose');
    },
    
    populate : function(contextKey) {
        /// <summary>
        /// Get the dymanic content and use it to populate the target element
        /// </summary>
        /// <param name="contextKey" type="String" mayBeNull="true" optional="true">
        /// An arbitrary string value to be passed to the web method. For example, if the element to be
        /// populated is within a data-bound repeater, this could be the ID of the current row.
        /// </param>
        
        // Don't populate if we already cached the results
        if (this._populated && this._cacheDynamicResults) {
            return;
        }

        // Initialize the population if this is the very first call
        if (this._currentCallID == -1) {
            var eventArgs = new Sys.CancelEventArgs();
            this.raisePopulating(eventArgs);
            if (eventArgs.get_cancel()) {
                return;
            }
            this._setUpdating(true);
        }
        
        // Either run the custom population script or invoke the web service
        if (this._customScript) {
            // Call custom javascript call to populate control
            var scriptResult = eval(this._customScript);
            this.get_element().innerHTML = scriptResult; 
            this._setUpdating(false);
         } else {
             this._currentCallID = ++this._callID;
             if (this._servicePath && this._serviceMethod) {
                Sys.Net.WebServiceProxy.invoke(this._servicePath, this._serviceMethod, false,
                    { contextKey:(contextKey ? contextKey : this._contextKey) },
                    Function.createDelegate(this, this._onMethodComplete), Function.createDelegate(this, this._onMethodError),
                    this._currentCallID);
                $common.updateFormToRefreshATDeviceBuffer();
             }
        }
    },

    _onMethodComplete : function (result, userContext, methodName) {
        /// <summary>
        /// Callback used when the populating service returns successfully
        /// </summary>
        /// <param name="result" type="Object" mayBeNull="">
        /// The data returned from the Web service method call
        /// </param>
        /// <param name="userContext" type="Object">
        /// The context information that was passed when the Web service method was invoked
        /// </param>        
        /// <param name="methodName" type="String">
        /// The Web service method that was invoked
        /// </param>

        // ignore if it's not the current call.
        if (userContext != this._currentCallID) return;

        // Time has passed; make sure the element is still accessible
        var e = this.get_element();
        if (e) {
            e.innerHTML = result;
        }

        this._setUpdating(false);
    },

    _onMethodError : function(webServiceError, userContext, methodName) {
        /// <summary>
        /// Callback used when the populating service fails
        /// </summary>
        /// <param name="webServiceError" type="Sys.Net.WebServiceError">
        /// Web service error
        /// </param>
        /// <param name="userContext" type="Object">
        /// The context information that was passed when the Web service method was invoked
        /// </param>        
        /// <param name="methodName" type="String">
        /// The Web service method that was invoked
        /// </param>

        // ignore if it's not the current call.
        if (userContext != this._currentCallID) return;

        var e = this.get_element();
        if (e) {
            if (webServiceError.get_timedOut()) {
                e.innerHTML = AjaxControlToolkit.Resources.DynamicPopulate_WebServiceTimeout;
            } else {
                e.innerHTML = String.format(AjaxControlToolkit.Resources.DynamicPopulate_WebServiceError, webServiceError.get_statusCode());
            }
        }

        this._setUpdating(false);
    },

    _onPopulateTriggerClick : function() {
        /// <summary>
        /// Handler for the element described by PopulateTriggerID's click event
        /// </summary>

        // just call through to the trigger.
        this.populate(this._contextKey);
    },
    
    _setUpdating : function(updating) {
        /// <summary>
        /// Toggle the display elements to indicate if they are being updated or not
        /// </summary>
        /// <param name="updating" type="Boolean">
        /// Whether or not the display should indicated it is being updated
        /// </param>

        this.setStyle(updating);
        
        if (!updating) {
            this._currentCallID = -1;
            this._populated = true;
            this.raisePopulated(this, Sys.EventArgs.Empty);
        }
    },
    
    setStyle : function(updating) {
        /// <summary>
        /// Set the style of the display
        /// </summary>
        /// <param name="updating" type="Boolean">
        /// Whether or not the display is being updated
        /// </param>
        
        var e = this.get_element();
        if (this._setUpdatingCssClass) {
            if (!updating) {
                e.className = this._oldCss;
                this._oldCss = null;
            } else {
                this._oldCss = e.className;
                e.className = this._setUpdatingCssClass;
            }
        }
        
        if (updating && this._clearDuringUpdate) {
            e.innerHTML = "";
        }
    },
    
    get_ClearContentsDuringUpdate : function() {
        /// <value type="Boolean">
        /// Whether the contents of the target should be cleared when an update begins
        /// </value>
        return this._clearDuringUpdate;
    },
    set_ClearContentsDuringUpdate : function(value) {
        if (this._clearDuringUpdate != value) {
            this._clearDuringUpdate = value;
            this.raisePropertyChanged('ClearContentsDuringUpdate');
        }
    },
    
    get_ContextKey : function() {
        /// <value type="String">
        /// An arbitrary string value to be passed to the web method.
        /// For example, if the element to be populated is within a
        /// data-bound repeater, this could be the ID of the current row.
        /// </value>
        return this._contextKey;
    },
    set_ContextKey : function(value) {
        if (this._contextKey != value) {
            this._contextKey = value;
            this.raisePropertyChanged('ContextKey');
        }
    },
    
    get_PopulateTriggerID : function() {
        /// <value type="String" mayBeNull="true" optional="true">
        /// Name of an element that triggers the population of the target when clicked
        /// </value>
        return this._populateTriggerID;
    },
    set_PopulateTriggerID : function(value) {
        if (this._populateTriggerID != value) {
            this._populateTriggerID = value;
            this.raisePropertyChanged('PopulateTriggerID');
        }
    },
    
    get_ServicePath : function() {
        /// <value type="String" mayBeNull="true" optional="true">
        /// The URL of the web service to call.  If the ServicePath is not defined, then we will invoke a PageMethod instead of a web service.
        /// </value>
        return this._servicePath;
    },
    set_ServicePath : function(value) {
        if (this._servicePath != value) {
            this._servicePath = value;
            this.raisePropertyChanged('ServicePath');
        }
    },
    
    get_ServiceMethod : function() {
        /// <value type="String">
        /// The name of the method to call on the page or web service
        /// </value>
        /// <remarks>
        /// The signature of the method must exactly match the following:
        ///    [WebMethod]
        ///    string DynamicPopulateMethod(string contextKey)
        ///    {
        ///        ...
        ///    }
        /// </remarks>
        return this._serviceMethod;
    },
    set_ServiceMethod : function(value) {
        if (this._serviceMethod != value) {
            this._serviceMethod = value;
            this.raisePropertyChanged('ServiceMethod');
        }
    },
    
    get_cacheDynamicResults : function() {
        /// <value type="Boolean" mayBeNull="false">
        /// Whether the results of the dynamic population should be cached and
        /// not fetched again after the first load
        /// </value>
        return this._cacheDynamicResults;
    },
    set_cacheDynamicResults : function(value) {
        if (this._cacheDynamicResults != value) {
            this._cacheDynamicResults = value;
            this.raisePropertyChanged('cacheDynamicResults');
        }
    },
    
    get_UpdatingCssClass : function() {
        /// <value type="String">
        /// The CSS class to apply to the target during asynchronous calls
        /// </value>
        return this._setUpdatingCssClass;
    },
    set_UpdatingCssClass : function(value) {
        if (this._setUpdatingCssClass != value) {
            this._setUpdatingCssClass = value;
            this.raisePropertyChanged('UpdatingCssClass');
        }
    },
    
    get_CustomScript : function() {
        /// <value type="String">
        /// The script to invoke instead of calling a Web or Page method. This script must evaluate to a string value.
        /// </value>
        return this._customScript;
    },   
    set_CustomScript : function(value) {
        if (this._customScript != value) {
            this._customScript = value;
            this.raisePropertyChanged('CustomScript');
        }
    },
    
    add_populating : function(handler) {
        /// <summary>
        /// Add an event handler for the populating event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('populating', handler);
    },
    remove_populating : function(handler) {
        /// <summary>
        /// Remove an event handler from the populating event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('populating', handler);
    },
    raisePopulating : function(eventArgs) {
        /// <summary>
        /// Raise the populating event
        /// </summary>
        /// <param name="eventArgs" type="Sys.CancelEventArgs" mayBeNull="false">
        /// Event arguments for the populating event
        /// </param>
        /// <returns />
        
        var handler = this.get_events().getHandler('populating');
        if (handler) {
            handler(this, eventArgs);
        }
    },
    
    add_populated : function(handler) {
        /// <summary>
        /// Add an event handler for the populated event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().addHandler('populated', handler);
    },
    remove_populated : function(handler) {
        /// <summary>
        /// Remove an event handler from the populated event
        /// </summary>
        /// <param name="handler" type="Function" mayBeNull="false">
        /// Event handler
        /// </param>
        /// <returns />
        this.get_events().removeHandler('populated', handler);
    },
    raisePopulated : function(eventArgs) {
        /// <summary>
        /// Raise the populated event
        /// </summary>
        /// <param name="eventArgs" type="Sys.EventArgs" mayBeNull="false">
        /// Event arguments for the populated event
        /// </param>
        /// <returns />
         
        var handler = this.get_events().getHandler('populated');
        if (handler) {
            handler(this, eventArgs);
        }
    }
}
AjaxControlToolkit.DynamicPopulateBehavior.registerClass('AjaxControlToolkit.DynamicPopulateBehavior', AjaxControlToolkit.BehaviorBase);

/* END AjaxControlToolkit.DynamicPopulate.DynamicPopulateBehavior.js */
/* START AjaxControlToolkit.RoundedCorners.RoundedCornersBehavior.js */
// (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" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.BoxCorners = function() {
    /// <summary>
    /// Corners of an element
    /// </summary>
    /// <field name="None" type="Number" integer="true" />
    /// <field name="TopLeft" type="Number" integer="true" />
    /// <field name="TopRight" type="Number" integer="true" />
    /// <field name="BottomRight" type="Number" integer="true" />
    /// <field name="BottomLeft" type="Number" integer="true" />
    /// <field name="Top" type="Number" integer="true" />
    /// <field name="Right" type="Number" integer="true" />
    /// <field name="Bottom" type="Number" integer="true" />
    /// <field name="Left" type="Number" integer="true" />
    /// <field name="All" type="Number" integer="true" />
    throw Error.invalidOperation();
}
AjaxControlToolkit.BoxCorners.prototype = {
    None        : 0x00,

    TopLeft     : 0x01,
    TopRight    : 0x02,
    BottomRight : 0x04,
    BottomLeft  : 0x08,
    
    Top         : 0x01 | 0x02,
    Right       : 0x02 | 0x04,
    Bottom      : 0x04 | 0x08,
    Left        : 0x08 | 0x01,
    All         : 0x01 | 0x02 | 0x04 | 0x08
}
AjaxControlToolkit.BoxCorners.registerEnum("AjaxControlToolkit.BoxCorners", true);


AjaxControlToolkit.RoundedCornersBehavior = function(element) {
    /// <summary>
    /// The RoundedCornersBehavior rounds the corners of its target element
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// DOM element associated with the behavior
    /// </param>
    AjaxControlToolkit.RoundedCornersBehavior.initializeBase(this, [element]);
    
    this._corners = AjaxControlToolkit.BoxCorners.All;
    this._radius = 5;
    this._color = null;
    this._parentDiv = null;
    this._originalStyle = null;
    this._borderColor = null;
}
AjaxControlToolkit.RoundedCornersBehavior.prototype = {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        AjaxControlToolkit.RoundedCornersBehavior.callBaseMethod(this, 'initialize');
        this.buildParentDiv();
    },
    
    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        this.disposeParentDiv();
        AjaxControlToolkit.RoundedCornersBehavior.callBaseMethod(this, 'dispose');
    },

    buildParentDiv : function() {
        /// <summary>
        /// Create the surrounding div that will have rounded corners
        /// </summary>
        var e = this.get_element();

        if (!e) return;

        this.disposeParentDiv();
        
        var color = this.getBackgroundColor();
        var originalWidth = e.offsetWidth;
        var newParent = e.cloneNode(false);

        // move all children into the new div.
        this.moveChildren(e, newParent);

        // modify the target element to be transparent
        // and set up the new parent
        this._originalStyle = e.style.cssText;
        e.style.backgroundColor = "transparent";
        e.style.verticalAlign = "top";
        e.style.padding = "0";
        e.style.overflow = "";
        e.style.className = "";
        if (e.style.height) {
            // Increase the height to account for the rounded corners
            e.style.height = parseInt($common.getCurrentStyle(e, 'height')) + (this._radius * 2) + "px";
        } else {
            // Note: Do NOT use $common.getCurrentStyle in the check below
            // because that breaks the work-around
            if (!e.style.width && (0 < originalWidth)) {
                // The following line works around a problem where IE renders the first
                // rounded DIV about 6 pixels too high if e doesn't have a width or height
                e.style.width = originalWidth + "px";
            }
        }

        // these are properties we don't want cloned down to the new parent
        newParent.style.position = "";
        newParent.style.border   = "";
        newParent.style.margin   = "";
        newParent.style.width    = "100%";
        newParent.id             = "";
        newParent.removeAttribute("control");

        if (this._borderColor) {
            newParent.style.borderTopStyle = "none";
            newParent.style.borderBottomStyle = "none";
            newParent.style.borderLeftStyle = "solid";
            newParent.style.borderRightStyle = "solid";
            newParent.style.borderLeftColor = this._borderColor;
            newParent.style.borderRightColor = this._borderColor;
            newParent.style.borderLeftWidth = "1px";
            newParent.style.borderRightWidth = "1px";
            if (this._radius == 0) {
                newParent.style.borderTopStyle = "solid";
                newParent.style.borderBottomStyle = "solid";
                newParent.style.borderTopColor = this._borderColor;
                newParent.style.borderBottomColor = this._borderColor;
                newParent.style.borderTopWidth = "1px";
                newParent.style.borderBottomWidth = "1px";
            }
        } else {
            newParent.style.borderTopStyle = "none";
            newParent.style.borderBottomStyle = "none";
            newParent.style.borderLeftStyle = "none";
            newParent.style.borderRightStyle = "none";
        }

        // build a set of steps on each end to fake the corners.
        //  ------- (step 0)
        //  -------- (step n-1)
        //  --------- (step n)
        //  XXXXXXXXX (inner div)
        //  XXXXXXXXX
        //  --------- (bottom step n)
        //  --------  (bottom step n-1)
        //  ------    (bottom step 0)

        var lastDiv = null;
        var radius = this._radius;
        var lines = this._radius;
        var lastDelta = 0;
        
        for (var i = lines; i > 0; i--) {

            // figure out how much we'll need to subtract from each item
            var angle = Math.acos(i / radius);
            var delta = radius - Math.round(Math.sin(angle) * radius);

            // build a 1 pixel tall div
            // that's delta pixels shorter on each end.

            // add the top one
            var newDiv = document.createElement("DIV");
            newDiv.__roundedDiv = true;
            newDiv.style.backgroundColor = color;
            newDiv.style.marginLeft = delta + "px";
            newDiv.style.marginRight = (delta - (this._borderColor ? 2 : 0)) + "px";
            newDiv.style.height = "1px";
            newDiv.style.fontSize = "1px"; // workaround for IE wierdness with 1px divs.
            newDiv.style.overflow = "hidden";

            if (this._borderColor) {
                newDiv.style.borderLeftStyle = "solid";
                newDiv.style.borderRightStyle = "solid";
                newDiv.style.borderLeftColor = this._borderColor;
                newDiv.style.borderRightColor = this._borderColor;
                
                var offset = Math.max(0, lastDelta - delta - 1);
                newDiv.style.borderLeftWidth = (offset + 1) + "px";
                newDiv.style.borderRightWidth = (offset + 1) + "px";
                
                if (i == lines) {
                    newDiv.__roundedDivNoBorder = true;
                    newDiv.style.backgroundColor = this._borderColor;
                }
            }

            e.insertBefore(newDiv, lastDiv);

            var topDiv = newDiv;

            // add the bottom one one
            newDiv = newDiv.cloneNode(true);
            newDiv.__roundedDiv = true;

            e.insertBefore(newDiv, lastDiv);

            var bottomDiv = newDiv;

            lastDiv = newDiv;
            lastDelta = delta;
            
            if (!this.isCornerSet(AjaxControlToolkit.BoxCorners.TopLeft)) {
                topDiv.style.marginLeft = "0";
                if (this._borderColor) {
                    topDiv.style.borderLeftWidth = "1px";
                }
            }
            if (!this.isCornerSet(AjaxControlToolkit.BoxCorners.TopRight)) {
                topDiv.style.marginRight = "0";
                if (this._borderColor) {
                    topDiv.style.borderRightWidth = "1px";
                    topDiv.style.marginRight = "-2px";
                }
            }
            if (!this.isCornerSet(AjaxControlToolkit.BoxCorners.BottomLeft)) {
                bottomDiv.style.marginLeft = "0";
                if (this._borderColor) {
                    bottomDiv.style.borderLeftWidth = "1px";
                }
            }
            if (!this.isCornerSet(AjaxControlToolkit.BoxCorners.BottomRight)) {
                bottomDiv.style.marginRight = "0";
                if (this._borderColor) {
                    bottomDiv.style.borderRightWidth = "1px";
                    bottomDiv.style.marginRight = "-2px";
                }
            }
        }

        // finally, add the newParent (which has all the original content)
        // into the div.
        e.insertBefore(newParent, lastDiv);
        this._parentDiv = newParent;
    },

    disposeParentDiv : function() {
        /// <summary>
        /// Dispose the surrounding div with rounded corners
        /// </summary>

        if (this._parentDiv) {
            // clean up the divs we added.
            var e = this.get_element();
            var children = e.childNodes;
            for (var i = children.length - 1; i >=0; i--) {
                var child = children[i];
                if (child) {
                    if (child == this._parentDiv) {
                        this.moveChildren(child, e);
                    }
                    try {
                        e.removeChild(child);
                    } catch(e) {
                        // Safari likes to throw NOT_FOUND_ERR (DOMException 8)
                        // but it seems to work fine anyway.
                    }
                }
            }

            // restore the original style
            if (this._originalStyle) {
                e.style.cssText = this._originalStyle;
                this._originalStyle = null;
            }
            this._parentDiv = null;
        }
    },

    getBackgroundColor : function() {
        /// <summary>
        /// Get the background color of the target element
        /// </summary>
        if (this._color) {
            return this._color;
        }
        return $common.getCurrentStyle(this.get_element(), 'backgroundColor');
    },

    moveChildren : function(src, dest) {
        /// <summary>
        /// Move the child nodes from one element to another
        /// </summary>
        /// <param name="src" type="Sys.UI.DomElement" domElement="true">
        /// DOM Element
        /// </param>
        /// <param name="dest" type="Sys.UI.DomElement" domElement="true">
        /// DOM Element
        /// </param>

        var moveCount = 0;
        while (src.hasChildNodes()) {
            var child = src.childNodes[0];
            child = src.removeChild(child);
            dest.appendChild(child);
            moveCount++;
        }
        return moveCount;
    },
    
    isCornerSet : function(corner) {
        /// <summary>
        /// Check whether the a flag for this corner has been set
        /// </summary>
        /// <param name="corner" type="AjaxControlTooolkit.BoxCorners">
        /// Corner to check
        /// </param>
        /// <returns type="Boolean">
        /// True if it is included in the flags, false otherwise
        /// </returns>
        return (this._corners & corner) != AjaxControlToolkit.BoxCorners.None;
    },
    
    setCorner : function(corner, value) {
        /// <summary>
        /// Set a corner as one that should be rounded
        /// </summary>
        /// <param name="corner" type="AjaxControlToolkit.BoxCorners">
        /// Corner to set
        /// </param>
        /// <param name="value" type="Boolean">
        /// True to set the value, False to clear it
        /// </param>
        if (value) {
            this.set_Corners(this._corners | corner);
        } else {
            this.set_Corners(this._corners & ~corner);
        }
    },
    
    get_Color : function() {
        /// <value type="String">
        /// The background color of the rounded area an corners.  By default this picks up the background color of the panel that it is attached to.
        /// </value>
        return this._color;
    },
    set_Color : function(value) {
        if (value != this._color) {
            this._color = value;
            this.buildParentDiv();
            this.raisePropertyChanged('Color');
        }
    },

    get_Radius : function() {
        /// <value type="Number" integer="true">
        /// The radius of the corners (and height of the added area).  Default is 5.
        /// </value>
        return this._radius;
    },
    set_Radius : function(value) {
        if (value != this._radius) {
            this._radius = value;
            this.buildParentDiv();
            this.raisePropertyChanged('Radius');
        }
    },
    
    get_Corners : function() {
        /// <value type="AjaxControlToolkit.BoxCorners">
        /// Corners that should be rounded
        /// </value>
        return this._corners;
    },
    set_Corners : function(value) {
        if (value != this._corners) {
            this._corners = value;
            this.buildParentDiv();
            this.raisePropertyChanged("Corners");
        }
    },
    
    get_BorderColor : function() {
        /// <value type="String">
        /// Color of the border (and hence the rounded corners)
        /// </value>
        return this._borderColor;
    },
    set_BorderColor : function(value) {
        if (value != this._borderColor) {
            this._borderColor = value;
            this.buildParentDiv();
            this.raisePropertyChanged("BorderColor");
        }
    }
}
AjaxControlToolkit.RoundedCornersBehavior.registerClass('AjaxControlToolkit.RoundedCornersBehavior', AjaxControlToolkit.BehaviorBase);

/* END AjaxControlToolkit.RoundedCorners.RoundedCornersBehavior.js */
/* START AjaxControlToolkit.DropShadow.DropShadowBehavior.js */
// (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="../RoundedCorners/RoundedCornersBehavior.js" />
/// <reference path="../Compat/Timer/Timer.js" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.DropShadowBehavior = function(element) {
    /// <summary>
    /// The DropShadowBehavior is used to attach a drop shadow to the element
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// DOM Element the behavior is associated with
    /// </param>
    AjaxControlToolkit.DropShadowBehavior.initializeBase(this, [element]);

    // our property values
    this._opacity = 1.0;
    this._width = 5;

    // the div we create for the shadow.
    this._shadowDiv = null;

    // our timer for tracking position
    this._trackPosition = null;
    this._trackPositionDelay = 50;
    this._timer = null;
    this._tickHandler = null;
    this._roundedBehavior = null;
    this._shadowRoundedBehavior = null;

    this._rounded = false;
    this._radius = 5;

    // our cache of our last size and position for tracking
    this._lastX = null;
    this._lastY = null;
    this._lastW = null;
    this._lastH = null;
}
AjaxControlToolkit.DropShadowBehavior.prototype = {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        AjaxControlToolkit.DropShadowBehavior.callBaseMethod(this, 'initialize');
        
        var e = this.get_element();

        // flip the styles position to relative so that we z-order properly.
        if ($common.getCurrentStyle(e, 'position', e.style.position) != "absolute") {
            e.style.position = "relative";
        }

        // set up our initial state
        if (this._rounded) {
            this.setupRounded();
        }
        if (this._trackPosition) {
            this.startTimer();
        }
        this.setShadow();
    },

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>
        this.stopTimer();
        this.disposeShadowDiv();
        AjaxControlToolkit.DropShadowBehavior.callBaseMethod(this, 'dispose');
    },

    buildShadowDiv : function() {
        /// <summary>
        /// Create the div that we'll use as the shadow
        /// </summary>
        
        var e = this.get_element();

        if (!this.get_isInitialized() || !e || !this._width) return;

        var div = document.createElement("DIV");
        div.style.backgroundColor = "black";
        div.style.position= "absolute";
                
        if (e.id) {
            div.id = e.id + "_DropShadow";
        }

        // initialize a control around it, and
        // set up the opacity behavior and rounding
        this._shadowDiv = div;

       e.parentNode.appendChild(div);

       if (this._rounded ) {
            this._shadowDiv.style.height = Math.max(0, e.offsetHeight - (2*this._radius)) + "px";
            if (!this._shadowRoundedBehavior) {
                this._shadowRoundedBehavior = $create(AjaxControlToolkit.RoundedCornersBehavior, {"Radius": this._radius}, null, null, this._shadowDiv);
            } else {
                this._shadowRoundedBehavior.set_Radius(this._radius);
            }
        } else if (this._shadowRoundedBehavior) {
            this._shadowRoundedBehavior.set_Radius(0);
        }

        if (this._opacity != 1.0) {
            this.setupOpacity();
        }

        this.setShadow(false, true);
        this.updateZIndex();
    },

    disposeShadowDiv : function() {
        /// <summary>
        /// Dispose of the div we use as the shadow
        /// </summary>

        if (this._shadowDiv) {
            // on page teardown (or in an update panel, this may already
            // be gone)
            //
            if (this._shadowDiv.parentNode) {
                this._shadowDiv.parentNode.removeChild(this._shadowDiv);
            }            
            this._shadowDiv = null;
        }
        
        if (this._shadowRoundedBehavior) {
            this._shadowRoundedBehavior.dispose();
            this._shadowRoundedBehavior = null;            
        }
    },

    onTimerTick : function() {
        /// <summary>
        /// Timer's tick handler that is used to position the shadow when its target moves
        /// </summary>
        this.setShadow();
    },

    startTimer : function() {
        /// <summary>
        /// Start the timer (and hence start tracking the bounds of the target element)
        /// </summary>

        if (!this._timer) {
            if (!this._tickHandler) {
                this._tickHandler = Function.createDelegate(this, this.onTimerTick);
            }
            this._timer = new Sys.Timer();
            this._timer.set_interval(this._trackPositionDelay);
            this._timer.add_tick(this._tickHandler);
            this._timer.set_enabled(true);
        }
    },

    stopTimer : function() {
        /// <summary>
        /// Stop the timer (and hence stop tracking the bounds of the target element)
        /// </summary>

        // on stop, just clean the thing up completely
        if (this._timer) {
            this._timer.remove_tick(this._tickHandler);
            this._timer.set_enabled(false);
            this._timer.dispose();
            this._timer = null;
        }
    },

    setShadow : function(force, norecurse) {
        /// <summary>
        /// This function does the heavy lifting of positioning and sizing the shadow.
        /// It caches values to avoid extra work - it's called on a timer so we need to
        /// keep it light weight.
        /// </summary>
        /// <param name="force" type="Boolean">
        /// Whether to force the bounds change
        /// </param>
        /// <param name="norecurse" type="Boolean">
        /// Whether to recurse if we need to recreate the shadow div
        /// </param>

        var e = this.get_element();
        if (!this.get_isInitialized() || !e || (!this._width && !force)) return;

        var existingShadow = this._shadowDiv;
        if (!existingShadow) {
            this.buildShadowDiv();
        }

        // Consider calling offsetLeft first to avoid recursive math of location?                
        var location = $common.getLocation(e);
        
        if (force || this._lastX != location.x || this._lastY != location.y || !existingShadow) {
            this._lastX = location.x;
            this._lastY = location.y;

            var w = this.get_Width();
            
            // to work around setlocation bug because elements embedded within fixed\absolute
            // elements are set relative to their parent instead of the window
            if((e.parentNode.style.position == "absolute") || (e.parentNode.style.position == "fixed") )
            {
                location.x = w;
                location.y = w;
            }
            else if (e.parentNode.style.position == "relative")
            {
                location.x = w;
                var paddingTop = e.parentNode.style.paddingTop;
                paddingTop = paddingTop.replace("px", "");
                
                var intPaddingTop = 0;
                intPaddingTop = parseInt(paddingTop);
                 
                location.y = w + intPaddingTop;
            }
            else
            {
                location.x += w;
                location.y += w;
            }
            
            $common.setLocation(this._shadowDiv, location);
        }

        var h = e.offsetHeight;
        var w = e.offsetWidth;

        if (force || h != this._lastH || w != this._lastW || !existingShadow) {
            this._lastW = w;
            this._lastH = h;
            if (!this._rounded || !existingShadow || norecurse) {
               this._shadowDiv.style.width = w + "px";
               this._shadowDiv.style.height = h + "px";
            } else {
                // recurse if we need to redo the div
                this.disposeShadowDiv();
                this.setShadow();
            }
        }

        if (this._shadowDiv) {
            this._shadowDiv.style.visibility = $common.getCurrentStyle(e, 'visibility');
        }
    },

    setupOpacity : function() {
        /// <summary>
        /// Set the opacity of the shadow div
        /// </summary>
        if (this.get_isInitialized() && this._shadowDiv) {
            $common.setElementOpacity(this._shadowDiv, this._opacity);
        }
    },

    setupRounded : function() {
        /// <summary>
        /// Demand create and initialize the RoundedCornersBehavior
        /// </summary>
        
        if (!this._roundedBehavior && this._rounded) {
            this._roundedBehavior = $create(AjaxControlToolkit.RoundedCornersBehavior, null, null, null, this.get_element());            
        }
        if (this._roundedBehavior) {
            this._roundedBehavior.set_Radius(this._rounded ? this._radius : 0);
        }
    },

    updateZIndex : function() {
        /// <summary>
        /// Update the z-Index so the shadow div remains behind the target element
        /// </summary>

        if (!this._shadowDiv) return;
        
        var e = this.get_element();
        var targetZIndex = e.style.zIndex;
        var shadowZIndex = this._shadowDiv.style.zIndex;

        if (shadowZIndex && targetZIndex && targetZIndex > shadowZIndex) {
            return;
        } else {
           targetZIndex = Math.max(2, targetZIndex);
           shadowZIndex = targetZIndex - 1;
        }
        e.style.zIndex = targetZIndex;
        this._shadowDiv.style.zIndex = shadowZIndex;
    },

    updateRoundedCorners : function() {
        /// <summary>
        /// Update the RoundedCorndersBehavior and recreate the shadow div so its corners are rounded as well
        /// </summary>
        if (this.get_isInitialized()) {
            this.setupRounded();
            this.disposeShadowDiv();
            this.setShadow();
        }
    },

    get_Opacity : function() {
        /// <value type="Number">
        /// The opacity of the drop shadow, from 0 (fully transparent) to 1.0 (fully opaque). The default value is .5.
        /// </value>
        return this._opacity;
    },
    set_Opacity : function(value) {
        if (this._opacity != value) {
            this._opacity = value;
            this.setupOpacity();
            this.raisePropertyChanged('Opacity');
        }
    },

    get_Rounded : function() {
        /// <value type="Boolean">
        /// Whether or not the corners of the target and drop shadow should be rounded
        /// </value>
        return this._rounded;
    },
    set_Rounded : function(value) {
        if (value != this._rounded) {
            this._rounded = value;
            this.updateRoundedCorners();
            this.raisePropertyChanged('Rounded');
        }
    },

    get_Radius : function() {
        /// <value type="Number" integer="true">
        /// Radius, in pixels, of the rounded corners
        /// </value>
        return this._radius;
    },
    set_Radius : function(value) {
        if (value != this._radius) {
            this._radius = value;
            this.updateRoundedCorners();
            this.raisePropertyChanged('Radius');
        }
    },

    get_Width : function() {
        /// <value type="Number" integer="true">
        /// Width in pixels of the drop shadow.  The default value is 5 pixels.
        /// </value>
        return this._width;
    },
    set_Width : function(value) {
        if (value != this._width) {
            this._width = value;
            
            if (this._shadowDiv) {
                $common.setVisible(this._shadowDiv, value > 0);
            }
            
            this.setShadow(true);
            this.raisePropertyChanged('Width');
        }
    },

    get_TrackPositionDelay : function() {
        /// <value type="Number">
        /// Length of the timer interval used when tracking the position of the target
        /// </value>
        return this._trackPositionDelay;
    },
    set_TrackPositionDelay : function(value) {
        if (value != this._trackPositionDelay) {
            this._trackPositionDelay = value;
            if (this._trackPosition) {
                this.stopTimer();
                this.startTimer();
            }
            this.raisePropertyChanged('TrackPositionDelay');
        }
    },

    get_TrackPosition : function() {
        /// <value type="Boolean">
        /// Whether the drop shadow should track the position of the panel it is attached to. Use this if the panel is absolutely positioned or will otherwise move.
        /// </value>
        return this._trackPosition;
    },
    set_TrackPosition : function(value) {
        if (value != this._trackPosition) {
            this._trackPosition = value;
            if (this.get_element()) {
                if (value) {
                    this.startTimer();
                } else {
                    this.stopTimer();
                }
            }
            this.raisePropertyChanged('TrackPosition');
        }
    }
}
AjaxControlToolkit.DropShadowBehavior.registerClass('AjaxControlToolkit.DropShadowBehavior', AjaxControlToolkit.BehaviorBase);
//    getDescriptor : function() {
//        var td = AjaxControlToolkit.DropShadowBehavior.callBaseMethod(this, 'getDescriptor');
//        td.addProperty('Opacity', Number);
//        td.addProperty('Width', Number);
//        td.addProperty('TrackPosition', Boolean);
//        td.addProperty('TrackPositionDelay', Number);
//        td.addProperty('Rounded', Boolean);
//        td.addProperty('Radius', Number);
//        return td;
//    },

/* END AjaxControlToolkit.DropShadow.DropShadowBehavior.js */
/* START AjaxControlToolkit.ModalPopup.ModalPopupBehavior.js */
// (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="../RoundedCorners/RoundedCornersBehavior.js" />
/// <reference path="../Compat/Timer/Timer.js" />
/// <reference path="../DropShadow/DropShadowBehavior.js" />
/// <reference path="../Compat/DragDrop/DragDropScripts.js" />
/// <reference path="../DragPanel/FloatingBehavior.js" />


Type.registerNamespace('AjaxControlToolkit');

AjaxControlToolkit.ModalPopupRepositionMode = function() {
    /// <summary>
    /// The ModalPopupRepositionMode enumeration describes how the modal popup repositions
    /// </summary>
    /// <field name="None" type="Number" integer="true" />
    /// <field name="RepositionOnWindowResize" type="Number" integer="true" />
    /// <field name="RepositionOnWindowScroll" type="Number" integer="true" />
    /// <field name="RepositionOnWindowResizeAndScroll" type="Number" integer="true" />
    throw Error.invalidOperation();
}
AjaxControlToolkit.ModalPopupRepositionMode.prototype = {
    None : 0,
    RepositionOnWindowResize : 1,
    RepositionOnWindowScroll : 2,
    RepositionOnWindowResizeAndScroll : 3
}
AjaxControlToolkit.ModalPopupRepositionMode.registerEnum('AjaxControlToolkit.ModalPopupRepositionMode');


AjaxControlToolkit.ModalPopupBehavior = function(element) {
    /// <summary>
    /// The ModalPopupBehavior is used to display the target element as a modal dialog
    /// </summary>
    /// <param name="element" type="Sys.UI.DomElement" domElement="true">
    /// DOM Element the behavior is associated with
    /// </param>
    AjaxControlToolkit.ModalPopupBehavior.initializeBase(this, [element]);
    
    // Properties
    this._PopupControlID = null;
    this._PopupDragHandleControlID = null;
    this._BackgroundCssClass = null;
    this._DropShadow = false;
    this._Drag = false;    
    this._OkControlID = null;
    this._CancelControlID = null;
    this._OnOkScript = null;
    this._OnCancelScript = null;
    this._xCoordinate = -1;
    this._yCoordinate = -1;
    this._repositionMode = AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll;

    // Variables
    this._backgroundElement = null;
    this._foregroundElement = null;
    this._relativeOrAbsoluteParentElement = null;
    this._popupElement = null;
    this._dragHandleElement = null;
    this._showHandler = null;
    this._okHandler = null;
    this._cancelHandler = null;
    this._scrollHandler = null;
    this._resizeHandler = null;
    this._windowHandlersAttached = false;
    this._dropShadowBehavior = null;
    this._dragBehavior = null;
    this._isIE6 = false;

    this._saveTabIndexes = new Array();
    this._saveDesableSelect = new Array();
    this._tagWithTabIndex = new Array('A','AREA','BUTTON','INPUT','OBJECT','SELECT','TEXTAREA','IFRAME');
}
AjaxControlToolkit.ModalPopupBehavior.prototype = {
    initialize : function() {
        /// <summary>
        /// Initialize the behavior
        /// </summary>
        
        /*
            <div superpopup - drag container resizable><div -- drag handle\dropshadow foreground></div></div>
        */
        AjaxControlToolkit.ModalPopupBehavior.callBaseMethod(this, 'initialize');
        this._isIE6 = (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version < 7);
        if(this._PopupDragHandleControlID)
            this._dragHandleElement = $get(this._PopupDragHandleControlID);

        this._popupElement = $get(this._PopupControlID);
        if(this._DropShadow)
        {
            this._foregroundElement = document.createElement('div');
            this._foregroundElement.id = this.get_id() + '_foregroundElement';
            this._popupElement.parentNode.appendChild(this._foregroundElement);
            this._foregroundElement.appendChild(this._popupElement);
        }
        else
        {
            this._foregroundElement = this._popupElement;
        }
        this._backgroundElement = document.createElement('div');
        this._backgroundElement.id = this.get_id() + '_backgroundElement';
        this._backgroundElement.style.display = 'none';
        this._backgroundElement.style.position = 'fixed';
        this._backgroundElement.style.left = '0px';
        this._backgroundElement.style.top = '0px';
        // Want zIndex to big enough that the background sits above everything else
        // CSS 2.1 defines no bounds for the <integer> type, so pick arbitrarily
        this._backgroundElement.style.zIndex = 10000;
        if (this._BackgroundCssClass) {
            this._backgroundElement.className = this._BackgroundCssClass;
        }
        this._foregroundElement.parentNode.appendChild(this._backgroundElement);

        this._foregroundElement.style.display = 'none';
        this._foregroundElement.style.position = 'fixed';
        this._foregroundElement.style.zIndex = $common.getCurrentStyle(this._backgroundElement, 'zIndex', this._backgroundElement.style.zIndex) + 1;
        
        this._showHandler = Function.createDelegate(this, this._onShow);
        $addHandler(this.get_element(), 'click', this._showHandler);

        if (this._OkControlID) {
            this._okHandler = Function.createDelegate(this, this._onOk);
            $addHandler($get(this._OkControlID), 'click', this._okHandler);
        }

        if (this._CancelControlID) {
            this._cancelHandler = Function.createDelegate(this, this._onCancel);
            $addHandler($get(this._CancelControlID), 'click', this._cancelHandler);
        }

        this._scrollHandler = Function.createDelegate(this, this._onLayout);
        this._resizeHandler = Function.createDelegate(this, this._onLayout);

        // Need to know when partial updates complete
        this.registerPartialUpdateEvents();
    },

    dispose : function() {
        /// <summary>
        /// Dispose the behavior
        /// </summary>

        // Going away; restore any changes to the page
        this._hideImplementation();

        if (this._foregroundElement && this._foregroundElement.parentNode) {
            // Remove background we added to the DOM
            this._foregroundElement.parentNode.removeChild(this._backgroundElement);

            if(this._DropShadow) {
                // Remove DIV wrapper added in initialize
                this._foregroundElement.parentNode.appendChild(this._popupElement);
                this._foregroundElement.parentNode.removeChild(this._foregroundElement);
            }
        }

        this._scrollHandler = null;
        this._resizeHandler = null;
        if (this._cancelHandler && $get(this._CancelControlID)) {
            $removeHandler($get(this._CancelControlID), 'click', this._cancelHandler);
            this._cancelHandler = null;
        }
        if (this._okHandler && $get(this._OkControlID)) {
            $removeHandler($get(this._OkControlID), 'click', this._okHandler);
            this._okHandler = null;
        }
        if (this._showHandler) {
            $removeHandler(this.get_element(), 'click', this._showHandler);
            this._showHandler = null;
        }
        
        AjaxControlToolkit.ModalPopupBehavior.callBaseMethod(this, 'dispose');
    },

    _attachPopup : function() {
        /// <summary>
        /// Attach the event handlers for the popup
        /// </summary>

        if (this._DropShadow && !this._dropShadowBehavior) {
            this._dropShadowBehavior = $create(AjaxControlToolkit.DropShadowBehavior, {}, null, null, this._popupElement);
        }
        if (this._dragHandleElement && !this._dragBehavior) {
            this._dragBehavior = $create(AjaxControlToolkit.FloatingBehavior, {"handle" : this._dragHandleElement}, null, null, this._foregroundElement);
        }        
                
        $addHandler(window, 'resize', this._resizeHandler);
        $addHandler(window, 'scroll', this._scrollHandler);
        this._windowHandlersAttached = true;
    },

    _detachPopup : function() {
        /// <summary>
        /// Detach the event handlers for the popup
        /// </summary>

        if (this._windowHandlersAttached) {
            if (this._scrollHandler) {
                $removeHandler(window, 'scroll', this._scrollHandler);
            }
            if (this._resizeHandler) {
                $removeHandler(window, 'resize', this._resizeHandler);
            }
            this._windowHandlersAttached = false;
        }
        
        if (this._dragBehavior) {
            this._dragBehavior.dispose();
            this._dragBehavior = null;
        }       
        
        if (this._dropShadowBehavior) {
            this._dropShadowBehavior.dispose();
            this._dropShadowBehavior = null;
        }
    },

    _onShow : function(e) {
        /// <summary>
        /// Handler for the target's click event
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">
        /// Event info
        /// </param>

        if (!this.get_element().disabled) {
            this.show();
            e.preventDefault();
            return false;
        }
    },

    _onOk : function(e) {
        /// <summary>
        /// Handler for the modal dialog's OK button click
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">
        /// Event info
        /// </param>

        var element = $get(this._OkControlID);
        if (element && !element.disabled) {
            if (this.hide() && this._OnOkScript) {
                window.setTimeout(this._OnOkScript, 0);
            }
            e.preventDefault();
            return false;
        }
    },

    _onCancel : function(e) {
        /// <summary>
        /// Handler for the modal dialog's Cancel button click
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">
        /// Event info
        /// </param>

        var element = $get(this._CancelControlID);
        if (element && !element.disabled) {
            if (this.hide() && this._OnCancelScript) {
                window.setTimeout(this._OnCancelScript, 0);
            }
            e.preventDefault();
            return false;
        }
    },

    _onLayout : function(e) {
        /// <summary>
        /// Handler for scrolling and resizing events that would require a repositioning of the modal dialog
        /// </summary>
        /// <param name="e" type="Sys.UI.DomEvent">
        /// Event info
        /// </param>
        var positioning = this.get_repositionMode();
        if (((positioning === AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowScroll) ||
            (positioning === AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll)) && (e.type === 'scroll')) {
            this._layout();
        } else if (((positioning === AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResize) ||
            (positioning === AjaxControlToolkit.ModalPopupRepositionMode.RepositionOnWindowResizeAndScroll)) && (e.type === 'resize')) {
            this._layout();
        } else {
            // Layout background element again to make sure it covers the whole background.
            // This needs to be called separately since _layout will not be always called
            // to reposition the popup depending on the RepositionMode but the background needs 
            // to handle the resize/scroll every time.
            this._layoutBackgroundElement();
        }
    },

    show : function() {
        /// <summary>
        /// Display the element referenced by PopupControlID as a modal dialog
        /// </summary>
        
        var eventArgs = new Sys.CancelEventArgs();
        this.raiseShowing(eventArgs);
        if (eventArgs.get_cancel()) {
            return;
        }
        
        this.populate();
        this._attachPopup();

        this._backgroundElement.style.display = '';
        this._foregroundElement.style.display = '';
        this._popupElement.style.display = '';
        if (this._isIE6) {
            this._foregroundElement.style.position = 'absolute';
            this._backgroundElement.style.position = 'absolute'; 
            // find the relative or absolute parent
            var tempRelativeOrAbsoluteParent = this._foregroundElement.parentNode;
            while (tempRelativeOrAbsoluteParent && (tempRelativeOrAbsoluteParent != document.documentElement)) {
                if((tempRelativeOrAbsoluteParent.style.position != 'relative') && (tempRelativeOrAbsoluteParent.style.position != 'absolute')) {
                    tempRelativeOrAbsoluteParent = tempRelativeOrAbsoluteParent.parentNode;
                } else {
                    this._relativeOrAbsoluteParentElement = tempRelativeOrAbsoluteParent;
                    break;
                }
            }                       
        }        


        // Disable TAB
        this.disableTab();

        this._layout();
        // On pages that don't need scrollbars, Firefox and Safari act like
        // one or both are present the first time the layout code runs which
        // obviously leads to display issues - run the layout code a second
        // time to work around this problem
        this._layout();
        
        this.raiseShown(Sys.EventArgs.Empty);
    },

    disableTab : function() {
        /// <summary>
        /// Change the tab indices so we only tab through the modal popup
        /// (and hide SELECT tags in IE6)
        /// </summary>

        var i = 0;
        var tagElements;
        var tagElementsInPopUp = new Array();
        Array.clear(this._saveTabIndexes);

        //Save all popup's tag in tagElementsInPopUp
        for (var j = 0; j < this._tagWithTabIndex.length; j++) {
            tagElements = this._foregroundElement.getElementsByTagName(this._tagWithTabIndex[j]);
            for (var k = 0 ; k < tagElements.length; k++) {
                tagElementsInPopUp[i] = tagElements[k];
                i++;
            }
        }

        i = 0;
        for (var j = 0; j < this._tagWithTabIndex.length; j++) {
            tagElements = document.getElementsByTagName(this._tagWithTabIndex[j]);
            for (var k = 0 ; k < tagElements.length; k++) {
                if (Array.indexOf(tagElementsInPopUp, tagElements[k]) == -1)  {
                    this._saveTabIndexes[i] = {tag: tagElements[k], index: tagElements[k].tabIndex};
                    tagElements[k].tabIndex="-1";
                    i++;
                }
            }
        }

        //IE6 Bug with SELECT element always showing up on top
        i = 0;
        if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) {
            //Save SELECT in PopUp
            var tagSelectInPopUp = new Array();
            for (var j = 0; j < this._tagWithTabIndex.length; j++) {
                tagElements = this._foregroundElement.getElementsByTagName('SELECT');
                for (var k = 0 ; k < tagElements.length; k++) {
                    tagSelectInPopUp[i] = tagElements[k];
                    i++;
                }
            }

            i = 0;
            Array.clear(this._saveDesableSelect);
            tagElements = document.getElementsByTagName('SELECT');
            for (var k = 0 ; k < tagElements.length; k++) {
                if (Array.indexOf(tagSelectInPopUp, tagElements[k]) == -1)  {
                    this._saveDesableSelect[i] = {tag: tagElements[k], visib: $common.getCurrentStyle(tagElements[k], 'visibility')} ;
                    tagElements[k].style.visibility = 'hidden';
                    i++;
                }
            }
        }
    },

    restoreTab : function() {
        /// <summary>
        /// Restore the tab indices so we tab through the page like normal
        /// (and restore SELECT tags in IE6)
        /// </summary>

        for (var i = 0; i < this._saveTabIndexes.length; i++) {
            this._saveTabIndexes[i].tag.tabIndex = this._saveTabIndexes[i].index;
        }
        Array.clear(this._saveTabIndexes);

        //IE6 Bug with SELECT element always showing up on top
        if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) {
            for (var k = 0 ; k < this._saveDesableSelect.length; k++) {
                this._saveDesableSelect[k].tag.style.visibility = this._saveDesableSelect[k].visib;
            }
            Array.clear(this._saveDesableSelect);
        }
    },

    hide : function() {
        /// <summary>
        /// Hide the modal dialog
        /// </summary>
        /// <returns type="Boolean" mayBeNull="false">
        /// Whether or not the dialog was hidden
        /// </returns>

        var eventArgs = new Sys.CancelEventArgs();
        this.raiseHiding(eventArgs);
        if (eventArgs.get_cancel()) {
            return false;
        }

        this._hideImplementation();

        this.raiseHidden(Sys.EventArgs.Empty);
        return true;
    },

    _hideImplementation : function() {
        /// <summary>
        /// Internal implementation to hide the modal dialog
        /// </summary>

        this._backgroundElement.style.display = 'none';
        this._foregroundElement.style.display = 'none';

        this.restoreTab();

        this._detachPopup();
    },

    _layout : function() {
        /// <summary>
        /// Position the modal dialog 
        /// </summary>
        var scrollLeft = (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
        var scrollTop = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
               
        var clientBounds = $common.getClientBounds();
        var clientWidth = clientBounds.width;
        var clientHeight = clientBounds.height;
        
        // Setup the location of the background element
        this._layoutBackgroundElement();

        var xCoord = 0;
        var yCoord = 0;
        if(this._xCoordinate < 0) {
            var foregroundelementwidth = this._foregroundElement.offsetWidth? this._foregroundElement.offsetWidth: this._foregroundElement.scrollWidth;
            xCoord = ((clientWidth-foregroundelementwidth)/2);
            // workaround for drag behavior which calls setlocation which in turn
            // changes the position of the panel to be absolute and requiring us
            // to add the scrollLeft so that it is positioned correctly.
            if (this._foregroundElement.style.position == 'absolute') {
                xCoord += scrollLeft;
            }
            this._foregroundElement.style.left = xCoord + 'px';
            
        } else {
            if(this._isIE6) {
                this._foregroundElement.style.left = (this._xCoordinate + scrollLeft) + 'px';
                xCoord = this._xCoordinate + scrollLeft;
            }
            else {
                this._foregroundElement.style.left = this._xCoordinate + 'px';
                xCoord = this._xCoordinate;
            }
        }
        if(this._yCoordinate < 0) {
            var foregroundelementheight = this._foregroundElement.offsetHeight? this._foregroundElement.offsetHeight: this._foregroundElement.scrollHeight;
            yCoord = ((clientHeight-foregroundelementheight)/2);           
            // workaround for drag behavior which calls setlocation which in turn
            // changes the position of the panel to be absolute and requiring us
            // to add the scrollLeft so that it is positioned correctly.
            if (this._foregroundElement.style.position == 'absolute') {
                yCoord += scrollTop;
            }
            this._foregroundElement.style.top = yCoord + 'px';
          
        } else {
            if(this._isIE6) {
                this._foregroundElement.style.top = (this._yCoordinate + scrollTop) + 'px';
                yCoord = this._yCoordinate + scrollTop;
            }
            else {
                this._foregroundElement.style.top = this._yCoordinate + 'px';
                yCoord = this._yCoordinate;
            }
        }

        // make sure get location agrees with the location of the foreground element
        this._layoutForegroundElement(xCoord, yCoord);
        
        if (this._dropShadowBehavior) {
            this._dropShadowBehavior.setShadow();
            window.setTimeout(Function.createDelegate(this, this._fixupDropShadowBehavior), 0);
        }
        
        // layout background element again to make sure it covers the whole background 
        // in case things moved around when laying out the foreground element
        this._layoutBackgroundElement();
    },
    
    _layoutForegroundElement : function(xCoord, yCoord) {
        /// <summary>
        /// Set the correct location of the foreground element to ensure that it is absolutely 
        /// positioned with respect to the browser. This is just a workaround for IE 6 since
        /// elements nested in relative parents cause modal popup positioning issues and 'fixed'
        /// is not supported by IE 6. Hence we manually compute the right location of the popup.
        /// </summary>
        /// <param name="xCoord" type="Number" integer="true" maybenull="false">
        /// <param name="yCoord" type="Number" integer="true" maybenull="false">        
        /// </params>
        
        if (this._isIE6 && this._relativeOrAbsoluteParentElement) {
            var foregroundLocation = $common.getLocation(this._foregroundElement);  
            var relativeParentLocation = $common.getLocation(this._relativeOrAbsoluteParentElement);
            var getLocationXCoord = foregroundLocation.x;
            if (getLocationXCoord != xCoord) {
                // offset it by that amount
                this._foregroundElement.style.left = (xCoord - relativeParentLocation.x) + 'px';
            } 
                        
            var getLocationYCoord = foregroundLocation.y;
            if (getLocationYCoord != yCoord) {
                // offset it by that amount
                this._foregroundElement.style.top = (yCoord - relativeParentLocation.y) + 'px';
            } 
        }
    },
    
    _layoutBackgroundElement : function() {
        /// <summary>
        /// Set the correct location of the background element to ensure that it is absolutely 
        /// positioned with respect to the browser.
        /// </summary>

        // Background element needs to cover the visible client area completely hence its
        // top and left coordinates need to be 0, and if relatively positioned its getlocation
        // value needs to be 0.
        if(this._isIE6) { 
            var backgroundLocation = $common.getLocation(this._backgroundElement);
            var backgroundXCoord = backgroundLocation.x;
            if (backgroundXCoord != 0) {
                // offset it by that amount. This is assuming only one level of nesting. If
                // multiple parents with absolute/relative positioning are setup this may not 
                // cover the whole background.
                this._backgroundElement.style.left = (-backgroundXCoord) + 'px';
            } 
            
            var backgroundYCoord = backgroundLocation.y;
            if (backgroundYCoord != 0) {
                // offset it by that amount. This is assuming only one level of nesting. If
                // multiple parents with absolute/relative positioning are setup this may not 
                // cover the whole background.
                this._backgroundElement.style.top = (-backgroundYCoord) + 'px';
            }         
        }
        var clientBounds = $common.getClientBounds();
        var clientWidth = clientBounds.width;
        var clientHeight = clientBounds.height;
        this._backgroundElement.style.width = Math.max(Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), clientWidth)+'px';
        this._backgroundElement.style.height = Math.max(Math.max(document.documentElement.scrollHeight, document.body.scrollHeight), clientHeight)+'px';
    },

    _fixupDropShadowBehavior : function() {
        /// <summary>
        /// Some browsers don't update the location values immediately, so
        /// the location of the drop shadow would always be a step behind
        /// without this method
        /// </summary>

        if (this._dropShadowBehavior) {
            this._dropShadowBehavior.setShadow();
        }
    },

    _partialUpdateEndRequest : function(sender, endRequestEventArgs) {
        /// <summary>
        /// Show the popup if requested during a partial postback
        /// </summary>
        /// <param name="sender" type="Object">
        /// Sender
        /// </param>
        /// <param name="endRequestEventArgs" type="Sys.WebForms.EndRequestEventArgs">
        /// Event arguments
        /// </param>
        /// <returns />
        AjaxControlToolkit.ModalPopupBehavior.callBaseMethod(this, '_partialUpdateEndRequest', [sender, endRequestEventArgs]);

        if (this.get_element()) {
            // Look up result by element's ID
            var action = endRequestEventArgs.get_dataItems()[this.get_element().id];
            if ("show" == action) {
                this.show();
            } else if ("hide" == action) {
                this.hide();
            }
        }

        // Async postback may have added content; re-layout to accomodate it
        this._layout();
    },

    _onPopulated : function(sender, eventArgs) {
        /// <summary>
        /// Re-layout the popup after we've dynamically populated
        /// </summary>
        /// <param name="sender" type="Object">
        /// Sender
        /// </param>
        /// <param name="eventArgs" type="Sys.EventArgs">
        /// Event arguments
        /// </param>
        /// <returns />
        AjaxControlToolkit.ModalPopupBehavior.callBaseMethod(this, '_onPopulated', [sender, eventArgs]);

        // Dynamic populate may have added content; re-layout to accomodate it
        this._layout();
    },
    
    get_PopupControlID : function() {
        /// <value type="String">
        /// The ID of the element to display as a modal popup
        /// </value>
        return this._PopupControlID;
    },
    set_PopupControlID : function(value) {
        if (this._PopupControlID != value) {
            this._PopupControlID = value;
            this.raisePropertyChanged('PopupControlID');
        }
    },

    get_X: function() {
        /// <value type="Number" integer="true">
        /// The number of pixels from the left of the browser to position the modal popup.
        /// </value>
        return this._xCoordinate;
    },
    set_X: function(value) {
        if (this._xCoordinate != value) {
            this._xCoordinate = value;
            this.raisePropertyChanged('X');
        }
    },

    get_Y: function() {
        /// <value type="Number" integer="true">
        /// The number of pixels from the top of the browser to position the modal popup.
        /// </value>
        return this._yCoordinate;
    },
    set_Y: function(value) {
        if (this._yCoordinate != value) {
            this._yCoordinate = value;
            this.raisePropertyChanged('Y');
        }
    },
       
    get_PopupDragHandleControlID : function() {
        /// <value type="String">
        /// The ID of the element to display as the drag handle for the modal popup
        /// </value>
        return this._PopupDragHandleControlID;
    },
    set_PopupDragHandleControlID : function(value) {
        if (this._PopupDragHandleControlID != value) {
            this._PopupDragHandleControlID = value;
            this.raisePropertyChanged('PopupDragHandleControlID');
        }
    },

    get_BackgroundCssClass : function() {
        /// <value type="String">
        /// The CSS class to apply to the background when the modal popup is displayed
        /// </value>
        return this._BackgroundCssClass;
    },
    set_BackgroundCssClass : function(value) {
        if (this._BackgroundCssClass != value) {
            this._BackgroundCssClass = value;
            this.raisePropertyChanged('BackgroundCssClass');
        }
    },

    get_DropShadow : function() {
        /// <value type="Boolean">
        /// Whether or not a drop-shadow should be added to the modal popup
        /// </value>
        return this._DropShadow;
    },
    set_DropShadow : function(value) {
        if (this._DropShadow != value) {
            this._DropShadow = value;
            this.raisePropertyChanged('DropShadow');
        }
    },

    get_Drag : function() {
        /// <value type="Boolean">
        /// Obsolete: Setting the _Drag property is a noop
        /// </value>
        return this._Drag;
    },
    set_Drag : function(value) {
        if (this._Drag != value) {
            this._Drag = value;
            this.raisePropertyChanged('Drag');
        }
    },

    get_OkControlID : function() {
        /// <value type="String">
        /// The ID of the element that dismisses the modal popup
        /// </value>
        return this._OkControlID;
    },
    set_OkControlID : function(value) {
        if (this._OkControlID != value) {
            this._OkControlID = value;
            this.raisePropertyChanged('OkControlID');
        }
    },

    get_CancelControlID : function() {
        /// <value type="String">
        /// The ID of the element that cancels the modal popup
        /// </value>
        return this._CancelControlID;
    },
    set_CancelControlID : function(value) {
        if (this._CancelControlID != value) {
            this._CancelControlID = value;
            this.raisePropertyChanged('CancelControlID');
        }
    },

    get_OnOkScript : function() {
        /// <value type="String">
        /// Script to run when the modal popup is dismissed with the OkControlID
        /// </value>
        return this._OnOkScript;
    },
    set_OnOkScript : function(value) {
        if (this._OnOkScript != value) {
            this._OnOkScript = value;
            this.raisePropertyChanged('OnOkScript');
        }
    },

    get_OnCancelScript : function() {
        /// <value type="String">
        /// Script to run when the modal popup is dismissed with the CancelControlID
        /// </value>
        return this._OnCancelScript;
    },
    set_OnCancelScript : function(value) {
        if (this._OnCancelScript != value) {
            this._OnCancelScript = value;
            this.raisePropertyChanged('OnCancelScript');
        }
    },

    get_repositionMode : function() {
        /// <value type="AjaxControlToolkit.ModalPopupRepositionMode">
        /// Determines if the ModalPopup should be repositioned on window resize/scroll
        /// </value>
        return this._repositionMode;
    },
    set_repositionMode : function(value) {
        if (this._repositionMode !== value) {
            this._repositionMode = value;
            this.raisePropertyChanged('RepositionMode');
        }
    },
    
    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.ModalPopupBehavior.registerClass('AjaxControlToolkit.ModalPopupBehavior', AjaxControlToolkit.DynamicPopulateBehaviorBase);

AjaxControlToolkit.ModalPopupBehavior.invokeViaServer = function(behaviorID, show) {
    /// <summary>
    /// This static function (that is intended to be called from script emitted
    /// on the server) will show or hide the behavior associated with behaviorID
    /// (i.e. to use this, the ModalPopupExtender must have an ID or BehaviorID) and
    /// will either show or hide depending on the show parameter.
    /// </summary>
    /// <param name="behaviorID" type="String">
    /// ID of the modal popup behavior
    /// </param>
    /// <param name="show" type="Boolean">
    /// Whether to show or hide the modal popup
    /// </param>
    var behavior = $find(behaviorID);
    if (behavior) {
        if (show) {
            behavior.show();
        } else {
            behavior.hide();
        }
    }
}

/* END AjaxControlToolkit.ModalPopup.ModalPopupBehavior.js */
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
(function() {var fn = function() {$get('RadScriptManager1_HiddenField').value += ';;Telerik.Web.UI, Version=2008.1.515.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4:en-US:3eb4cff8-ba47-459f-9938-40a153a06c71:393f5085:34f9d57d:526d426:80c4ad6d:527acb41:4b40c3e6:251a9451:81330300:9703c1f0:a3f85c94:c4e0cafb;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:e2e86ef9;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:9ea3f0e2;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:c7c04611;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:1df13a87;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:cd120801;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:c4c00916;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:3858419b;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:96741c43;AjaxControlToolkit, Version=1.0.11119.20087, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:f8991b69-ff7d-4144-9dae-e48b802f617f:38ec41c0';Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);})();
