/* 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"],_borderThickness:function(){
$telerik._borderThicknesses={};
var _1=document.createElement("div");
var _2=document.createElement("div");
_1.style.visibility="hidden";
_1.style.position="absolute";
_1.style.fontSize="1px";
_2.style.height="0px";
_2.style.overflow="hidden";
document.body.appendChild(_1).appendChild(_2);
var _3=_1.offsetHeight;
_2.style.borderTop="solid black";
_2.style.borderTopWidth="thin";
$telerik._borderThicknesses["thin"]=_1.offsetHeight-_3;
_2.style.borderTopWidth="medium";
$telerik._borderThicknesses["medium"]=_1.offsetHeight-_3;
_2.style.borderTopWidth="thick";
$telerik._borderThicknesses["thick"]=_1.offsetHeight-_3;
_1.removeChild(_2);
document.body.removeChild(_1);
_1=null;
_2=null;
},getCurrentStyle:function(_4,_5,_6){
var _7=null;
if(_4){
if(_4.currentStyle){
_7=_4.currentStyle[_5];
}else{
if(document.defaultView&&document.defaultView.getComputedStyle){
var _8=document.defaultView.getComputedStyle(_4,null);
if(_8){
_7=_8[_5];
}
}
}
if(!_7&&_4.style.getPropertyValue){
_7=_4.style.getPropertyValue(_5);
}else{
if(!_7&&_4.style.getAttribute){
_7=_4.style.getAttribute(_5);
}
}
}
if((!_7||_7==""||typeof (_7)==="undefined")){
if(typeof (_6)!="undefined"){
_7=_6;
}else{
_7=null;
}
}
return _7;
},getInheritedBackgroundColor:function(_9){
if(!_9){
return "#FFFFFF";
}
var _a=$telerik.getCurrentStyle(_9,"backgroundColor");
try{
while(!_a||_a==""||_a=="transparent"||_a=="rgba(0, 0, 0, 0)"){
_9=_9.parentNode;
if(!_9){
_a="#FFFFFF";
}else{
_a=$telerik.getCurrentStyle(_9,"backgroundColor");
}
}
}
catch(ex){
_a="#FFFFFF";
}
return _a;
},getLocation:function(_b){
if(_b===document.documentElement){
return new Sys.UI.Point(0,0);
}
if(Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version<7){
if(_b.window===_b||_b.nodeType===9||!_b.getClientRects||!_b.getBoundingClientRect){
return new Sys.UI.Point(0,0);
}
var _c=_b.getClientRects();
if(!_c||!_c.length){
return new Sys.UI.Point(0,0);
}
var _d=_c[0];
var _e=0;
var _f=0;
var _10=false;
try{
_10=_b.ownerDocument.parentWindow.frameElement;
}
catch(ex){
_10=true;
}
if(_10){
var _11=_b.getBoundingClientRect();
if(!_11){
return new Sys.UI.Point(0,0);
}
var _12=_d.left;
var _13=_d.top;
for(var i=1;i<_c.length;i++){
var r=_c[i];
if(r.left<_12){
_12=r.left;
}
if(r.top<_13){
_13=r.top;
}
}
_e=_12-_11.left;
_f=_13-_11.top;
}
var _16=_b.document.documentElement;
var _17=new Sys.UI.Point(_d.left-2-_e+_16.scrollLeft,_d.top-2-_f+_16.scrollTop);
if($telerik.quirksMode){
_17.x+=document.body.scrollLeft;
_17.y+=document.body.scrollTop;
}
return _17;
}
var _17=Sys.UI.DomElement.getLocation(_b);
if($telerik.isOpera){
var _18=_b.offsetParent;
while(_18&&_18.tagName.toUpperCase()!="BODY"&&_18.tagName.toUpperCase()!="HTML"){
_17.x-=_18.scrollLeft;
_17.y-=_18.scrollTop;
_18=_18.offsetParent;
}
}
if($telerik.isSafari){
var _18=_b.parentNode;
while(_18&&_18.tagName.toUpperCase()!="BODY"&&_18.tagName.toUpperCase()!="HTML"){
_17.x-=_18.scrollLeft;
_17.y-=_18.scrollTop;
_18=_18.parentNode;
}
}
return _17;
},setLocation:function(_19,_1a){
Sys.UI.DomElement.setLocation(_19,_1a.x,_1a.y);
},getContentSize:function(_1b){
if(!_1b){
throw Error.argumentNull("element");
}
var _1c=$telerik.getSize(_1b);
var _1d=$telerik.getBorderBox(_1b);
var _1e=$telerik.getPaddingBox(_1b);
return {width:_1c.width-_1d.horizontal-_1e.horizontal,height:_1c.height-_1d.vertical-_1e.vertical};
},getSize:function(_1f){
if(!_1f){
throw Error.argumentNull("element");
}
return {width:_1f.offsetWidth,height:_1f.offsetHeight};
},setContentSize:function(_20,_21){
if(!_20){
throw Error.argumentNull("element");
}
if(!_21){
throw Error.argumentNull("size");
}
if($telerik.getCurrentStyle(_20,"MozBoxSizing")=="border-box"||$telerik.getCurrentStyle(_20,"BoxSizing")=="border-box"){
var _22=$telerik.getBorderBox(_20);
var _23=$telerik.getPaddingBox(_20);
_21={width:_21.width+_22.horizontal+_23.horizontal,height:_21.height+_22.vertical+_23.vertical};
}
_20.style.width=_21.width.toString()+"px";
_20.style.height=_21.height.toString()+"px";
},setSize:function(_24,_25){
if(!_24){
throw Error.argumentNull("element");
}
if(!_25){
throw Error.argumentNull("size");
}
var _26=$telerik.getBorderBox(_24);
var _27=$telerik.getPaddingBox(_24);
var _28={width:_25.width-_26.horizontal-_27.horizontal,height:_25.height-_26.vertical-_27.vertical};
$telerik.setContentSize(_24,_28);
},getBounds:function(_29){
var _2a=$telerik.getLocation(_29);
return new Sys.UI.Bounds(_2a.x,_2a.y,_29.offsetWidth||0,_29.offsetHeight||0);
},setBounds:function(_2b,_2c){
if(!_2b){
throw Error.argumentNull("element");
}
if(!_2c){
throw Error.argumentNull("bounds");
}
$telerik.setSize(_2b,_2c);
$telerik.setLocation(_2b,_2c);
},getClientBounds:function(){
var _2d;
var _2e;
switch(Sys.Browser.agent){
case Sys.Browser.InternetExplorer:
_2d=document.documentElement.clientWidth;
_2e=document.documentElement.clientHeight;
break;
case Sys.Browser.Safari:
_2d=window.innerWidth;
_2e=window.innerHeight;
break;
case Sys.Browser.Opera:
_2d=Math.min(window.innerWidth,document.body.clientWidth);
_2e=Math.min(window.innerHeight,document.body.clientHeight);
break;
default:
_2d=Math.min(window.innerWidth,document.documentElement.clientWidth);
_2e=Math.min(window.innerHeight,document.documentElement.clientHeight);
break;
}
return new Sys.UI.Bounds(0,0,_2d,_2e);
},getMarginBox:function(_2f){
if(!_2f){
throw Error.argumentNull("element");
}
var box={top:$telerik.getMargin(_2f,Telerik.Web.BoxSide.Top),right:$telerik.getMargin(_2f,Telerik.Web.BoxSide.Right),bottom:$telerik.getMargin(_2f,Telerik.Web.BoxSide.Bottom),left:$telerik.getMargin(_2f,Telerik.Web.BoxSide.Left)};
box.horizontal=box.left+box.right;
box.vertical=box.top+box.bottom;
return box;
},getPaddingBox:function(_31){
if(!_31){
throw Error.argumentNull("element");
}
var box={top:$telerik.getPadding(_31,Telerik.Web.BoxSide.Top),right:$telerik.getPadding(_31,Telerik.Web.BoxSide.Right),bottom:$telerik.getPadding(_31,Telerik.Web.BoxSide.Bottom),left:$telerik.getPadding(_31,Telerik.Web.BoxSide.Left)};
box.horizontal=box.left+box.right;
box.vertical=box.top+box.bottom;
return box;
},getBorderBox:function(_33){
if(!_33){
throw Error.argumentNull("element");
}
var box={top:$telerik.getBorderWidth(_33,Telerik.Web.BoxSide.Top),right:$telerik.getBorderWidth(_33,Telerik.Web.BoxSide.Right),bottom:$telerik.getBorderWidth(_33,Telerik.Web.BoxSide.Bottom),left:$telerik.getBorderWidth(_33,Telerik.Web.BoxSide.Left)};
box.horizontal=box.left+box.right;
box.vertical=box.top+box.bottom;
return box;
},isBorderVisible:function(_35,_36){
if(!_35){
throw Error.argumentNull("element");
}
if(_36<Telerik.Web.BoxSide.Top||_36>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_36,"Telerik.Web.BoxSide"));
}
var _37=$telerik._borderStyleNames[_36];
var _38=$telerik.getCurrentStyle(_35,_37);
return _38!="none";
},getMargin:function(_39,_3a){
if(!_39){
throw Error.argumentNull("element");
}
if(_3a<Telerik.Web.BoxSide.Top||_3a>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_3a,"Telerik.Web.BoxSide"));
}
var _3b=$telerik._marginWidthNames[_3a];
var _3c=$telerik.getCurrentStyle(_39,_3b);
try{
return $telerik.parsePadding(_3c);
}
catch(ex){
return 0;
}
},getBorderWidth:function(_3d,_3e){
if(!_3d){
throw Error.argumentNull("element");
}
if(_3e<Telerik.Web.BoxSide.Top||_3e>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_3e,"Telerik.Web.BoxSide"));
}
if(!$telerik.isBorderVisible(_3d,_3e)){
return 0;
}
var _3f=$telerik._borderWidthNames[_3e];
var _40=$telerik.getCurrentStyle(_3d,_3f);
return $telerik.parseBorderWidth(_40);
},getPadding:function(_41,_42){
if(!_41){
throw Error.argumentNull("element");
}
if(_42<Telerik.Web.BoxSide.Top||_42>Telerik.Web.BoxSide.Left){
throw Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue,_42,"Telerik.Web.BoxSide"));
}
var _43=$telerik._paddingWidthNames[_42];
var _44=$telerik.getCurrentStyle(_41,_43);
return $telerik.parsePadding(_44);
},parseBorderWidth:function(_45){
if(_45){
switch(_45){
case "thin":
case "medium":
case "thick":
return $telerik._borderThicknesses[_45];
case "inherit":
return 0;
}
var _46=$telerik.parseUnit(_45);
return _46.size;
}
return 0;
},parsePadding:function(_47){
if(_47){
if(_47=="inherit"){
return 0;
}
var _48=$telerik.parseUnit(_47);
return _48.size;
}
return 0;
},parseUnit:function(_49){
if(!_49){
throw Error.argumentNull("value");
}
_49=_49.trim().toLowerCase();
var l=_49.length;
var s=-1;
for(var i=0;i<l;i++){
var ch=_49.substr(i,1);
if((ch<"0"||ch>"9")&&ch!="-"&&ch!="."&&ch!=","){
break;
}
s=i;
}
if(s==-1){
throw Error.create("No digits");
}
var _4e;
var _4f;
if(s<(l-1)){
_4e=_49.substring(s+1).trim();
}else{
_4e="px";
}
_4f=parseFloat(_49.substr(0,s+1));
if(_4e=="px"){
_4f=Math.floor(_4f);
}
return {size:_4f,type:_4e};
},containsPoint:function(_50,x,y){
return x>=_50.x&&x<=(_50.x+_50.width)&&y>=_50.y&&y<=(_50.y+_50.height);
},isDescendant:function(_53,_54){
for(var n=_54.parentNode;n!=null;n=n.parentNode){
if(n==_53){
return true;
}
}
return false;
},isDescendantOrSelf:function(_56,_57){
if(_56===_57){
return true;
}
return $telerik.isDescendant(_56,_57);
},setOuterHeight:function(_58,_59){
if(_59<=0||_59==""){
_58.style.height="";
}else{
_58.style.height=_59+"px";
var _5a=_58.offsetHeight-_59;
var _5b=_59-_5a;
if(_5b>0){
_58.style.height=_5b+"px";
}else{
_58.style.height="";
}
}
},setOpacity:function(_5c,_5d){
if(!_5c){
throw Error.argumentNull("element");
}
if(_5c.filters){
var _5e=_5c.filters;
var _5f=true;
if(_5e.length!==0){
var _60=_5e["DXImageTransform.Microsoft.Alpha"];
if(_60){
_5f=false;
_60.opacity=_5d*100;
}
}
if(_5f){
_5c.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+(_5d*100)+")";
}
}else{
_5c.style.opacity=_5d;
}
},getOpacity:function(_61){
if(!_61){
throw Error.argumentNull("element");
}
var _62=false;
var _63;
if(_61.filters){
var _64=_61.filters;
if(_64.length!==0){
var _65=_64["DXImageTransform.Microsoft.Alpha"];
if(_65){
_63=_65.opacity/100;
_62=true;
}
}
}else{
_63=$telerik.getCurrentStyle(_61,"opacity",1);
_62=true;
}
if(_62===false){
return 1;
}
return parseFloat(_63);
},addCssClasses:function(_66,_67){
for(var i=0;i<_67.length;i++){
Sys.UI.DomElement.addCssClass(_66,_67[i]);
}
},removeCssClasses:function(_69,_6a){
for(var i=0;i<_6a.length;i++){
Sys.UI.DomElement.removeCssClass(_69,_6a[i]);
}
},setOuterWidth:function(_6c,_6d){
if(_6d<=0||_6d==""){
_6c.style.width="";
}else{
_6c.style.width=_6d+"px";
var _6e=_6c.offsetWidth-_6d;
var _6f=_6d-_6e;
if(_6f>0){
_6c.style.width=_6f+"px";
}else{
_6c.style.width="";
}
}
},getScrollOffset:function(_70,_71){
var _72=0;
var top=0;
var _74=_70;
while(_74!=null&&_74.scrollLeft!=null){
_72+=_74.scrollLeft;
top+=_74.scrollTop;
if(!_71||(_74==document.body&&(_72!=0||top!=0))){
break;
}
_74=_74.parentNode;
}
return {x:_72,y:top};
},getElementByClassName:function(_75,_76,_77){
var _78=null;
if(_77){
_78=_75.getElementsByTagName(_77);
}else{
_78=_75.getElementsByTagName("*");
}
for(var i=0,_7a=_78.length;i<_7a;i++){
var _7b=_78[i];
if(Sys.UI.DomElement.containsCssClass(_7b,_76)){
return _7b;
}
}
return null;
},addExternalHandler:function(_7c,_7d,_7e){
if(_7c.addEventListener){
_7c.addEventListener(_7d,_7e,false);
}else{
if(_7c.attachEvent){
_7c.attachEvent("on"+_7d,_7e);
}
}
},removeExternalHandler:function(_7f,_80,_81){
if(_7f.addEventListener){
_7f.removeEventListener(_80,_81,false);
}else{
if(_7f.detachEvent){
_7f.detachEvent("on"+_80,_81);
}
}
},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(_83){
if(_83.outerHTML){
return _83.outerHTML;
}else{
var _84=_83.cloneNode(true);
var _85=_83.ownerDocument.createElement("DIV");
_85.appendChild(_84);
return _85.innerHTML;
}
},setVisible:function(e,_87){
if(!e){
return;
}
if(_87!=$telerik.getVisible(e)){
if(_87){
if(e.style.removeAttribute){
e.style.removeAttribute("display");
}else{
e.style.removeProperty("display");
}
}else{
e.style.display="none";
}
e.style.visibility=_87?"visible":"hidden";
}
},getVisible:function(e){
if(!e){
return false;
}
return (("none"!=$telerik.getCurrentStyle(e,"display"))&&("hidden"!=$telerik.getCurrentStyle(e,"visibility")));
},getViewPortSize:function(){
var _89=0;
var _8a=0;
var _8b=document.body;
if(!$telerik.quirksMode&&!$telerik.isSafari){
_8b=document.documentElement;
}
if(window.innerWidth){
_89=window.innerWidth;
_8a=window.innerHeight;
}else{
_89=_8b.clientWidth;
_8a=_8b.clientHeight;
}
_89+=_8b.scrollLeft;
_8a+=_8b.scrollTop;
return {width:_89-6,height:_8a-6};
},elementOverflowsTop:function(_8c){
return $telerik.getLocation(_8c).y<0;
},elementOverflowsLeft:function(_8d){
return $telerik.getLocation(_8d).x<0;
},elementOverflowsBottom:function(_8e,_8f){
var _90=$telerik.getLocation(_8f).y+_8f.offsetHeight;
return _90>_8e.height;
},elementOverflowsRight:function(_91,_92){
var _93=$telerik.getLocation(_92).x+_92.offsetWidth;
return _93>_91.width;
},getDocumentRelativeCursorPosition:function(e){
var _95=document.documentElement.scrollLeft||document.body.scrollLeft;
var _96=document.documentElement.scrollTop||document.body.scrollTop;
var _97=e.clientX+_95;
var top=e.clientY+_96;
return {left:_97,top:top};
},makeCompatible:function(_99){
var _9a=_99.prototype;
for(var _9b in _9a){
if(/([gs]et|add|remove|raise)_[a-z].*/.test(_9b)){
var _9c=RegExp.$1.length+1;
var _9d=_9b.substr(0,_9c)+_9b.charAt(_9c).toUpperCase()+_9b.substr(_9c+1);
_9a[_9d]=_9a[_9b];
}else{
if(/^[a-z][a-zA-Z]+$/.test(_9b)&&_9a.hasOwnProperty(_9b)&&typeof (_9a[_9b])=="function"&&_9b!="initialize"&&_9b!="dispose"){
var _9e=_9b.charAt(0).toUpperCase()+_9b.substr(1);
_9a[_9e]=_9a[_9b];
}
}
}
},getFirstChildByTagName:function(_9f,_a0,_a1){
if(!_9f||!_9f.childNodes){
return null;
}
var _a2=_9f.childNodes[_a1];
while(_a2){
if(_a2.nodeType!=3&&_a2.tagName.toLowerCase()==_a0){
return _a2;
}
_a2=_a2.nextSibling;
}
return null;
},getChildByClassName:function(_a3,_a4,_a5){
var _a6=_a3.childNodes[_a5];
while(_a6){
if(_a6.nodeType!=3&&_a6.className.indexOf(_a4)>-1){
return _a6;
}
_a6=_a6.nextSibling;
}
return null;
},getChildrenByTagName:function(_a7,_a8){
var _a9=new Array();
var _aa=_a7.childNodes;
for(var i=0,_ac=_aa.length;i<_ac;i++){
var _ad=_aa[i];
if(_ad.nodeType!=3&&_ad.tagName.toLowerCase()==_a8){
Array.add(_a9,_ad);
}
}
return _a9;
}};
$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.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={Vertical:1,Horizontal:2};
Telerik.Web.UI.Orientation.registerEnum("Telerik.Web.UI.Orientation",false);
Telerik.Web.UI.RadWebControl=function(_ae){
Telerik.Web.UI.RadWebControl.initializeBase(this,[_ae]);
this._clientStateFieldID=null;
};
Telerik.Web.UI.RadWebControl.prototype={initialize:function(){
Telerik.Web.UI.RadWebControl.callBaseMethod(this,"initialize");
},dispose:function(){
Telerik.Web.UI.RadWebControl.callBaseMethod(this,"dispose");
},raiseEvent:function(_af,_b0){
var _b1=this.get_events().getHandler(_af);
if(_b1){
if(!_b0){
_b0=Sys.EventArgs.Empty;
}
_b1(this,_b0);
}
},updateClientState:function(){
this.set_clientState(this.saveClientState());
},saveClientState:function(){
return null;
},get_clientStateFieldID:function(){
return this._clientStateFieldID;
},set_clientStateFieldID:function(_b2){
if(this._clientStateFieldID!=_b2){
this._clientStateFieldID=_b2;
this.raisePropertyChanged("ClientStateFieldID");
}
},get_clientState:function(){
if(this._clientStateFieldID){
var _b3=document.getElementById(this._clientStateFieldID);
if(_b3){
return _b3.value;
}
}
return null;
},set_clientState:function(_b4){
if(this._clientStateFieldID){
var _b5=document.getElementById(this._clientStateFieldID);
if(_b5){
_b5.value=_b4;
}
}
},_getChildElement:function(id){
return $get(this.get_id()+"_"+id);
},_findChildControl:function(id){
return $find(this.get_id()+"_"+id);
}};
$telerik.makeCompatible(Telerik.Web.UI.RadWebControl);
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(_b8){
if(this._interval!==_b8){
this._interval=_b8;
this.raisePropertyChanged("interval");
if(!this.get_isUpdating()&&(this._timer!==null)){
this._stopTimer();
this._startTimer();
}
}
},get_enabled:function(){
return this._enabled;
},set_enabled:function(_b9){
if(_b9!==this.get_enabled()){
this._enabled=_b9;
this.raisePropertyChanged("enabled");
if(!this.get_isUpdating()){
if(_b9){
this._startTimer();
}else{
this._stopTimer();
}
}
}
},add_tick:function(_ba){
this.get_events().addHandler("tick",_ba);
},remove_tick:function(_bb){
this.get_events().removeHandler("tick",_bb);
},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 _bc=this.get_events().getHandler("tick");
if(_bc){
_bc(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(_bd){
if(!this._upperAbbrMonths){
this._upperAbbrMonths=this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
}
return Array.indexOf(this._upperAbbrMonths,this._toUpper(_bd));
};
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(_be){
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(_bf){
Telerik.Web.UI.WebServiceLoaderEventArgs.initializeBase(this);
this._context=_bf;
};
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(_c0,_c1){
Telerik.Web.UI.WebServiceLoaderSuccessEventArgs.initializeBase(this,[_c1]);
this._data=_c0;
};
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(_c2,_c3){
Telerik.Web.UI.WebServiceLoaderErrorEventArgs.initializeBase(this,[_c3]);
this._message=_c2;
};
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(_c4){
this._webServiceSettings=_c4;
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(_c5,_c6){
var _c7=this.get_webServiceSettings();
if(_c7.get_isEmpty()){
Error.invalidOperation("Please, specify valid web service and method.");
return;
}
var _c8=_c7.get_path();
var _c9=_c7.get_method();
this._raiseEvent("loadingStarted",new Telerik.Web.UI.WebServiceLoaderEventArgs(_c6));
this._currentWebRequest=Sys.Net.WebServiceProxy.invoke(_c8,_c9,false,_c5,this._onWebServiceSuccessDelegate,this._onWebServiceErrorDelegate,_c6);
},add_loadingStarted:function(_ca){
this.get_events().addHandler("loadingStarted",_ca);
},add_loadingError:function(_cb){
this.get_events().addHandler("loadingError",_cb);
},add_loadingSuccess:function(_cc){
this.get_events().addHandler("loadingSuccess",_cc);
},_onWebServiceSuccess:function(_cd,_ce){
var _cf=new Telerik.Web.UI.WebServiceLoaderSuccessEventArgs(_cd,_ce);
this._raiseEvent("loadingSuccess",_cf);
},_onWebServiceError:function(_d0,_d1){
var _d2=new Telerik.Web.UI.WebServiceLoaderErrorEventArgs(_d0.get_message(),_d1);
this._raiseEvent("loadingError",_d2);
},_raiseEvent:function(_d3,_d4){
var _d5=this.get_events().getHandler(_d3);
if(_d5){
if(!_d4){
_d4=Sys.EventArgs.Empty;
}
_d5(this,_d4);
}
}};
Telerik.Web.UI.WebServiceLoader.registerClass("Telerik.Web.UI.WebServiceLoader");
Telerik.Web.UI.WebServiceSettings=function(_d6){
this._path=null;
this._method=null;
if(!_d6){
_d6={};
}
if(typeof (_d6.path)!="undefined"){
this._path=_d6.path;
}
if(typeof (_d6.method)!="undefined"){
this._method=_d6.method;
}
};
Telerik.Web.UI.WebServiceSettings.prototype={get_path:function(){
return this._path;
},set_path:function(_d7){
this._path=_d7;
},get_method:function(){
return this._method;
},set_method:function(_d8){
this._method=_d8;
},get_isEmpty:function(){
var _d9=this.get_path();
var _da=this.get_method();
return (!(_d9&&_da));
}};
Telerik.Web.UI.WebServiceSettings.registerClass("Telerik.Web.UI.WebServiceSettings");


/* END Telerik.Web.UI.Common.Core.js */
/* START Telerik.Web.UI.Grid.RadGridScripts.js */
Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridColumn=function(_1){
Telerik.Web.UI.GridColumn.initializeBase(this,[_1]);
this._owner={};
this._data={};
this._resizeTolerance=5;
this._onMouseUpDelegate=null;
this._columnResizer=null;
};
Telerik.Web.UI.GridColumn.prototype={initialize:function(){
Telerik.Web.UI.GridColumn.callBaseMethod(this,"initialize");
this._onMouseDownDelegate=Function.createDelegate(this,this._onMouseDownHandler);
$addHandler(this.get_element(),"mousedown",this._onMouseDownDelegate);
this.get_element().UniqueName=this.get_uniqueName();
this._onLocalMouseMoveDelegate=Function.createDelegate(this,this._onLocalMouseMoveHandler);
$addHandler(this.get_element(),"mousemove",this._onLocalMouseMoveDelegate);
$addHandlers(this.get_element(),{click:Function.createDelegate(this,this._onClick)});
$addHandlers(this.get_element(),{dblclick:Function.createDelegate(this,this._onDblClick)});
$addHandlers(this.get_element(),{mouseover:Function.createDelegate(this,this._onMouseOver)});
$addHandlers(this.get_element(),{mouseout:Function.createDelegate(this,this._onMouseOut)});
$addHandlers(this.get_element(),{contextmenu:Function.createDelegate(this,this._onContextMenu)});
},dispose:function(){
if(this._columnResizer){
this._columnResizer.dispose();
}
this._owner._owner.raise_columnDestroying(Sys.EventArgs.Empty);
$clearHandlers(this.get_element());
Telerik.Web.UI.GridColumn.callBaseMethod(this,"dispose");
},get_owner:function(){
return this._owner;
},_onMouseDownHandler:function(e){
if(!this._onMouseUpDelegate){
this._onMouseUpDelegate=Function.createDelegate(this,this._onMouseUpHandler);
$addHandler(document,"mouseup",this._onMouseUpDelegate);
}
if(this._owner._owner.ClientSettings.AllowDragToGroup||this._owner._owner.ClientSettings.AllowColumnsReorder){
this._onMouseMoveDelegate=Function.createDelegate(this,this._onMouseMoveHandler);
$addHandler(document,"mousemove",this._onMouseMoveDelegate);
if(this._canDragDrop&&((this._data.Reorderable&&this._owner._owner.ClientSettings.AllowColumnsReorder)||(this._data.Groupable&&this._owner._owner.ClientSettings.AllowDragToGroup))){
Telerik.Web.UI.Grid.CreateDragDrop(e,this);
}
}
if(this._canResize&&(e.button==0)){
var _3=Telerik.Web.UI.Grid.GetEventPosX(e);
var _4=Telerik.Web.UI.Grid.FindPosX(this.get_element());
var _5=_4+this.get_element().offsetWidth;
if((_3>=_5-this._resizeTolerance)&&(_3<=_5+this._resizeTolerance)){
this._columnResizer=new Telerik.Web.UI.GridColumnResizer(this,this._owner._owner.ClientSettings.Resizing.EnableRealTimeResize);
this._columnResizer._position(e);
}
Telerik.Web.UI.Grid.ClearDocumentEvents();
}
},_onMouseUpHandler:function(e){
if(this._onMouseUpDelegate){
$removeHandler(document,"mouseup",this._onMouseUpDelegate);
this._onMouseUpDelegate=null;
}
if(this._onMouseMoveDelegate){
$removeHandler(document,"mousemove",this._onMouseMoveDelegate);
this._onMouseMoveDelegate=null;
}
if(!Telerik.Web.UI.Grid){
return;
}
var _7=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(_7!=null&&this._canDragDrop&&!this._isResize){
var _8=this._owner._owner.ClientSettings.PostBackFunction;
_8=_8.replace("{0}",this._owner._owner.UniqueID);
if(this._owner._owner.ClientSettings.AllowDragToGroup&&this._owner._owner._groupPanel&&Telerik.Web.UI.Grid.IsChildOf(_7,this._owner._owner._groupPanel.get_element())){
this._owner.groupColumn(this.get_element().UniqueName);
}
if(this._owner._owner.ClientSettings.AllowColumnsReorder&&Telerik.Web.UI.Grid.IsChildOf(_7,this.get_element().parentNode)&&_7!=this.get_element()&&typeof (_7.UniqueName)!="undefined"&&this._canDropOnThisColumn(_7.UniqueName)){
if(!this._owner._owner.ClientSettings.ReorderColumnsOnClient){
_8=_8.replace("{1}","ReorderColumns,"+this._owner._data.UniqueID+","+this.get_element().UniqueName+","+_7.UniqueName);
eval(_8);
}else{
if(this._owner._owner.ClientSettings.ColumnsReorderMethod==1){
this._owner.reorderColumns(this.get_element().UniqueName,_7.UniqueName);
}else{
this._owner.swapColumns(this.get_element().UniqueName,_7.UniqueName);
}
}
}
}
Telerik.Web.UI.Grid.DestroyDragDrop();
Telerik.Web.UI.Grid.RestoreDocumentEvents();
},_onMouseMoveHandler:function(e){
if(this._canDragDrop){
Telerik.Web.UI.Grid.MoveDragDrop(e,this);
}
},_onLocalMouseMoveHandler:function(e){
if(!Telerik.Web.UI.Grid){
return;
}
this._canDragDrop=true;
this._canResize=false;
var _b=Telerik.Web.UI.Grid.GetCurrentElement(e);
var th=Telerik.Web.UI.Grid.GetFirstParentByTagName(_b,"th");
var x=Telerik.Web.UI.Grid.FindPosX(_b);
if((this._owner._owner.ClientSettings.AllowDragToGroup||this._owner._owner.ClientSettings.AllowColumnsReorder)&&(this._data.Reorderable||this._data.Groupable)){
this.get_element().style.cursor="move";
}
if(this._owner._owner.ClientSettings.Resizing.AllowColumnResize&&this.get_resizable()&&Telerik.Web.UI.Grid.GetEventPosX(e)>=(x+th.offsetWidth-5)){
this._canDragDrop=false;
}
if(this._owner._owner.ClientSettings&&this._owner._owner.ClientSettings.Resizing.AllowColumnResize&&this.get_resizable()&&this.get_element().tagName.toLowerCase()=="th"){
var _e=Telerik.Web.UI.Grid.GetEventPosX(e);
var _f=Telerik.Web.UI.Grid.FindPosX(this.get_element());
var _10=_f+this.get_element().offsetWidth;
var _b=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(this._owner._owner.GridDataDiv&&!this._owner._owner.GridHeaderDiv&&!window.netscape){
var _11=0;
if(document.body.currentStyle&&document.body.currentStyle.margin&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
_11=parseInt(document.body.currentStyle.marginLeft);
}
this._resizeTolerance=10;
}
if((_e>=_10-this._resizeTolerance)&&(_e<=_10+this._resizeTolerance)&&!this._owner._owner.MoveHeaderDiv){
this.get_element().style.cursor="e-resize";
this.get_element().title=this._owner._owner.ClientSettings.ClientMessages.DragToResize;
this._canResize=true;
_b.style.cursor="e-resize";
this._owner._owner._isResize=true;
}else{
this.get_element().style.cursor="";
this.get_element().title="";
this._canResize=false;
_b.style.cursor="";
this._owner._owner._isResize=false;
}
}
},_canDropOnThisColumn:function(_12){
if(typeof (this._owner._columns)=="undefined"){
this._owner._columns={};
for(var i=0;i<this._owner._data._columnsData.length;i++){
this._owner._columns[this._owner._data._columnsData[i].UniqueName]=this._owner._data._columnsData[i];
}
}
return this._owner._columns[_12].Reorderable;
},_onContextMenu:function(e){
this._owner._owner.raise_columnContextMenu(new Telerik.Web.UI.GridColumnEventArgs(this,e));
},_onClick:function(e){
this._owner._owner.raise_columnClick(new Telerik.Web.UI.GridColumnEventArgs(this,e));
},_onDblClick:function(e){
this._owner._owner.raise_columnDblClick(new Telerik.Web.UI.GridColumnEventArgs(this,e));
},_onMouseOver:function(e){
this._owner._owner.raise_columnMouseOver(new Telerik.Web.UI.GridColumnEventArgs(this,e));
if(this._owner._owner.Skin!=""){
Sys.UI.DomElement.addCssClass(this.get_element(),"GridHeaderOver_"+this._owner._owner.Skin);
}
},_onMouseOut:function(e){
this._owner._owner.raise_columnMouseOut(new Telerik.Web.UI.GridColumnEventArgs(this,e));
if(this._owner._owner.Skin!=""){
Sys.UI.DomElement.removeCssClass(this.get_element(),"GridHeaderOver_"+this._owner._owner.Skin);
}
},get_resizable:function(){
return this._data.Resizable;
},set_resizable:function(_19){
if(this._data.Resizable!=_19){
this._data.Resizable=_19;
}
},get_reorderable:function(){
return this._data.Reorderable;
},set_reorderable:function(_1a){
if(this._data.Reorderable!=_1a){
this._data.Reorderable=_1a;
}
},get_uniqueName:function(){
return this._data.UniqueName;
}};
Telerik.Web.UI.GridColumn.registerClass("Telerik.Web.UI.GridColumn",Sys.UI.Control);
Telerik.Web.UI.GridColumnEventArgs=function(_1b,_1c){
Telerik.Web.UI.GridColumnEventArgs.initializeBase(this);
this._gridColumn=_1b;
this._domEvent=_1c;
};
Telerik.Web.UI.GridColumnEventArgs.prototype={get_gridColumn:function(){
return this._gridColumn;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.GridColumnEventArgs.registerClass("Telerik.Web.UI.GridColumnEventArgs",Sys.EventArgs);
Telerik.Web.UI.GridColumnCancelEventArgs=function(_1d,_1e){
Telerik.Web.UI.GridColumnCancelEventArgs.initializeBase(this);
this._gridColumn=_1d;
this._domEvent=_1e;
};
Telerik.Web.UI.GridColumnCancelEventArgs.prototype={get_gridColumn:function(){
return this._gridColumn;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.GridColumnCancelEventArgs.registerClass("Telerik.Web.UI.GridColumnCancelEventArgs",Sys.CancelEventArgs);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridColumnResizer=function(_1,_2){
Telerik.Web.UI.GridColumnResizer.initializeBase(this);
this._isRealTimeResize=_2;
this._column=_1;
this._isRealTimeResize=_2;
this._currentWidth=null;
this._leftResizer=document.createElement("span");
this._leftResizer.style.backgroundColor="navy";
this._leftResizer.style.width="1"+"px";
this._leftResizer.style.position="absolute";
this._leftResizer.style.cursor="e-resize";
this._rightResizer=document.createElement("span");
this._rightResizer.style.backgroundColor="navy";
this._rightResizer.style.width="1"+"px";
this._rightResizer.style.position="absolute";
this._rightResizer.style.cursor="e-resize";
this._resizerToolTip=document.createElement("span");
this._resizerToolTip.style.backgroundColor="#F5F5DC";
this._resizerToolTip.style.border="1px solid";
this._resizerToolTip.style.position="absolute";
this._resizerToolTip.style.font="icon";
this._resizerToolTip.style.padding="2";
this._resizerToolTip.innerHTML="Width: <b>"+this._column.get_element().offsetWidth+"</b> <em>pixels</em>";
document.body.appendChild(this._leftResizer);
document.body.appendChild(this._rightResizer);
document.body.appendChild(this._resizerToolTip);
this.CanDestroy=true;
this._onMouseUpDelegate=Function.createDelegate(this,this._onMouseUpHandler);
$addHandler(document,"mouseup",this._onMouseUpDelegate);
this._onMouseMoveDelegate=Function.createDelegate(this,this._onMouseMoveHandler);
$addHandler(this._column._owner._owner.get_element(),"mousemove",this._onMouseMoveDelegate);
};
Telerik.Web.UI.GridColumnResizer.prototype={dispose:function(){
try{
this._destroy();
}
catch(error){
}
if(this._onMouseUpDelegate){
$removeHandler(document,"mouseup",this._onMouseUpDelegate);
}
if(this._onMouseMoveDelegate){
$removeHandler(this._column._owner._owner.get_element(),"mousemove",this._onMouseMoveDelegate);
}
this._leftResizer=null;
this._rightResizer=null;
this._resizerToolTip=null;
},_position:function(e){
this._leftResizer.style.top=Telerik.Web.UI.Grid.FindPosY(this._column.get_element())-Telerik.Web.UI.Grid.FindScrollPosY(this._column.get_element())+document.documentElement.scrollTop+document.body.scrollTop+"px";
this._leftResizer.style.left=Telerik.Web.UI.Grid.FindPosX(this._column.get_element())-Telerik.Web.UI.Grid.FindScrollPosX(this._column.get_element())+document.documentElement.scrollLeft+document.body.scrollLeft+"px";
this._rightResizer.style.top=this._leftResizer.style.top;
this._rightResizer.style.left=parseInt(this._leftResizer.style.left)+this._column.get_element().offsetWidth+"px";
this._resizerToolTip.style.top=parseInt(this._rightResizer.style.top)-20+"px";
this._resizerToolTip.style.left=parseInt(this._rightResizer.style.left)-5+"px";
if(parseInt(this._leftResizer.style.left)<Telerik.Web.UI.Grid.FindPosX(this._column._owner.get_element())){
this._leftResizer.style.display="none";
}
if(!this._column._owner._owner.ClientSettings.Scrolling.AllowScroll){
this._leftResizer.style.height=this._column._owner.get_element().tBodies[0].offsetHeight+this._column._owner.get_element().tHead.offsetHeight+"px";
}else{
if(this._column._owner._owner.ClientSettings.Scrolling.UseStaticHeaders){
this._leftResizer.style.height=this._column._owner._owner._gridDataDiv.clientHeight+this._column._owner.get_element().tHead.offsetHeight+"px";
}else{
this._leftResizer.style.height=this._column._owner._owner._gridDataDiv.clientHeight+"px";
}
}
this._rightResizer.style.height=this._leftResizer.style.height;
},_onMouseUpHandler:function(e){
this._destroy(e);
},_onMouseMoveHandler:function(e){
this._move(e);
},_destroy:function(e){
if(this.CanDestroy){
if(this._onMouseUpDelegate){
$removeHandler(document,"mouseup",this._onMouseUpDelegate);
this._onMouseUpDelegate=null;
}
if(this._onMouseMoveDelegate){
$removeHandler(this._column._owner._owner.get_element(),"mousemove",this._onMouseMoveDelegate);
this._onMouseMoveDelegate=null;
}
if(this._currentWidth!=null){
if(this._currentWidth>0){
this._column._owner.resizeColumn(this._column.get_element().cellIndex,this._currentWidth);
this._currentWidth=null;
}
}
document.body.removeChild(this._leftResizer);
document.body.removeChild(this._rightResizer);
document.body.removeChild(this._resizerToolTip);
this.CanDestroy=false;
}
},_move:function(e){
this._leftResizer.style.left=Telerik.Web.UI.Grid.FindPosX(this._column.get_element())-Telerik.Web.UI.Grid.FindScrollPosX(this._column.get_element())+document.documentElement.scrollLeft+document.body.scrollLeft+"px";
this._rightResizer.style.left=parseInt(this._leftResizer.style.left)+(Telerik.Web.UI.Grid.GetEventPosX(e)-Telerik.Web.UI.Grid.FindPosX(this._column.get_element()))+"px";
this._resizerToolTip.style.left=parseInt(this._rightResizer.style.left)-5+"px";
var _8=parseInt(this._rightResizer.style.left)-parseInt(this._leftResizer.style.left);
var _9=this._column.get_element().scrollWidth-_8;
this._resizerToolTip.innerHTML="Width: <b>"+_8+"</b> <em>pixels</em>";
if(!Telerik.Web.UI.Grid.FireEvent(this._column._owner,"OnColumnResizing",[this._column.Index,_8])){
return;
}
if(_8<=0){
this._rightResizer.style.left=this._rightResizer.style.left;
this._destroy(e);
return;
}
this._currentWidth=_8;
if(this._isRealTimeResize){
var _a=(navigator.userAgent.indexOf("Safari")!=-1)?Telerik.Web.UI.Grid.GetRealCellIndex(this._column._owner,this._column.get_element()):this._column.get_element().cellIndex;
this._column._owner.resizeColumn(_a,_8);
}else{
this._currentWidth=_8;
return;
}
if(Telerik.Web.UI.Grid.FindPosX(this._leftResizer)!=Telerik.Web.UI.Grid.FindPosX(this._column.get_element())){
this._leftResizer.style.left=Telerik.Web.UI.Grid.FindPosX(this._column.get_element())+"px";
}
if(Telerik.Web.UI.Grid.FindPosX(this._rightResizer)!=(Telerik.Web.UI.Grid.FindPosX(this._column.get_element())+this._column.get_element().offsetWidth)){
this._rightResizer.style.left=Telerik.Web.UI.Grid.FindPosX(this._column.get_element())+this._column.get_element().offsetWidth+"px";
}
if(Telerik.Web.UI.Grid.FindPosY(this._leftResizer)!=Telerik.Web.UI.Grid.FindPosY(this._column.get_element())){
this._leftResizer.style.top=Telerik.Web.UI.Grid.FindPosY(this._column.get_element())+"px";
this._rightResizer.style.top=Telerik.Web.UI.Grid.FindPosY(this._column.get_element())+"px";
}
if(this._column._owner._owner._gridDataDiv){
this._leftResizer.style.left=parseInt(this._leftResizer.style.left.replace("px",""))-this._column._owner._owner._gridDataDiv.scrollLeft+"px";
this._rightResizer.style.left=parseInt(this._leftResizer.style.left.replace("px",""))+this._column.get_element().offsetWidth+"px";
this._resizerToolTip.style.left=parseInt(this._rightResizer.style.left)-5+"px";
}
if(!this._column._owner._owner.ClientSettings.Scrolling.AllowScroll){
this._leftResizer.style.height=this._column._owner.get_element().tBodies[0].offsetHeight+this._column._owner.get_element().tHead.offsetHeight+"px";
}else{
if(this._column._owner._owner.ClientSettings.Scrolling.UseStaticHeaders){
this._leftResizer.style.height=this._column._owner._owner._gridDataDiv.clientHeight+this._column._owner.get_element().tHead.offsetHeight+"px";
}else{
this._leftResizer.style.height=this._column._owner._owner._gridDataDiv.clientHeight+"px";
}
}
this._rightResizer.style.height=this._leftResizer.style.height;
}};
Telerik.Web.UI.GridColumnResizer.registerClass("Telerik.Web.UI.GridColumnResizer",null,Sys.IDisposable);;Type.registerNamespace("Telerik.Web.UI");
Type.registerNamespace("Telerik.Web.UI.Grid");
Telerik.Web.UI.Grid.GetEventPosX=function(e){
var x=e.clientX;
var _3=Telerik.Web.UI.Grid.GetCurrentElement(e);
while(_3.parentNode){
if(typeof (_3.parentNode.scrollLeft)=="number"){
x+=_3.parentNode.scrollLeft;
}
_3=_3.parentNode;
}
if(document.body.currentStyle&&document.body.currentStyle.margin&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
x=parseInt(x)-parseInt(document.body.currentStyle.marginLeft);
}
if(Telerik.Web.UI.Grid.IsRightToLeft(document.body)){
x=x-Telerik.Web.UI.Grid.getScrollBarHeight();
}
return x;
};
Telerik.Web.UI.Grid.GetEventPosY=function(e){
var y=e.clientY;
var _6=Telerik.Web.UI.Grid.GetCurrentElement(e);
while(_6.parentNode){
if(typeof (_6.parentNode.scrollTop)=="number"){
y+=_6.parentNode.scrollTop;
}
_6=_6.parentNode;
}
if(document.body.currentStyle&&document.body.currentStyle.margin&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
y=parseInt(y)-parseInt(document.body.currentStyle.marginTop);
}
return y;
};
Telerik.Web.UI.Grid._uniqueIDToClientID=function(_7){
return _7.replace(/\$/g,"_");
};
Telerik.Web.UI.Grid.getTableHeaderRow=function(_8){
var _9=null;
if(_8.tHead){
for(var i=0;i<_8.tHead.rows.length;i++){
if(_8.tHead.rows[i]!=null){
if(_8.tHead.rows[i].cells[0]!=null){
if(_8.tHead.rows[i].cells[0].tagName!=null){
if(_8.tHead.rows[i].cells[0].tagName.toLowerCase()=="th"){
_9=_8.tHead.rows[i];
break;
}
}
}
}
}
}
return _9;
};
Telerik.Web.UI.Grid.CopyAttributes=function(_b,_c){
for(var i=0;i<_c.attributes.length;i++){
try{
if(_c.attributes[i].name.toLowerCase()=="id"){
continue;
}
if(_c.attributes[i].value!=null&&_c.attributes[i].value!="null"&&_c.attributes[i].value!=""){
_b.setAttribute(_c.attributes[i].name,_c.attributes[i].value);
}
}
catch(e){
continue;
}
}
};
Telerik.Web.UI.Grid.PositionDragElement=function(_e,_f){
_e.style.top=_f.clientY+document.documentElement.scrollTop+document.body.scrollTop+1+"px";
_e.style.left=_f.clientX+document.documentElement.scrollLeft+document.body.scrollLeft+1+"px";
if(window.opera||navigator.userAgent.indexOf("Safari")!=-1){
_e.style.top=parseInt(_e.style.top)-document.body.scrollTop+"px";
}
};
Telerik.Web.UI.Grid.ClearDocumentEvents=function(){
if(document.onmousedown!=this.mouseDownHandler){
this.documentOnMouseDown=document.onmousedown;
}
if(document.onselectstart!=this.selectStartHandler){
this.documentOnSelectStart=document.onselectstart;
}
if(document.ondragstart!=this.dragStartHandler){
this.documentOnDragStart=document.ondragstart;
}
this.mouseDownHandler=function(e){
return false;
};
this.selectStartHandler=function(){
return false;
};
this.dragStartHandler=function(){
return false;
};
document.onmousedown=this.mouseDownHandler;
document.onselectstart=this.selectStartHandler;
document.ondragstart=this.dragStartHandler;
};
Telerik.Web.UI.Grid.RestoreDocumentEvents=function(){
if((typeof (this.documentOnMouseDown)=="function")&&(document.onmousedown!=this.mouseDownHandler)){
document.onmousedown=this.documentOnMouseDown;
}else{
document.onmousedown="";
}
if((typeof (this.documentOnSelectStart)=="function")&&(document.onselectstart!=this.selectStartHandler)){
document.onselectstart=this.documentOnSelectStart;
}else{
document.onselectstart="";
}
if((typeof (this.documentOnDragStart)=="function")&&(document.ondragstart!=this.dragStartHandler)){
document.ondragstart=this.documentOnDragStart;
}else{
document.ondragstart="";
}
};
Telerik.Web.UI.Grid.IsChildOf=function(_11,_12){
while(_11.parentNode){
if(_11.parentNode==_12){
return true;
}
_11=_11.parentNode;
}
return false;
};
Telerik.Web.UI.Grid.GetCurrentElement=function(e){
if(!e){
var e=window.event;
}
var _14;
if(e.srcElement){
_14=e.srcElement;
}else{
_14=e.target;
}
return _14;
};
Telerik.Web.UI.Grid.CreateReorderIndicators=function(_15,_16){
if((this.ReorderIndicator1==null)&&(this.ReorderIndicator2==null)){
this.ReorderIndicator1=document.createElement("span");
this.ReorderIndicator2=document.createElement("span");
if(_16==""){
this.ReorderIndicator1.innerHTML="&darr;";
this.ReorderIndicator2.innerHTML="&uarr;";
}else{
this.ReorderIndicator1.className="TopReorderIndicator_"+_16;
this.ReorderIndicator2.className="BottomReorderIndicator_"+_16;
this.ReorderIndicator1.style.width=this.ReorderIndicator1.style.height=this.ReorderIndicator2.style.width=this.ReorderIndicator2.style.height="10px";
}
this.ReorderIndicator1.style.backgroundColor="transparent";
this.ReorderIndicator1.style.color="darkblue";
this.ReorderIndicator1.style.font="bold 18px Arial";
this.ReorderIndicator2.style.backgroundColor=this.ReorderIndicator1.style.backgroundColor;
this.ReorderIndicator2.style.color=this.ReorderIndicator1.style.color;
this.ReorderIndicator2.style.font=this.ReorderIndicator1.style.font;
this.ReorderIndicator1.style.top=Telerik.Web.UI.Grid.FindPosY(_15)-this.ReorderIndicator1.offsetHeight+"px";
this.ReorderIndicator1.style.left=Telerik.Web.UI.Grid.FindPosX(_15)+"px";
this.ReorderIndicator2.style.top=Telerik.Web.UI.Grid.FindPosY(_15)+_15.offsetHeight+"px";
this.ReorderIndicator2.style.left=this.ReorderIndicator1.style.left;
this.ReorderIndicator1.style.visibility="hidden";
this.ReorderIndicator1.style.display="none";
this.ReorderIndicator1.style.position="absolute";
this.ReorderIndicator2.style.visibility=this.ReorderIndicator1.style.visibility;
this.ReorderIndicator2.style.display=this.ReorderIndicator1.style.display;
this.ReorderIndicator2.style.position=this.ReorderIndicator1.style.position;
document.body.appendChild(this.ReorderIndicator1);
document.body.appendChild(this.ReorderIndicator2);
}
};
Telerik.Web.UI.Grid.DestroyReorderIndicators=function(){
if((this.ReorderIndicator1!=null)&&(this.ReorderIndicator2!=null)){
document.body.removeChild(this.ReorderIndicator1);
document.body.removeChild(this.ReorderIndicator2);
this.ReorderIndicator1=null;
this.ReorderIndicator2=null;
}
};
Telerik.Web.UI.Grid.MoveReorderIndicators=function(e,_18){
if((this.ReorderIndicator1!=null)&&(this.ReorderIndicator2!=null)){
this.ReorderIndicator1.style.visibility="visible";
this.ReorderIndicator1.style.display="";
this.ReorderIndicator2.style.visibility="visible";
this.ReorderIndicator2.style.display="";
this.ReorderIndicator1.style.top=Telerik.Web.UI.Grid.FindPosY(_18)-this.ReorderIndicator1.offsetHeight+"px";
this.ReorderIndicator1.style.left=Telerik.Web.UI.Grid.FindPosX(_18)+"px";
this.ReorderIndicator2.style.top=Telerik.Web.UI.Grid.FindPosY(_18)+_18.offsetHeight+"px";
this.ReorderIndicator2.style.left=this.ReorderIndicator1.style.left;
}
};
Telerik.Web.UI.Grid.getVisibleCols=function(_19){
var _1a=0;
for(var i=0,l=_19.length;i<l;i++){
if(_19[i].style.display=="none"){
continue;
}
_1a++;
}
return _1a;
};
Telerik.Web.UI.Grid.hideShowCells=function(_1d,_1e,_1f,_20){
var _21=Telerik.Web.UI.Grid.getVisibleCols(_20);
for(var i=0,l=_1d.rows.length;i<l;i++){
if(_1d.rows[i].cells.length!=_21){
if(_1d.rows[i].cells.length==1){
_1d.rows[i].cells[0].colSpan=_21;
}else{
for(var j=0;j<_1d.rows[i].cells.length;j++){
if(_1d.rows[i].cells[j].colSpan>1&&j>=_1e){
if(!_1f){
_1d.rows[i].cells[j].colSpan=_1d.rows[i].cells[j].colSpan-1;
}else{
_1d.rows[i].cells[j].colSpan=_1d.rows[i].cells[j].colSpan+1;
}
break;
}
}
}
}
var _25=_1d.rows[i].cells[_1e];
var _26=(navigator.userAgent.toLowerCase().indexOf("safari")!=-1&&navigator.userAgent.indexOf("Mac")!=-1)?0:1;
if(!_1f){
if(_25!=null&&_25.colSpan==_26&&_25.style.display!="none"){
_25.style.display="none";
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("6.0")!=-1){
Telerik.Web.UI.Grid._hideShowSelect(_25,_1f);
}
}
}else{
if(_25!=null&&_25.colSpan==_26&&_25.style.display=="none"){
_25.style.display=(window.netscape)?"table-cell":"";
}
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("6.0")!=-1){
Telerik.Web.UI.Grid._hideShowSelect(_25,_1f);
}
}
}
};
Telerik.Web.UI.Grid._hideShowSelect=function(_27,_28){
if(!_27){
return;
}
var _29=_27.getElementsByTagName("select");
for(var i=0;i<_29.length;i++){
_29[i].style.display=(_28)?"":"none";
}
};
Telerik.Web.UI.Grid.FindPosX=function(_2b){
try{
var x=0;
var _2d=0;
if(_2b.offsetParent){
while(_2b.offsetParent){
x+=_2b.offsetLeft;
if(_2b.currentStyle&&_2b.currentStyle.borderLeftWidth.indexOf("px")!=-1&&!window.opera){
_2d+=parseInt(_2b.currentStyle.borderLeftWidth);
}
_2b=_2b.offsetParent;
}
}else{
if(_2b.x){
x+=_2b.x;
}
}
if(document.compatMode=="BackCompat"||navigator.userAgent.indexOf("Safari")!=-1){
if(document.body.currentStyle&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
x=parseInt(x)-parseInt(document.body.currentStyle.marginLeft);
}
if(document.defaultView&&document.defaultView.getComputedStyle&&document.defaultView.getComputedStyle(document.body,"").marginLeft.indexOf("px")!=-1&&!window.opera){
x=parseInt(x)+parseInt(document.defaultView.getComputedStyle(document.body,"").marginLeft);
}
}
return x+_2d;
}
catch(error){
return x;
}
};
Telerik.Web.UI.Grid.FindPosY=function(_2e){
var y=0;
var _30=0;
if(_2e.offsetParent){
while(_2e.offsetParent){
y+=_2e.offsetTop;
if(_2e.currentStyle&&_2e.currentStyle.borderTopWidth.indexOf("px")!=-1&&!window.opera){
_30+=parseInt(_2e.currentStyle.borderTopWidth);
}
_2e=_2e.offsetParent;
}
}else{
if(_2e.y){
y+=_2e.y;
}
}
if(document.compatMode=="BackCompat"||navigator.userAgent.indexOf("Safari")!=-1){
if(document.body.currentStyle&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
y=parseInt(y)-parseInt(document.body.currentStyle.marginTop);
}
if(document.defaultView&&document.defaultView.getComputedStyle&&document.defaultView.getComputedStyle(document.body,"").marginTop.indexOf("px")!=-1&&!window.opera){
y=parseInt(y)+parseInt(document.defaultView.getComputedStyle(document.body,"").marginTop);
}
}
return y+_30;
};
Telerik.Web.UI.Grid.CreateDragDrop=function(e,_32){
Telerik.Web.UI.Grid.CreateReorderIndicators(_32.get_element(),_32._owner._owner.Skin);
this._moveHeaderDiv=document.createElement("div");
var _33=document.createElement("table");
if(this._moveHeaderDiv.mergeAttributes){
this._moveHeaderDiv.mergeAttributes(_32._owner._owner.get_element());
}else{
Telerik.Web.UI.Grid.CopyAttributes(this._moveHeaderDiv,_32.get_element());
}
if(_33.mergeAttributes){
_33.mergeAttributes(_32._owner.get_element());
}else{
Telerik.Web.UI.Grid.CopyAttributes(_33,_32._owner.get_element());
}
_33.style.margin="0px";
_33.style.height=_32.get_element().offsetHeight+"px";
_33.style.width=_32.get_element().offsetWidth+"px";
_33.style.border="0px";
_33.style.borderCollapse="collapse";
_33.style.padding="0px";
var _34=document.createElement("thead");
var tr=document.createElement("tr");
_33.appendChild(_34);
_34.appendChild(tr);
tr.appendChild(_32.get_element().cloneNode(true));
this._moveHeaderDiv.appendChild(_33);
document.body.appendChild(this._moveHeaderDiv);
this._moveHeaderDiv.style.height=_33.style.height;
this._moveHeaderDiv.style.width=_33.style.width;
this._moveHeaderDiv.style.position="absolute";
this._moveHeaderDiv.style.cursor="move";
this._moveHeaderDiv.style.display="none";
this._moveHeaderDiv.UniqueName=_32.get_element().UniqueName;
Telerik.Web.UI.Grid.ClearDocumentEvents();
};
Telerik.Web.UI.Grid.MoveDragDrop=function(e,_37){
if(this._moveHeaderDiv!=null){
if(typeof (this._moveHeaderDiv.style.filter)!="undefined"){
this._moveHeaderDiv.style.filter="alpha(opacity=25);";
}else{
if(typeof (this._moveHeaderDiv.style.MozOpacity)!="undefined"){
this._moveHeaderDiv.style.MozOpacity=1/4;
}else{
if(typeof (this._moveHeaderDiv.style.opacity)!="undefined"){
this._moveHeaderDiv.style.opacity=1/4;
}
}
}
this._moveHeaderDiv.style.visibility="";
this._moveHeaderDiv.style.display="";
Telerik.Web.UI.Grid.PositionDragElement(this._moveHeaderDiv,e);
var _38=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(_38!=null){
if(Telerik.Web.UI.Grid.IsChildOf(_38,_37._owner.get_element())||(_37._owner._owner.ClientSettings.AllowDragToGroup&&_37._owner._owner._groupPanel&&Telerik.Web.UI.Grid.IsChildOf(_38,_37._owner._owner._groupPanel.get_element()))){
if((_38!=_37.get_element())&&(_38.parentNode==_37.get_element().parentNode)){
if(!_37._hierarchicalIndex){
var _37=_37._owner.getColumnByUniqueName(_38.UniqueName);
if(_37._data.Reorderable&&_37._owner._owner.ClientSettings.AllowColumnsReorder){
Telerik.Web.UI.Grid.MoveReorderIndicators(e,_38);
}
}else{
Telerik.Web.UI.Grid.MoveReorderIndicators(e,_38);
}
}else{
if(_37._owner._owner.ClientSettings.AllowDragToGroup&&_37._owner._owner._groupPanel&&Telerik.Web.UI.Grid.IsChildOf(_38,_37._owner._owner._groupPanel.get_element())){
Telerik.Web.UI.Grid.MoveReorderIndicators(e,_37._owner._owner._groupPanel.get_element());
}else{
Telerik.Web.UI.Grid.ReorderIndicator1.style.visibility="hidden";
Telerik.Web.UI.Grid.ReorderIndicator1.style.display="none";
Telerik.Web.UI.Grid.ReorderIndicator1.style.position="absolute";
Telerik.Web.UI.Grid.ReorderIndicator2.style.visibility=Telerik.Web.UI.Grid.ReorderIndicator1.style.visibility;
Telerik.Web.UI.Grid.ReorderIndicator2.style.display=Telerik.Web.UI.Grid.ReorderIndicator1.style.display;
Telerik.Web.UI.Grid.ReorderIndicator2.style.position=Telerik.Web.UI.Grid.ReorderIndicator1.style.position;
}
}
}
}
}
};
Telerik.Web.UI.Grid.DestroyDragDrop=function(){
if(this._moveHeaderDiv!=null){
var _39=this._moveHeaderDiv.parentNode;
_39.removeChild(this._moveHeaderDiv);
this._moveHeaderDiv=null;
Telerik.Web.UI.Grid.RestoreDocumentEvents();
}
Telerik.Web.UI.Grid.DestroyReorderIndicators();
};
Telerik.Web.UI.Grid.GetFirstParentByTagName=function(_3a,_3b){
while(_3a&&_3a.parentNode){
if(_3a.tagName.toLowerCase()==_3b.toLowerCase()){
return _3a;
}
_3a=_3a.parentNode;
}
return null;
};
Telerik.Web.UI.Grid.CreateColumnResizers=function(_3c,e){
Telerik.Web.UI.Grid.ClearDocumentEvents();
this.LeftResizer=document.createElement("span");
this.LeftResizer.style.backgroundColor="navy";
this.LeftResizer.style.width="1"+"px";
this.LeftResizer.style.position="absolute";
this.LeftResizer.style.cursor="e-resize";
this.RightResizer=document.createElement("span");
this.RightResizer.style.backgroundColor="navy";
this.RightResizer.style.width="1"+"px";
this.RightResizer.style.position="absolute";
this.RightResizer.style.cursor="e-resize";
this.ResizerToolTip=document.createElement("span");
this.ResizerToolTip.style.backgroundColor="#F5F5DC";
this.ResizerToolTip.style.border="1px solid";
this.ResizerToolTip.style.position="absolute";
this.ResizerToolTip.style.font="icon";
this.ResizerToolTip.style.padding="2";
this.ResizerToolTip.innerHTML="Width: <b>"+_3c.get_element().offsetWidth+"</b> <em>pixels</em>";
this.LeftResizer.style.display=this.ResizerToolTip.style.display=this.ResizerToolTip.style.display="none";
document.body.appendChild(this.LeftResizer);
document.body.appendChild(this.RightResizer);
document.body.appendChild(this.ResizerToolTip);
Telerik.Web.UI.Grid.MoveColumnResizers(_3c,e);
};
Telerik.Web.UI.Grid.DestroyColumnResizers=function(){
Telerik.Web.UI.Grid.RestoreDocumentEvents();
if(this.LeftResizer&&this.LeftResizer.parentNode){
document.body.removeChild(this.LeftResizer);
this.LeftResizer=null;
}
if(this.RightResizer&&this.RightResizer.parentNode){
document.body.removeChild(this.RightResizer);
this.RightResizer=null;
}
if(this.ResizerToolTip&&this.ResizerToolTip.parentNode){
document.body.removeChild(this.ResizerToolTip);
this.ResizerToolTip=null;
}
};
Telerik.Web.UI.Grid.MoveColumnResizers=function(_3e,e){
if(!this.LeftResizer||!this.RightResizer||!this.RightResizer){
return;
}
this.LeftResizer.style.display=this.RightResizer.style.display=this.ResizerToolTip.style.display="";
this.LeftResizer.style.top=Telerik.Web.UI.Grid.FindPosY(_3e.get_element())-Telerik.Web.UI.Grid.FindScrollPosY(_3e.get_element())+document.documentElement.scrollTop+document.body.scrollTop+"px";
this.LeftResizer.style.left=Telerik.Web.UI.Grid.FindPosX(_3e.get_element())-Telerik.Web.UI.Grid.FindScrollPosX(_3e.get_element())+document.documentElement.scrollLeft+document.body.scrollLeft+"px";
this.RightResizer.style.top=this.LeftResizer.style.top;
this.RightResizer.style.left=Telerik.Web.UI.Grid.GetEventPosX(e)-5+"px";
this.ResizerToolTip.style.top=parseInt(this.RightResizer.style.top)-20+"px";
this.ResizerToolTip.style.left=parseInt(this.RightResizer.style.left)-5+"px";
if(parseInt(this.LeftResizer.style.left)<Telerik.Web.UI.Grid.FindPosX(_3e._owner.get_element())){
this.LeftResizer.style.display="none";
}
if(!_3e._owner._owner.ClientSettings.Scrolling.AllowScroll){
this.LeftResizer.style.height=_3e._owner.get_element().tBodies[0].offsetHeight+_3e._owner.get_element().tHead.offsetHeight+"px";
}else{
var _40=$get(_3e._owner._owner.ClientID+"_GridData");
if(_3e._owner._owner.ClientSettings.Scrolling.UseStaticHeaders){
this.LeftResizer.style.height=_40.clientHeight+_3e._owner.get_element().tHead.offsetHeight+"px";
}else{
this.LeftResizer.style.height=_40.clientHeight+"px";
}
}
this.RightResizer.style.height=this.LeftResizer.style.height;
var _41=parseInt(this.RightResizer.style.left)-parseInt(this.LeftResizer.style.left);
this.ResizerToolTip.innerHTML="Width: <b>"+_41+"</b> <em>pixels</em>";
if(_3e._owner._owner.ClientSettings.Resizing.EnableRealTimeResize){
if(_41>0){
_3e.get_element().style.width=_41+"px";
this.RightResizer.style.left=parseInt(this.LeftResizer.style.left)+_3e.get_element().offsetWidth+"px";
}
}
if(parseInt(this.RightResizer.style.left)<=parseInt(this.LeftResizer.style.left)-1){
Telerik.Web.UI.Grid.DestroyColumnResizers();
}
};
Telerik.Web.UI.Grid.FindScrollPosX=function(_42){
var x=0;
while(_42.parentNode){
if(typeof (_42.parentNode.scrollLeft)=="number"){
x+=_42.parentNode.scrollLeft;
}
_42=_42.parentNode;
}
if(document.body.currentStyle&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
x=parseInt(x)-parseInt(document.body.currentStyle.marginLeft);
}
return x;
};
Telerik.Web.UI.Grid.FindScrollPosY=function(_44){
var y=0;
while(_44.parentNode){
if(typeof (_44.parentNode.scrollTop)=="number"){
y+=_44.parentNode.scrollTop;
}
_44=_44.parentNode;
}
if(document.body.currentStyle&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
y=parseInt(y)-parseInt(document.body.currentStyle.marginTop);
}
return y;
};
Telerik.Web.UI.Grid.GetEventPosX=function(e){
var x=e.clientX;
var _48=Telerik.Web.UI.Grid.GetCurrentElement(e);
while(_48.parentNode){
if(typeof (_48.parentNode.scrollLeft)=="number"){
x+=_48.parentNode.scrollLeft;
}
_48=_48.parentNode;
}
if(document.body.currentStyle&&document.body.currentStyle.margin.indexOf("px")!=-1&&!window.opera){
x=parseInt(x)-parseInt(document.body.currentStyle.marginLeft);
}
if(Telerik.Web.UI.Grid.IsRightToLeft(document.body)){
x=x-Telerik.Web.UI.Grid.GetScrollBarWidth();
}
return x;
};
Telerik.Web.UI.Grid.getScrollBarHeight=function(){
try{
if(typeof (this.scrollbarHeight)=="undefined"){
var _49,_4a=0;
var _4b=document.createElement("div");
_4b.style.position="absolute";
_4b.style.top="-1000px";
_4b.style.left="-1000px";
_4b.style.width="100px";
_4b.style.height="100px";
_4b.style.overflow="auto";
var _4c=document.createElement("div");
_4c.style.width="1000px";
_4c.style.height="1000px";
_4b.appendChild(_4c);
document.body.appendChild(_4b);
_49=_4b.offsetHeight;
_4a=_4b.clientHeight;
document.body.removeChild(document.body.lastChild);
this.scrollbarHeight=_49-_4a;
if(this.scrollbarHeight<=0||_4a==0){
this.scrollbarHeight=16;
}
}
return this.scrollbarHeight;
}
catch(error){
return false;
}
};
Telerik.Web.UI.Grid.GetScrollBarWidth=function(){
try{
if(typeof (this.scrollbarWidth)=="undefined"){
var _4d,_4e=0;
var _4f=document.createElement("div");
_4f.style.position="absolute";
_4f.style.top="-1000px";
_4f.style.left="-1000px";
_4f.style.width="100px";
_4f.style.overflow="auto";
var _50=document.createElement("div");
_50.style.width="1000px";
_4f.appendChild(_50);
document.body.appendChild(_4f);
_4d=_4f.offsetWidth;
_4e=_4f.clientWidth;
document.body.removeChild(document.body.lastChild);
this.scrollbarWidth=_4d-_4e;
if(this.scrollbarWidth<=0||_4e==0){
this.scrollbarWidth=16;
}
}
return this.scrollbarWidth;
}
catch(error){
return false;
}
};
Telerik.Web.UI.Grid.IsRightToLeft=function(_51){
try{
while(_51){
if(_51.currentStyle&&_51.currentStyle.direction.toLowerCase()=="rtl"){
return true;
}else{
if(getComputedStyle&&getComputedStyle(_51,"").getPropertyValue("direction").toLowerCase()=="rtl"){
return true;
}else{
if(_51.dir.toLowerCase()=="rtl"){
return true;
}
}
}
_51=_51.parentNode;
}
return false;
}
catch(error){
return false;
}
};
Telerik.Web.UI.Grid.FireEvent=function(_52,_53,_54){
try{
var _55=true;
if(typeof (_52[_53])=="string"){
eval(_52[_53]);
}else{
if(typeof (_52[_53])=="function"){
if(_54){
switch(_54.length){
case 1:
_55=_52[_53](_54[0]);
break;
case 2:
_55=_52[_53](_54[0],_54[1]);
break;
}
}else{
_55=_52[_53]();
}
}
}
if(typeof (_55)!="boolean"){
return true;
}else{
return _55;
}
}
catch(error){
throw error;
}
};
Telerik.Web.UI.Grid.GetTableColGroup=function(_56){
try{
return _56.getElementsByTagName("colgroup")[0];
}
catch(error){
return false;
}
};
Telerik.Web.UI.Grid.GetTableColGroupCols=function(_57){
try{
var _58=new Array();
var _59=_57.childNodes[0];
for(var i=0;i<_57.childNodes.length;i++){
if((_57.childNodes[i].tagName)&&(_57.childNodes[i].tagName.toLowerCase()=="col")){
_58[_58.length]=_57.childNodes[i];
}
}
return _58;
}
catch(error){
return false;
}
};
Telerik.Web.UI.Grid.ClearItemStyle=function(row,_5c,_5d){
Sys.UI.DomElement.removeCssClass(row,_5d);
if(_5c){
var _5e=row.style.cssText.toLowerCase().replace(/ /g,"");
var _5f=_5e.split(";");
for(var j=0;j<_5f.length;j++){
if(_5c.indexOf(_5f[j])!=-1){
_5f[j]="";
}
}
row.style.cssText=_5f.join(";");
}
};
Telerik.Web.UI.Grid.SetItemStyle=function(row,_62,_63){
Sys.UI.DomElement.addCssClass(row,_63);
if(_62){
row.style.cssText=row.style.cssText+";"+_62;
}
};
Telerik.Web.UI.Grid.ScrollIntoView=function(row){
if(row.focus){
row.scrollIntoView(false);
try{
row.focus();
}
catch(e){
}
}
};
Telerik.Web.UI.Grid.GetNestedTableView=function(row){
var _66=null;
var _67=Telerik.Web.UI.Grid.GetNestedTable(row);
if(_67){
_66=$find(_67.id.split("__")[0]);
}
return _66;
};
Telerik.Web.UI.Grid.GetLastNestedTableView=function(row){
var _69=null;
var _6a=Telerik.Web.UI.Grid.GetLastNestedTable(row);
if(_6a){
_69=$find(_6a.id.split("__")[0]);
}
return _69;
};
Telerik.Web.UI.Grid.GetPreviousNestedTableView=function(row){
var _6c=null;
if(row.previousSibling&&row.previousSibling.previousSibling){
_6c=Telerik.Web.UI.Grid.GetNestedTableView(row.previousSibling);
}
return _6c;
};
Telerik.Web.UI.Grid.GetNestedTable=function(row){
var _6e=null;
var _6f=Telerik.Web.UI.Grid.GetNodeNextSiblingByTagName(row,"tr");
if(_6f){
var _70=_6f.getElementsByTagName("table");
if(_70.length>0&&_70[0].id.indexOf("Detail")!=-1){
_6e=_70[0];
}
}
return _6e;
};
Telerik.Web.UI.Grid.GetLastNestedTable=function(row){
var _72=null;
var _73=Telerik.Web.UI.Grid.GetNodeNextSiblingByTagName(row,"tr");
if(_73){
var _74=_73.getElementsByTagName("table");
for(var i=_74.length-1;i>=0;i--){
var _76=_74[i];
if(_76.id.indexOf("Detail")!=-1&&_76.id.indexOf("_mainTable")==-1){
_72=_76;
break;
}
}
}
return _72;
};
Telerik.Web.UI.Grid.GetNodeNextSiblingByTagName=function(_77,_78){
var _77=_77.nextSibling;
while(_77!=null&&(_77.nodeType==3||(_77.tagName&&_77.tagName.toLowerCase()!=_78.toLowerCase()))){
_77=_77.nextSibling;
}
return _77;
};
Telerik.Web.UI.Grid.GetNodePreviousSiblingByTagName=function(_79,_7a){
var _79=_79.previousSibling;
while((_79!=null)&&(_79.nodeType==3||(_79.tagName&&_79.tagName.toLowerCase()!=_7a.toLowerCase()))){
_79=_79.previousSibling;
}
return _79;
};;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridItemResizer=function(_1){
Telerik.Web.UI.GridItemResizer.initializeBase(this);
this._owner=_1;
this._onResizeMouseUpDelegate=null;
};
Telerik.Web.UI.GridItemResizer.prototype={dispose:function(){
this._destroyRowResizer();
if(this._onResizeMouseUpDelegate){
$removeHandler(document,"mouseup",this._onResizeMouseUpDelegate);
}
},_detectResizeCursorsOnItems:function(e,_3){
var _4=this;
if((_3!=null)&&(_3.tagName.toLowerCase()=="td")&&!this._owner.MoveHeaderDiv){
var _5=_3.parentNode.parentNode.parentNode;
var _6=$find(_5.id);
if(_6!=null){
if(!_6.get_element().tBodies[0]){
return;
}
var _7=Telerik.Web.UI.Grid.GetEventPosY(e);
var _8=Telerik.Web.UI.Grid.FindPosY(_3);
var _9=_8+_3.offsetHeight;
this._resizeTolerance=5;
var _a=_3.title;
if((_7>_9-this._resizeTolerance)&&(_7<_9+this._resizeTolerance)){
_3.style.cursor="n-resize";
_3.title=this._owner.ClientSettings.ClientMessages.DragToResize;
if(!_3._onResizeMouseDownDelegate){
_3._onResizeMouseDownDelegate=Function.createDelegate(this,this._onResizeMouseDownHandler);
$addHandler(_3,"mousedown",_3._onResizeMouseDownDelegate);
}
}else{
_3.style.cursor="default";
_3.title="";
if(_3._onResizeMouseDownDelegate){
$removeHandler(_3,"mousedown",_3._onResizeMouseDownDelegate);
_3._onResizeMouseDownDelegate=null;
}
}
}
}
},_moveItemResizer:function(e){
if((this._owner._rowResizer!="undefined")&&(this._owner._rowResizer!=null)&&(this._owner._rowResizer.parentNode!=null)){
this._owner._rowResizer.style.top=Telerik.Web.UI.Grid.GetEventPosY(e)-(Telerik.Web.UI.Grid.GetEventPosY(e)-e.clientY)+document.body.scrollTop+document.documentElement.scrollTop+"px";
if(this._owner.ClientSettings.Resizing.EnableRealTimeResize){
this._destroyRowResizerAndResizeRow(e,false);
this._updateRowResizerWidth(e);
}
}
},_destroyRowResizerAndResizeRow:function(e,_d){
if((this._owner._cellToResize!="undefined")&&(this._owner._cellToResize!=null)&&(this._owner._cellToResize.tagName.toLowerCase()=="td")&&(this._owner._rowResizer!="undefined")&&(this._owner._rowResizer!=null)){
var _e;
if(this._gridDataDiv){
_e=parseInt(this._owner._rowResizer.style.top)+this._gridDataDiv.scrollTop-(Telerik.Web.UI.Grid.FindPosY(this._owner._cellToResize));
}else{
_e=parseInt(this._owner._rowResizer.style.top)-(Telerik.Web.UI.Grid.FindPosY(this._owner._cellToResize));
}
if(_e>0){
var _f=this._owner._cellToResize.parentNode.parentNode.parentNode;
var _10=$find(_f.id);
if(_10!=null){
_10.resizeItem(this._owner._cellToResize.parentNode.rowIndex,_e);
}
}
}
if(_d){
this._destroyRowResizer();
}
},_updateRowResizerWidth:function(e){
var _12=Telerik.Web.UI.Grid.GetCurrentElement(e);
if((_12!=null)&&(_12.tagName.toLowerCase()=="td")){
var _13=this._owner._rowResizerRefTable;
if(_13!=null){
if(this._gridDataDiv){
var _14=(Telerik.Web.UI.Grid.FindPosX(this._gridDataDiv)+this._gridDataDiv.offsetWidth)-parseInt(this._owner._rowResizer.style.left);
if(_14>_13.get_element().offsetWidth){
this._owner._rowResizer.style.width=_13.get_element().offsetWidth+"px";
}else{
this._owner._rowResizer.style.width=_14+"px";
}
if(parseInt(this._owner._rowResizer.style.width)>this._gridDataDiv.offsetWidth){
this._owner._rowResizer.style.width=this._gridDataDiv.offsetWidth+"px";
}
}else{
this._owner._rowResizer.style.width=_13.get_element().offsetWidth+"px";
}
}
}
},_createRowResizer:function(e){
this._destroyRowResizer();
var _16=Telerik.Web.UI.Grid.GetCurrentElement(e);
if((_16!=null)&&(_16.tagName.toLowerCase()=="td")){
if(_16.cellIndex>0){
var _17=_16.parentNode.rowIndex;
_16=_16.parentNode.parentNode.parentNode.rows[_17].cells[0];
}
this._owner._rowResizer=null;
this._owner._cellToResize=_16;
var _18=_16.parentNode.parentNode.parentNode;
var _19=$find(_18.id);
this._owner._rowResizer=document.createElement("div");
this._owner._rowResizer.style.backgroundColor="navy";
this._owner._rowResizer.style.height="1px";
this._owner._rowResizer.style.fontSize="1";
this._owner._rowResizer.style.position="absolute";
this._owner._rowResizer.style.cursor="n-resize";
if(_19!=null){
this._owner._rowResizerRefTable=_19;
if(this._gridDataDiv){
this._owner._rowResizer.style.left=Telerik.Web.UI.Grid.FindPosX(this._gridDataDiv)+"px";
var _1a=(Telerik.Web.UI.Grid.FindPosX(this._gridDataDiv)+this._gridDataDiv.offsetWidth)-parseInt(this._owner._rowResizer.style.left);
if(_1a>_19.get_element().offsetWidth){
this._owner._rowResizer.style.width=_19.Control.offsetWidth+"px";
}else{
this._owner._rowResizer.style.width=_1a+"px";
}
if(parseInt(this._owner._rowResizer.style.width)>this._gridDataDiv.offsetWidth){
this._owner._rowResizer.style.width=this._gridDataDiv.offsetWidth+"px";
}
}else{
this._owner._rowResizer.style.width=_19.get_element().offsetWidth+"px";
this._owner._rowResizer.style.left=Telerik.Web.UI.Grid.FindPosX(_16)+"px";
}
}
this._owner._rowResizer.style.top=Telerik.Web.UI.Grid.GetEventPosY(e)-(Telerik.Web.UI.Grid.GetEventPosY(e)-e.clientY)+document.body.scrollTop+document.documentElement.scrollTop+"px";
var _1b=document.body;
_1b.appendChild(this._owner._rowResizer);
}
},_destroyRowResizer:function(){
if((this._owner._rowResizer!="undefined")&&(this._owner._rowResizer!=null)&&(this._owner._rowResizer.parentNode!=null)){
var _1c=this._owner._rowResizer.parentNode;
_1c.removeChild(this._owner._rowResizer);
this._owner._rowResizer=null;
this._owner._rowResizerRefTable=null;
}
},_onResizeMouseDownHandler:function(e){
this._createRowResizer(e);
Telerik.Web.UI.Grid.ClearDocumentEvents();
this._onResizeMouseUpDelegate=Function.createDelegate(this,this._onResizeMouseUpHandler);
$addHandler(document,"mouseup",this._onResizeMouseUpDelegate);
},_onResizeMouseUpHandler:function(e){
$removeHandler(document,"mouseup",this._onResizeMouseUpDelegate);
this._destroyRowResizerAndResizeRow(e,true);
Telerik.Web.UI.Grid.RestoreDocumentEvents();
}};
Telerik.Web.UI.GridItemResizer.registerClass("Telerik.Web.UI.GridItemResizer",null,Sys.IDisposable);;Telerik.Web.UI.GridDataItem=function(_1){
Telerik.Web.UI.GridDataItem.initializeBase(this,[_1]);
this._owner={};
this._data={};
this._selected=false;
this._expanded=false;
this._display=false;
this._dataKeyValue=null;
this._itemIndexHierarchical="";
};
Telerik.Web.UI.GridDataItem.prototype={initialize:function(){
Telerik.Web.UI.GridDataItem.callBaseMethod(this,"initialize");
},dispose:function(){
this._owner._owner.raise_rowDestroying(Sys.EventArgs.Empty);
if(this.get_element()){
$clearHandlers(this.get_element());
}
Telerik.Web.UI.GridDataItem.callBaseMethod(this,"dispose");
},get_owner:function(){
return this._owner;
},getDataKeyValue:function(_2){
var _3=this.get_element().id.split("__")[1];
var _4=null;
if(this._owner._owner._clientKeyValues&&this._owner._owner._clientKeyValues[_3]){
_4=this._owner._owner._clientKeyValues[_3];
}
return (_4)?_4[_2]:null;
},get_selected:function(){
return this._selected;
},set_selected:function(_5){
if(this._selected!=_5){
var e={"ctrlKey":false};
if(!this._owner._owner._selection._selectRowInternal(this.get_element(),e,true,true,true)){
return;
}
this._selected=_5;
}
},get_expanded:function(){
return this._expanded;
},set_expanded:function(_7){
if(this._expanded!=_7){
if(_7&&!this._owner._expandRow(this.get_element())){
return;
}
if(!_7&&!this._owner._collapseRow(this.get_element())){
return;
}
this._expanded=_7;
}
},get_display:function(){
return this._display;
},set_display:function(_8){
if(this._display!=_8){
this._display=_8;
}
}};
Telerik.Web.UI.GridDataItem.registerClass("Telerik.Web.UI.GridDataItem",Sys.UI.Control);
Telerik.Web.UI.GridDataItemEventArgs=function(_9,_a){
Telerik.Web.UI.GridDataItemEventArgs.initializeBase(this);
this._id="";
this._itemIndexHierarchical="";
this._gridDataItem=null;
this._tableView=null;
this._dataKeyValues=null;
if(_9){
this._id=_9.id;
this._itemIndexHierarchical=this._id.split("__")[1];
this._gridDataItem=$find(this._id);
this._tableView=$find(this._id.split("__")[0]);
if(this._tableView._owner._clientKeyValues&&this._tableView._owner._clientKeyValues[this._itemIndexHierarchical]){
this._dataKeyValues=this._tableView._owner._clientKeyValues[this._itemIndexHierarchical];
}
}
this._domEvent=_a;
};
Telerik.Web.UI.GridDataItemEventArgs.prototype={get_gridDataItem:function(){
return this._gridDataItem;
},get_itemIndexHierarchical:function(){
return this._itemIndexHierarchical;
},get_id:function(){
return this._id;
},get_tableView:function(){
return this._tableView;
},get_domEvent:function(){
return this._domEvent;
},getDataKeyValue:function(_b){
return (this._dataKeyValues)?this._dataKeyValues[_b]:null;
}};
Telerik.Web.UI.GridDataItemEventArgs.registerClass("Telerik.Web.UI.GridDataItemEventArgs",Sys.EventArgs);
Telerik.Web.UI.GridDataItemCancelEventArgs=function(_c,_d){
Telerik.Web.UI.GridDataItemCancelEventArgs.initializeBase(this);
this._id="";
this._itemIndexHierarchical="";
this._gridDataItem=null;
this._tableView=null;
this._dataKeyValues=null;
if(_c){
this._id=_c.id;
this._itemIndexHierarchical=this._id.split("__")[1];
this._gridDataItem=$find(this._id);
this._tableView=$find(this._id.split("__")[0]);
if(this._tableView._owner._clientKeyValues&&this._tableView._owner._clientKeyValues[this._itemIndexHierarchical]){
this._dataKeyValues=this._tableView._owner._clientKeyValues[this._itemIndexHierarchical];
}
}
this._domEvent=_d;
};
Telerik.Web.UI.GridDataItemCancelEventArgs.prototype={get_gridDataItem:function(){
return this._gridDataItem;
},get_itemIndexHierarchical:function(){
return this._itemIndexHierarchical;
},get_id:function(){
return this._id;
},get_tableView:function(){
return this._tableView;
},get_domEvent:function(){
return this._domEvent;
},getDataKeyValue:function(_e){
return (this._dataKeyValues)?this._dataKeyValues[_e]:null;
}};
Telerik.Web.UI.GridDataItemCancelEventArgs.registerClass("Telerik.Web.UI.GridDataItemCancelEventArgs",Sys.CancelEventArgs);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridScrolling=function(){
Telerik.Web.UI.GridScrolling.initializeBase(this);
this._owner={};
};
Telerik.Web.UI.GridScrolling.prototype={initialize:function(){
Telerik.Web.UI.GridScrolling.callBaseMethod(this,"initialize");
this.AllowScroll=this._owner.ClientSettings.Scrolling.AllowScroll;
this.UseStaticHeaders=this._owner.ClientSettings.Scrolling.UseStaticHeaders;
this._initializeDimensions();
this._initializeScroll();
},updated:function(){
Telerik.Web.UI.GridScrolling.callBaseMethod(this,"updated");
},dispose:function(){
if(this._onResizeDelegate){
$removeHandler(window,"resize",this._onResizeDelegate);
this._onResizeDelegate=null;
}
if(this._onGridFrozenScrollDelegate){
$removeHandler(this._frozenScroll,"scroll",this._onGridFrozenScrollDelegate);
this._onGridFrozenScrollDelegate=null;
}
Telerik.Web.UI.GridScrolling.callBaseMethod(this,"dispose");
},_initializeDimensions:function(){
var _1=this;
this.applyFrozenScroll();
this.onWindowResize();
this.initializeAutoLayout();
this._owner.get_element().RadResize=function(){
_1.onWindowResize();
};
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1){
this._onResizeDelegate=Function.createDelegate(this,this.onWindowResize);
setTimeout(function(){
$addHandler(window,"resize",_1._onResizeDelegate);
},0);
}else{
this._onResizeDelegate=Function.createDelegate(this,this.onWindowResize);
$addHandler(window,"resize",this._onResizeDelegate);
}
this._owner.get_element().RadShow=function(){
_1.onWindowResize();
};
},applyFrozenScroll:function(){
this.isFrozenScroll=false;
this._frozenScroll=$get(this._owner.ClientID+"_Frozen");
var _2=Telerik.Web.UI.Grid.getScrollBarHeight();
if(this._frozenScroll){
var _3=$get(this._owner.ClientID+"_FrozenScroll");
this._onGridFrozenScrollDelegate=Function.createDelegate(this,this.onGridFrozenScroll);
$addHandler(this._frozenScroll,"scroll",this._onGridFrozenScrollDelegate);
if(this._owner.get_masterTableView().get_element().offsetWidth>this._owner.GridDataDiv.clientWidth){
this._frozenScroll.style.height=_2+"px";
_3.style.width=this._owner.GridDataDiv.scrollWidth+"px";
_3.style.height=_2+"px";
if(this._owner.ClientSettings.Scrolling.SaveScrollPosition&&this._owner.ClientSettings.Scrolling.ScrollLeft!=""){
this._frozenScroll.scrollLeft=this._owner.ClientSettings.Scrolling.ScrollLeft;
}
if(this._owner.GridDataDiv.style.overflowX!=null){
this._owner.GridDataDiv.style.overflowX="hidden";
}else{
this._frozenScroll.style.marginTop="-16px";
this._frozenScroll.style.zIndex=99999;
this._frozenScroll.style.position="relative";
}
if(window.netscape&&!window.opera){
this._frozenScroll.style.width=this._owner.GridDataDiv.offsetWidth-_2+"px";
}
if(this._owner.GridHeaderDiv&&this._owner.GridDataDiv){
if((this._owner.GridDataDiv.clientWidth==this._owner.GridDataDiv.offsetWidth)){
if(typeof (this._frozenScroll.style.overflowX)!="undefined"&&typeof (this._frozenScroll.style.overflowY)!="undefined"){
this._frozenScroll.style.overflowX="auto";
this._frozenScroll.style.overflowY="hidden";
if(window.netscape){
this._frozenScroll.style.width=parseInt(this._frozenScroll.style.width)+_2+"px";
}
}
}
}
this.isFrozenScroll=true;
}else{
this._frozenScroll.style.height="";
_3.style.width="";
this._owner.GridDataDiv.style.overflow="auto";
this.isFrozenScroll=false;
}
}
},onGridFrozenScroll:function(_4){
if(!this._frozenScrollCounter){
this._frozenScrollCounter=0;
}
this._frozenScrollCounter++;
var _5=this;
_5._currentElement=Telerik.Web.UI.Grid.GetCurrentElement(_4);
Telerik.Web.UI.Grid.frozenScrollHanlder=function(_6){
if(_5._frozenScrollCounter!=_6){
return;
}
if(!_5._lastScrollIndex){
_5._lastScrollIndex=0;
}
var _7=_5._currentElement;
if(_5._owner.ClientSettings.Scrolling.FrozenColumnsCount>_5._owner.get_masterTableViewHeader().get_columns().length){
_5.isFrozenScroll=false;
}
if(_5.isFrozenScroll){
var _8=_5._owner.get_masterTableView().get_columns()[_5._owner.ClientSettings.Scrolling.FrozenColumnsCount-1].get_element();
var _9=Telerik.Web.UI.Grid.FindPosX(_8)-Telerik.Web.UI.Grid.FindScrollPosX(_8)+document.documentElement.scrollLeft+document.body.scrollLeft+_8.offsetWidth;
var _a=_7.scrollWidth-_9;
_5._owner.notFrozenColumns=[];
var _b=_5._owner.get_masterTableView()._getFirstDataRow();
for(var i=_5._owner.ClientSettings.Scrolling.FrozenColumnsCount;i<_5._owner.get_masterTableView().get_columns().length;i++){
var _d=_5._owner.get_masterTableView().get_columns()[i];
var _e=false;
if(window.netscape&&_d.get_element().style.display=="none"){
_d.get_element().style.display="table-cell";
_e=true;
}
var _f=(_d.get_element().offsetWidth>0)?_d.get_element().offsetWidth:_b.cells[i].offsetWidth;
_5._owner.notFrozenColumns[_5._owner.notFrozenColumns.length]={Index:i,Width:_f};
if(window.netscape&&_e){
_d.get_element().style.display="none";
_e=false;
}
}
var _10=Telerik.Web.UI.Grid.getScrollBarHeight();
if(window.netscape&&!window.opera){
_10=0;
}
var _11=Math.floor(_7.scrollLeft/(_7.scrollWidth-(1.5*_8.offsetWidth))*100);
var _12=0;
var i=0;
while(i<_5._owner.notFrozenColumns.length-1){
var _d=_5._owner.notFrozenColumns[i];
var _13=Math.floor(_d.Width/_a*100);
if(_13+_12<_11){
if(typeof (_5._owner.get_masterTableView().get_columns()[_d.Index].FrozenDisplay)=="boolean"&&!_5._owner.get_masterTableView().get_columns()[_d.Index].FrozenDisplay){
i++;
continue;
}
_5._owner.get_masterTableViewHeader()._hideNotFrozenColumn(_d.Index);
_12+=_13;
}else{
if(typeof (_5._owner.get_masterTableView().get_columns()[_d.Index].FrozenDisplay)=="boolean"&&_5._owner.get_masterTableView().get_columns()[_d.Index].FrozenDisplay){
i++;
continue;
}
_5._owner.get_masterTableViewHeader()._showNotFrozenColumn(_d.Index);
}
i++;
}
_5._owner.get_masterTableView().get_element().style.width=_5._owner.get_masterTableViewHeader().get_element().offsetWidth+"px";
if(_5._owner.get_masterTableViewFooter()){
_5._owner.get_masterTableViewFooter().get_element().style.width=_5._owner.get_masterTableViewHeader().get_element().offsetWidth+"px";
}
}else{
_5._owner.GridDataDiv.scrollLeft=_7.scrollLeft;
}
_5._frozenScrollCounter=0;
};
setTimeout("Telerik.Web.UI.Grid.frozenScrollHanlder("+this._frozenScrollCounter+")",100);
},onWindowResize:function(){
this.setHeaderAndFooterDivsWidth();
this.setDataDivHeight();
},setHeaderAndFooterDivsWidth:function(){
if(this._owner.GridDataDiv&&this._owner.GridHeaderDiv){
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1){
if(this._owner.GridDataDiv.offsetWidth>0){
this._owner.GridHeaderDiv.style.width=this._owner.GridDataDiv.offsetWidth-Telerik.Web.UI.Grid.getScrollBarHeight()+"px";
}
}
var _14=Telerik.Web.UI.Grid.IsRightToLeft(this._owner.GridHeaderDiv);
if((!_14&&this._owner.GridHeaderDiv&&parseInt(this._owner.GridHeaderDiv.style.marginRight)!=Telerik.Web.UI.Grid.getScrollBarHeight())||(_14&&this._owner.GridHeaderDiv&&parseInt(this._owner.GridHeaderDiv.style.marginLeft)!=Telerik.Web.UI.Grid.getScrollBarHeight())){
if(!_14){
this._owner.GridHeaderDiv.style.marginRight=Telerik.Web.UI.Grid.getScrollBarHeight()+"px";
this._owner.GridHeaderDiv.style.marginLeft="";
}else{
this._owner.GridHeaderDiv.style.marginLeft=Telerik.Web.UI.Grid.getScrollBarHeight()+"px";
this._owner.GridHeaderDiv.style.marginRight="";
}
}
if(this._owner.GridHeaderDiv&&this._owner.GridDataDiv){
var _15=this;
setTimeout(function(){
if(_15._owner.GridDataDiv.clientWidth==_15._owner.GridDataDiv.offsetWidth){
_15._owner.GridHeaderDiv.style.width="";
if(!_14){
_15._owner.GridHeaderDiv.style.marginRight="";
}else{
_15._owner.GridHeaderDiv.style.marginLeft="";
}
}
if(_15._owner.GridFooterDiv){
_15._owner.GridFooterDiv.style.marginRight=_15._owner.GridHeaderDiv.style.marginRight;
_15._owner.GridFooterDiv.style.marginLeft=_15._owner.GridHeaderDiv.style.marginLeft;
_15._owner.GridFooterDiv.style.width=_15._owner.GridHeaderDiv.style.width;
}
if(_15._owner._groupPanel&&_15._owner._groupPanel._items.length>0&&navigator.userAgent.toLowerCase().indexOf("msie")!=-1){
if(_15._owner.MasterTableView&&_15._owner.get_masterTableViewHeader()){
_15._owner.MasterTableView.get_element().style.width=_15._owner.get_masterTableViewHeader().get_element().offsetWidth+"px";
}
}
},0);
}
}
},setDataDivHeight:function(){
if(this._owner.GridDataDiv&&this._owner.get_element().style.height!=""){
this._owner.GridDataDiv.style.height="10px";
var _16=0;
var _17=$get(this._owner._groupPanelClientID);
if(_17){
_16+=_17.offsetHeight;
}
if(this._owner.GridHeaderDiv){
_16+=this._owner.GridHeaderDiv.offsetHeight;
}
if(this._owner.GridFooterDiv){
_16+=this._owner.GridFooterDiv.offsetHeight;
}
if(this._owner.PagerControl){
_16+=this._owner.PagerControl.offsetHeight;
}
if(this._owner.TopPagerControl){
_16+=this._owner.TopPagerControl.offsetHeight;
}
if(this._owner.ClientSettings.Scrolling.FrozenColumnsCount>0){
_16+=Telerik.Web.UI.Grid.getScrollBarHeight();
}
var _18=this._owner.get_element().clientHeight-_16;
if(_18>0){
var _19=this._owner.get_element().style.position;
if(window.netscape){
this._owner.get_element().style.position="absolute";
}
this._owner.GridDataDiv.style.height=_18+"px";
if(window.netscape){
this._owner.get_element().style.position=_19;
}
}
}
},initializeAutoLayout:function(){
if(this.AllowScroll&&this.UseStaticHeaders){
if(this._owner.MasterTableView&&this._owner.get_masterTableViewHeader()){
if(this._owner.MasterTableView.get_element().style.tableLayout!="auto"){
return;
}
var _1a=this._owner.MasterTableView._getFirstDataRow();
if(!_1a){
this._owner.MasterTableView.get_element().style.width=this._owner.get_masterTableViewHeader().get_element().offsetWidth+"px";
return;
}
this._owner.MasterTableView.get_element().style.tableLayout=this._owner.get_masterTableViewHeader().get_element().style.tableLayout="auto";
var _1b=this._owner.get_masterTableViewHeader().HeaderRow;
var _1c=0;
if(_1a){
_1c=Math.min(_1b.cells.length,_1a.cells.length);
}
var _1d=0;
for(var i=0;i<_1c;i++){
var col=this._owner.get_masterTableViewHeader().ColGroup.Cols[i];
if(!col){
continue;
}
if(col.width!=""&&!window.netscape){
continue;
}
var _20=_1b.cells[i].offsetWidth;
var _21=0;
if(_1a){
_21=_1a.cells[i].offsetWidth;
}
var _22=(_20>_21)?_20:_21;
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().get_element()){
if(this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0]&&this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0].cells[i]){
if(this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0].cells[i].offsetWidth>_22){
_22=this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0].cells[i].offsetWidth;
}
}
}
_1d=_1d+_22;
if(_22<=0){
continue;
}
_1b.cells[i].style.width=_22+"px";
this._owner.MasterTableView.ColGroup.Cols[i].width=_22+"px";
col.width=_22+"px";
if(_1a){
_1a.cells[i].style.width=_22+"px";
}
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().get_element()){
if(this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0]&&this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0].cells[i]){
this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0].cells[i].style.width=_22;
}
}
}
this._owner.MasterTableView.get_element().style.tableLayout=this._owner.get_masterTableViewHeader().get_element().style.tableLayout="fixed";
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().get_element()){
this._owner.get_masterTableViewFooter().get_element().style.tableLayout="fixed";
}
if(window.netscape&&_1d>0){
var _23=_1d+"px";
this._owner.MasterTableView.get_element().style.width=_23;
this._owner.get_masterTableViewHeader().get_element().style.width=_23;
this.onWindowResize();
}
}
}
},initializeSaveScrollPosition:function(){
if(!this._owner.ClientSettings.Scrolling.SaveScrollPosition){
return;
}
if(this._owner.ClientSettings.Scrolling.ScrollTop!=""&&!this._owner.ClientSettings.Scrolling.EnableVirtualScrollPaging){
this._owner.GridDataDiv.scrollTop=this._owner.ClientSettings.Scrolling.ScrollTop;
}
if(this._owner.ClientSettings.Scrolling.ScrollLeft!=""){
var _24=$get(this._owner.ClientID+"_Frozen");
if(this._owner.GridHeaderDiv&&!_24){
this._owner.GridHeaderDiv.scrollLeft=this._owner.ClientSettings.Scrolling.ScrollLeft;
}
if(this._owner.GridFooterDiv&&!_24){
this._owner.GridFooterDiv.scrollLeft=this._owner.ClientSettings.Scrolling.ScrollLeft;
}
if(_24){
_24.scrollLeft=this._owner.ClientSettings.Scrolling.ScrollLeft;
}else{
this._owner.GridDataDiv.scrollLeft=this._owner.ClientSettings.Scrolling.ScrollLeft;
}
}
},_initializeScroll:function(){
var _25=this;
var _26=function(){
_25.initializeSaveScrollPosition();
};
if(window.netscape&&!window.opera){
window.setTimeout(_26,0);
}else{
_26();
}
this._initializeVirtualScrollPaging();
if(this._owner.GridDataDiv){
$addHandlers(this._owner.GridDataDiv,{scroll:Function.createDelegate(this,this._onGridScroll)});
}
if(this._owner.GridHeaderDiv){
$addHandlers(this._owner.GridHeaderDiv,{scroll:Function.createDelegate(this,this._onGridScroll)});
}
},_hideRadComboBoxes:function(){
if(Telerik.Web.UI.RadComboBox){
var _27=document.getElementsByTagName("div");
var _28=[];
for(var i=0,_2a=_27.length;i<_2a;i++){
var _2b=_27[i];
if(Sys.UI.DomElement.containsCssClass(_2b,"rcbSlide")){
Array.add(_28,_2b);
}
}
for(var i=0,_2a=_28.length;i<_2a;i++){
var _2c=_28[i].getElementsByTagName("div");
if(_2c){
for(var j=0,_2e=_2c.length;j<_2e;j++){
if(_2c[j].id.indexOf("_DropDown")>-1){
var _2f=_2c[j].id.substr(0,_2c[j].id.indexOf("_DropDown"));
var _30=$find(_2f);
if(_30&&_30.get_dropDownVisible()&&Telerik.Web.UI.Grid.IsChildOf(_30.get_element(),this._owner.get_element())){
_30.hideDropDown();
}
}
}
}
}
}
},_onGridScroll:function(e){
if(this._owner._filterMenu){
this._owner._filterMenu.hide();
}
this._hideRadComboBoxes();
if(Telerik.Web.UI.RadDatePicker){
var _32=Telerik.Web.UI.RadDatePicker.PopupInstances;
for(var _33 in _32){
if($find(_33)&&(($find(_33).get_id().indexOf(this._owner.ClientID+"_"+"gdtcSharedCalendar")>-1)||($find(_33).get_id().indexOf(this._owner.ClientID+"_"+"gdtcSharedTimeView")>-1))){
Telerik.Web.UI.RadDatePicker.PopupInstances[_33].Hide();
}
}
}
var _34=(e.srcElement)?e.srcElement:e.target;
if(window.opera&&this.isFrozenScroll){
this._owner.GridDataDiv.scrollLeft=this._owner.GridHeaderDiv.scrollLeft=0;
return;
}
if(this.UseStaticHeaders){
if(!this.isFrozenScroll){
if(this._owner.GridHeaderDiv){
if(_34==this._owner.GridHeaderDiv){
this._owner.GridDataDiv.scrollLeft=this._owner.GridHeaderDiv.scrollLeft;
}
if(_34==this._owner.GridDataDiv){
this._owner.GridHeaderDiv.scrollLeft=this._owner.GridDataDiv.scrollLeft;
}
}
if(this._owner.GridFooterDiv){
this._owner.GridFooterDiv.scrollLeft=this._owner.GridDataDiv.scrollLeft;
}
}else{
if(this._owner.GridHeaderDiv){
this._owner.GridHeaderDiv.scrollLeft=this._owner.GridDataDiv.scrollLeft;
}
if(this._owner.GridFooterDiv){
this._owner.GridFooterDiv.scrollLeft=this._owner.GridDataDiv.scrollLeft;
}
}
}
this._owner.updateClientState();
this._owner.raise_scroll(new Telerik.Web.UI.GridScrollEventArgs(this._owner._gridDataDiv));
},_initializeVirtualScrollPaging:function(){
if(!this._owner.ClientSettings.Scrolling.EnableVirtualScrollPaging){
return;
}
this._scrollCounter=0;
this._currentAJAXScrollTop=0;
if(this._owner.ClientSettings.Scrolling.AJAXScrollTop!=""){
this._currentAJAXScrollTop=this._owner.ClientSettings.Scrolling.AJAXScrollTop;
}
var _35=this._owner._currentPageIndex*this._owner.get_masterTableView().get_pageSize()*20;
var _36=this._owner.get_masterTableView().get_pageCount()*this._owner.get_masterTableView().get_pageSize()*20;
var _37=_36-_35;
var _38=this._owner.get_masterTableView().get_element();
var _39=_38.offsetHeight;
var _3a=this._owner._gridDataDiv.offsetHeight;
if(!window.opera){
_38.style.marginTop=_35+"px";
if(_37>=_3a){
_38.style.marginBottom=_37-_39+"px";
}else{
_38.style.marginBottom=_3a-_39+"px";
}
}else{
_38.style.position="relative";
_38.style.top=_35+"px";
_38.style.marginBottom=_36-_39+"px";
}
this._currentAJAXScrollTop=_35;
this._owner._gridDataDiv.scrollTop=_35;
this._createScrollerToolTip();
var _3b=Function.createDelegate(this,this._onAjaxScrollHandler);
$addHandler(this._owner._gridDataDiv,"scroll",_3b);
},_createScrollerToolTip:function(){
var _3c=$get(this._owner.get_id()+"ScrollerToolTip");
if(!_3c){
this._scrollerToolTip=document.createElement("span");
this._scrollerToolTip.id=this._owner.get_id()+"ScrollerToolTip";
this._scrollerToolTip.style.backgroundColor="#F5F5DC";
this._scrollerToolTip.style.border="1px solid";
this._scrollerToolTip.style.position="absolute";
this._scrollerToolTip.style.display="none";
this._scrollerToolTip.style.font="icon";
this._scrollerToolTip.style.padding="2";
document.body.appendChild(this._scrollerToolTip);
}
},_onAjaxScrollHandler:function(e){
var _3e=this._owner._gridDataDiv;
if(_3e){
this._currentScrollTop=_3e.scrollTop;
}
this._scrollCounter++;
var _3f=this;
Telerik.Web.UI.Grid.AjaxScrollInternal=function(_40){
if(_3f._scrollCounter!=_40){
return;
}
var _41=_3f._owner._gridDataDiv;
if(_3f._currentAJAXScrollTop!=_41.scrollTop){
if(_3f._owner._currentPageIndex==_42){
return;
}
_3f._owner.get_masterTableView().page(_42+1);
}
_3f._scrollCounter=0;
_3f._hideScrollerToolTip();
};
this._owner.raise_scroll(new Telerik.Web.UI.GridScrollEventArgs(_3e));
var _43=Telerik.Web.UI.Grid.getScrollBarHeight();
var _44=_3e.scrollTop/(_3e.scrollHeight-_3e.offsetHeight+_43);
var _42=Math.round((this._owner.get_masterTableView().get_pageCount()-1)*_44);
window.setTimeout("Telerik.Web.UI.Grid.AjaxScrollInternal("+this._scrollCounter+")",500);
this._showScrollerTooltip(_44,_42);
},_showScrollerTooltip:function(_45,_46){
var _47=$get(this._owner.get_id()+"ScrollerToolTip");
if(_47){
var _48=this._owner._gridDataDiv;
_47.style.display="";
_47.style.top=parseInt(Telerik.Web.UI.Grid.FindPosY(_48))+Math.round(_48.offsetHeight*_45)+"px";
_47.style.left=parseInt(Telerik.Web.UI.Grid.FindPosX(_48))+_48.offsetWidth-(_48.offsetWidth-_48.clientWidth)-_47.offsetWidth+"px";
var _49=this._owner.get_masterTableView().get_pageCount();
this._applyPagerTooltipText(_47,_46,_49);
}
},_applyPagerTooltipText:function(_4a,_4b,_4c){
var _4d=this._owner.ClientSettings.ClientMessages.PagerTooltipFormatString;
var _4e=/\{0[^\}]*\}/g;
var _4f=/\{1[^\}]*\}/g;
var _50=((_4b==0)?1:_4b+1);
var _51=_4c;
_4d=_4d.replace(_4e,_50).replace(_4f,_51);
_4a.innerHTML=_4d;
},_hideScrollerToolTip:function(){
var _52=this;
setTimeout(function(){
var _53=$get(_52._owner.get_id()+"ScrollerToolTip");
if(_53&&_53.parentNode){
_53.style.display="none";
}
},200);
}};
Telerik.Web.UI.GridScrolling.registerClass("Telerik.Web.UI.GridScrolling",Sys.Component);
Telerik.Web.UI.GridScrollEventArgs=function(_54){
Telerik.Web.UI.GridScrollEventArgs.initializeBase(this);
this.scrollTop=_54.scrollTop;
this.scrollLeft=_54.scrollLeft;
this.scrollControl=_54;
this.isOnTop=(_54.scrollTop==0)?true:false;
var _55=Telerik.Web.UI.Grid.getScrollBarHeight();
if(_54.clientWidth==_54.scrollWidth){
_55=0;
}
this.isOnBottom=((_54.scrollHeight-_54.offsetHeight+_55)==_54.scrollTop)?true:false;
};
Telerik.Web.UI.GridScrollEventArgs.prototype={get_scrollTop:function(){
return this.scrollTop;
},get_scrollLeft:function(){
return this.scrollLeft;
},get_scrollControl:function(){
return this.scrollControl;
},get_isOnTop:function(){
return this.isOnTop;
},get_isOnBottom:function(){
return this.isOnBottom;
}};
Telerik.Web.UI.GridScrollEventArgs.registerClass("Telerik.Web.UI.GridScrollEventArgs",Sys.EventArgs);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridSelection=function(){
Telerik.Web.UI.GridSelection.initializeBase(this);
this._owner={};
};
Telerik.Web.UI.GridSelection.prototype={initialize:function(){
Telerik.Web.UI.GridSelection.callBaseMethod(this,"initialize");
$addHandlers(this._owner.get_element(),{click:Function.createDelegate(this,this._click)});
var _1=$get(this._owner._masterClientID).tBodies[0];
$addHandlers(_1,{mousedown:Function.createDelegate(this,this._mousedown)});
$addHandlers(_1,{mousemove:Function.createDelegate(this,this._mousemove)});
$addHandlers(_1,{mouseup:Function.createDelegate(this,this._mouseup)});
$addHandlers(document,{mouseup:Function.createDelegate(this,this._mouseup)});
if(this._owner._selectedItemsInternal.length>0){
for(var i=0;i<this._owner._selectedItemsInternal.length;i++){
Array.add(this._owner._selectedIndexes,this._owner._selectedItemsInternal[i].itemIndex);
}
}
},updated:function(){
Telerik.Web.UI.GridSelection.callBaseMethod(this,"updated");
},dispose:function(){
Telerik.Web.UI.GridSelection.callBaseMethod(this,"dispose");
},_mousedown:function(e){
if(this._owner.ClientSettings.Selecting.EnableDragToSelectRows&&this._owner.AllowMultiRowSelection){
this._createRowSelectorArea(e);
}
},_mousemove:function(e){
this._resizeRowSelectorArea(e);
},_mouseup:function(e){
this._destroyRowSelectorArea(e);
},_createRowSelectorArea:function(e){
if(e.ctrlKey){
return;
}
var _7=null;
if(e.srcElement){
_7=e.srcElement;
}else{
if(e.target){
_7=e.target;
}
}
if(!_7.tagName){
return;
}
if(_7.tagName.toLowerCase()=="input"||_7.tagName.toLowerCase()=="textarea"){
return;
}
if((!this._owner.ClientSettings.Selecting.AllowRowSelect)||(!this._owner.AllowMultiRowSelection)){
return;
}
var _8=Telerik.Web.UI.Grid.GetCurrentElement(e);
if((!_8)||(!Telerik.Web.UI.Grid.IsChildOf(_8,this._owner.get_element()))){
return;
}
this._firstRow=Telerik.Web.UI.Grid.GetFirstParentByTagName(_8,"tr");
if(this._firstRow.id==""){
return;
}
if(!this._rowSelectorArea){
this._rowSelectorArea=document.createElement("span");
this._rowSelectorArea.style.backgroundColor="navy";
this._rowSelectorArea.style.border="black 1px solid";
this._rowSelectorArea.style.position="absolute";
this._rowSelectorArea.style.font="icon";
if(window.netscape&&!window.opera){
this._rowSelectorArea.style.MozOpacity=1/10;
}else{
if(window.opera||navigator.userAgent.indexOf("Safari")>-1){
this._rowSelectorArea.style.opacity=0.1;
}else{
this._rowSelectorArea.style.filter="alpha(opacity=10);";
}
}
if(this._owner.GridDataDiv){
this._rowSelectorArea.style.top=Telerik.Web.UI.Grid.FindPosY(this._firstRow)-this._owner.GridDataDiv.scrollTop+"px";
this._rowSelectorArea.style.left=Telerik.Web.UI.Grid.FindPosX(this._firstRow)-this._owner.GridDataDiv.scrollLeft+"px";
if(parseInt(this._rowSelectorArea.style.left)<Telerik.Web.UI.Grid.FindPosX(this._owner.get_element())){
this._rowSelectorArea.style.left=Telerik.Web.UI.Grid.FindPosX(this._owner.get_element())+"px";
}
}else{
this._rowSelectorArea.style.top=Telerik.Web.UI.Grid.FindPosY(this._firstRow)+"px";
this._rowSelectorArea.style.left=Telerik.Web.UI.Grid.FindPosX(this._firstRow)+"px";
}
document.body.appendChild(this._rowSelectorArea);
Telerik.Web.UI.Grid.ClearDocumentEvents();
}
},_destroyRowSelectorArea:function(e){
if(this._rowSelectorArea){
var _a=this._rowSelectorArea.style.height;
document.body.removeChild(this._rowSelectorArea);
this._rowSelectorArea=null;
Telerik.Web.UI.Grid.RestoreDocumentEvents();
var _b=Telerik.Web.UI.Grid.GetCurrentElement(e);
var _c;
if((!_b)||(!Telerik.Web.UI.Grid.IsChildOf(_b,this._owner.get_element()))){
return;
}
var _d=Telerik.Web.UI.Grid.GetFirstParentByTagName(_b,"td");
if((_b.tagName.toLowerCase()=="td")||(_b.tagName.toLowerCase()=="tr")||_d.tagName.toLowerCase()=="td"){
if(_b.tagName.toLowerCase()=="td"){
_c=_b.parentNode;
}else{
if(_d.tagName.toLowerCase()=="td"){
_c=_d.parentNode;
}else{
if(_b.tagName.toLowerCase()=="tr"){
_c=_b;
}
}
}
if(this._firstRow.parentNode.parentNode.id==_c.parentNode.parentNode.id){
var _e=(this._firstRow.rowIndex<_c.rowIndex)?this._firstRow.rowIndex:_c.rowIndex;
var _f=(_e==this._firstRow.rowIndex)?_c.rowIndex:this._firstRow.rowIndex;
for(var i=_e;i<_f+1;i++){
var _11=this._firstRow.parentNode.parentNode.rows[i];
if(_11.id==""){
continue;
}
if(_11){
if(_a!=""){
var _12=$find(_11.id);
if(_12){
_12.set_selected(true);
}else{
var _13=$find(_11.id.split("__")[0]);
_13.selectItem(_11);
}
}
}
}
}else{
}
}
}
},_resizeRowSelectorArea:function(e){
if((this._rowSelectorArea)&&(this._rowSelectorArea.parentNode)){
var _15=Telerik.Web.UI.Grid.GetCurrentElement(e);
if((!_15)||(!Telerik.Web.UI.Grid.IsChildOf(_15,this._owner.get_element()))){
return;
}
var _16=parseInt(this._rowSelectorArea.style.left);
if(this._owner.GridDataDiv){
var _17=Telerik.Web.UI.Grid.GetEventPosX(e)-this._owner.GridDataDiv.scrollLeft;
}else{
var _17=Telerik.Web.UI.Grid.GetEventPosX(e);
}
var _18=parseInt(this._rowSelectorArea.style.top);
if(this._owner.GridDataDiv){
var _19=Telerik.Web.UI.Grid.GetEventPosY(e)-this._owner.GridDataDiv.scrollTop;
}else{
var _19=Telerik.Web.UI.Grid.GetEventPosY(e);
}
if((_17-_16-5)>0){
this._rowSelectorArea.style.width=_17-_16-5+"px";
}
if(this._rowSelectorArea.offsetWidth>this._owner.get_element().offsetWidth){
this._rowSelectorArea.style.width=this._owner.get_element().offsetWidth+"px";
}
if(_19>_18){
if((_19-_18-5)>0){
this._rowSelectorArea.style.height=_19-_18-5+"px";
}
}else{
if((_18-_19-5)>0){
this._rowSelectorArea.style.top=_19-5+"px";
var _1a=Telerik.Web.UI.Grid.FindPosY(this._firstRow)-parseInt(this._rowSelectorArea.style.top)-5;
if(_1a>0){
this._rowSelectorArea.style.height=_1a+"px";
}
}
}
}
},_click:function(e){
var el=(e.target)?e.target:e.srcElement;
if(!el.tagName){
return;
}
if(this._owner.ClientSettings.Selecting&&this._owner.ClientSettings.Selecting.AllowRowSelect){
var _1d=(el.tagName.toLowerCase()=="input"&&el.type.toLowerCase()=="checkbox"&&(el.id&&el.id.indexOf("SelectCheckBox")!=-1));
if((el.tagName.toLowerCase()=="input"&&!_1d)||el.tagName.toLowerCase()=="select"||el.tagName.toLowerCase()=="option"||el.tagName.toLowerCase()=="button"||el.tagName.toLowerCase()=="a"||el.tagName.toLowerCase()=="textarea"||el.tagName.toLowerCase()=="img"){
return;
}
if(el.tagName.toLowerCase()!="tr"){
el=Telerik.Web.UI.Grid.GetFirstParentByTagName(el,"tr");
}
if(el&&(el.parentNode.parentNode.parentNode==this._owner.get_element()||el.parentNode.parentNode.parentNode==this._owner._gridDataDiv||Array.contains(this._owner.get_detailTables(),$find(el.parentNode.parentNode.id)))&&el.id&&el.id.split("__").length==2){
if(this._owner.get_AllowMultiRowSelection()){
if(e.shiftKey&&this._owner._selectedItemsInternal[0]){
var _1e=$get(this._owner._selectedItemsInternal[0].id);
if(_1e.rowIndex>el.rowIndex){
for(var i=el.rowIndex;i<_1e.rowIndex+1;i++){
var tr=_1e.parentNode.parentNode.rows[i];
if(tr.id){
this._selectRowInternal(tr,e,true,false,true);
}
}
}
if(_1e.rowIndex<el.rowIndex){
for(var i=_1e.rowIndex;i<el.rowIndex+1;i++){
var tr=_1e.parentNode.parentNode.rows[i];
if(tr.id){
this._selectRowInternal(tr,e,true,false,true);
}
}
}
return;
}
this._selectRowInternal(el,e,_1d,true,true);
}else{
this._selectRowInternal(el,e,false,false,true);
}
}
}
if(this._owner.ClientSettings&&this._owner.ClientSettings.EnablePostBackOnRowClick&&el){
if(el&&el.tagName.toLowerCase()!="tr"){
el=Telerik.Web.UI.Grid.GetFirstParentByTagName(el,"tr");
}
if(el&&el.id!=""&&el.id.split("__").length==2){
var _21=el.id.split("__")[1];
var _22=this._owner.ClientSettings.PostBackFunction;
_22=_22.replace("{0}",this._owner.UniqueID);
_22=_22.replace("{1}","RowClick;"+_21);
setTimeout(function(){
eval(_22);
},100);
}
}
},_selectRowInternal:function(_23,e,_25,_26,_27,_28){
if(typeof (_28)=="undefined"){
_28=true;
}
var _29=_23.id.split("__")[1];
var _2a=$find(_23.id.split("__")[0]);
if(!_25){
if(!this._owner.AllowMultiRowSelection||(this._owner.AllowMultiRowSelection&&!e.ctrlKey)){
if(this._owner._selectedItemsInternal.length>0){
var i=this._owner._selectedItemsInternal.length-1;
while(i>=0){
var _2c=new Telerik.Web.UI.GridDataItemCancelEventArgs(_23,e);
this._owner.raise_rowDeselecting(_2c);
if(_2c.get_cancel()){
i--;
continue;
}
var _2d=$get(this._owner._selectedItemsInternal[i].id);
Sys.UI.DomElement.removeCssClass(_2d,_2a._data._selectedItemStyleClass);
if(_2a._data._selectedItemStyle){
var _2e=_2d.style.cssText.toLowerCase().replace(/ /g,"");
var _2f=_2e.split(";");
for(var j=0;j<_2f.length;j++){
if(_2a._data._selectedItemStyle.toLowerCase().indexOf(_2f[j])!=-1){
_2f[j]="";
}
}
_2d.style.cssText=_2f.join(";");
}
this._checkClientSelectColumn(_2d,false);
var _31=$find(this._owner._selectedItemsInternal[i].id);
if(_31){
_31._selected=false;
}
Array.remove(this._owner._selectedItemsInternal,this._owner._selectedItemsInternal[i]);
Array.remove(this._owner._selectedIndexes,this._owner._selectedIndexes[i]);
this._owner.raise_rowDeselected(new Telerik.Web.UI.GridDataItemEventArgs(_2d,e));
i--;
}
}
var _32=Telerik.Web.UI.Grid.getTableHeaderRow(_23.parentNode.parentNode);
if(_32){
this._checkClientSelectColumn(_32,false);
}
}
}
if(!Array.contains(this._owner._selectedIndexes,_29)){
if(!_25||_28){
var _2c=new Telerik.Web.UI.GridDataItemCancelEventArgs(_23,e);
this._owner.raise_rowSelecting(_2c);
if(_2c.get_cancel()){
if(_25){
this._checkClientSelectColumn(_23,false);
var _32=Telerik.Web.UI.Grid.getTableHeaderRow(_23.parentNode.parentNode);
if(_32){
this._checkClientSelectColumn(_32,false);
}
}
return false;
}
Sys.UI.DomElement.addCssClass(_23,_2a._data._selectedItemStyleClass);
if(_2a._data._selectedItemStyle!=""){
_23.style.cssText=_23.style.cssText+";"+_2a._data._selectedItemStyle;
}
Array.add(this._owner._selectedItemsInternal,{"itemIndex":_29,"id":_23.id});
Array.add(this._owner._selectedIndexes,_29);
this._checkClientSelectColumn(_23,true);
var _31=$find(_23.id);
if(_31){
_31._selected=true;
}
this._owner.raise_rowSelected(new Telerik.Web.UI.GridDataItemEventArgs(_23,e));
}
}else{
if(_26||(_25&&!_28)){
var _2c=new Telerik.Web.UI.GridDataItemCancelEventArgs(_23,e);
this._owner.raise_rowDeselecting(_2c);
if(!_2c.get_cancel()){
Sys.UI.DomElement.removeCssClass(_23,_2a._data._selectedItemStyleClass);
if(_2a._data._selectedItemStyle){
var _2e=_23.style.cssText.toLowerCase().replace(/ /g,"");
var _2f=_2e.split(";");
for(var j=0;j<_2f.length;j++){
if(_2a._data._selectedItemStyle.toLowerCase().indexOf(_2f[j])!=-1){
_2f[j]="";
}
}
_23.style.cssText=_2f.join(";");
}
for(var i=0;i<this._owner._selectedItemsInternal.length;i++){
if(this._owner._selectedItemsInternal[i].itemIndex==_29){
var _31=$find(this._owner._selectedItemsInternal[i].id);
if(_31){
_31._selected=false;
}
Array.remove(this._owner._selectedItemsInternal,this._owner._selectedItemsInternal[i]);
break;
}
}
for(var i=0;i<this._owner._selectedIndexes.length;i++){
if(this._owner._selectedIndexes[i]==_29){
Array.remove(this._owner._selectedIndexes,this._owner._selectedIndexes[i]);
break;
}
}
this._checkClientSelectColumn(_23,false);
this._owner.raise_rowDeselected(new Telerik.Web.UI.GridDataItemEventArgs(_23,e));
}
}
}
if(_27){
this._owner.updateClientState();
}
return true;
},_checkClientSelectColumn:function(_33,_34){
var _35=_33.getElementsByTagName("input");
for(var i=0;i<_35.length;i++){
var _37=_35[i];
if(_37.type.toLowerCase()!="checkbox"){
continue;
}
if(_37.id&&_37.id.indexOf("SelectCheckBox")!=-1){
_37.checked=_34;
}
}
}};
Telerik.Web.UI.GridSelection.registerClass("Telerik.Web.UI.GridSelection",Sys.Component);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridTableView=function(_1){
Telerik.Web.UI.GridTableView.initializeBase(this,[_1]);
this._owner={};
this._data={};
this._dataItems=[];
this._columnsInternal=[];
this._firstDataRow=null;
};
Telerik.Web.UI.GridTableView.prototype={initialize:function(){
Telerik.Web.UI.GridTableView.callBaseMethod(this,"initialize");
if(this._data._selectedItemStyleClass==""&&this._data._selectedItemStyle==""){
this._data._selectedItemStyle="background-color:navy;color:white;";
}
if(this._data._renderActiveItemStyleClass==""&&this._data._renderActiveItemStyle==""){
this._data._renderActiveItemStyle="background-color:navy;color:white;";
}
this.ColGroup=Telerik.Web.UI.Grid.GetTableColGroup(this.get_element());
if(this.ColGroup){
this.ColGroup.Cols=Telerik.Web.UI.Grid.GetTableColGroupCols(this.ColGroup);
}
this.PageSize=this._data.PageSize;
this.PageCount=this._data.PageCount;
this.CurrentPageIndex=this._data.CurrentPageIndex;
var _2=(this._owner.ClientSettings.Scrolling&&this._owner.ClientSettings.Scrolling.AllowScroll&&this._owner.ClientSettings.Scrolling.UseStaticHeaders);
if((this.get_element().id.indexOf("_Header")!=-1&&_2)||(!_2&&this.get_element().id.indexOf("_Header")==-1)){
var _3=Telerik.Web.UI.Grid.getTableHeaderRow(this.get_element());
if(!_3){
var _4=$get(this.get_element().id+"_Header");
if(_4){
_3=Telerik.Web.UI.Grid.getTableHeaderRow(_4);
}
}
this.HeaderRow=_3;
var _5=this._data._columnsData;
for(var i=0;i<_5.length&&_3;i++){
var _7=_5[i];
var _8=_3.cells[i];
if(!_8){
continue;
}
this._owner.raise_columnCreating(new Sys.EventArgs());
var _9=$create(Telerik.Web.UI.GridColumn,{_owner:this,_data:_7},null,null,_3.cells[i]);
var _a=new Sys.EventArgs();
_a.get_column=function(){
return _9;
};
Array.add(this._columnsInternal,_9);
this._owner.raise_columnCreated(_a);
}
}
if(this._owner.get_events().getHandler("rowCreating")||this._owner.get_events().getHandler("rowCreated")){
this.get_dataItems();
}
},dispose:function(){
this._owner.raise_tableDestroying(Sys.EventArgs.Empty);
$clearHandlers(this.get_element());
for(var i=0;i<this._dataItems.length;i++){
if(this._dataItems[i]){
this._dataItems[i].dispose();
}
}
this._dataItems=[];
Telerik.Web.UI.GridTableView.callBaseMethod(this,"dispose");
},get_columns:function(){
return this._columnsInternal;
},get_clientDataKeyNames:function(){
var _c=[];
if(this._data.clientDataKeyNames){
_c=this._data.clientDataKeyNames;
}
return _c;
},get_dataItems:function(){
if(this._dataItems.length>0){
return this._dataItems;
}
var _d=this.get_element().tBodies[0].rows;
for(var i=0,l=_d.length;i<l;i++){
var row=_d[i];
if(!row.id){
continue;
}
var _11={};
this._owner.raise_rowCreating(new Sys.EventArgs());
var _12=$create(Telerik.Web.UI.GridDataItem,{_owner:this,_data:_11},null,null,row);
_12._itemIndexHierarchical=row.id.split("__")[1];
this._owner.raise_rowCreated(new Telerik.Web.UI.GridDataItemEventArgs(row,null));
this._dataItems[this._dataItems.length]=_12;
}
return this._dataItems;
},get_owner:function(){
return this._owner;
},get_name:function(){
return this._data.Name;
},get_isItemInserted:function(){
return this._data.IsItemInserted;
},_showNotFrozenColumn:function(_13){
this._hideShowNotFrozenColumn(_13,true);
},_hideNotFrozenColumn:function(_14){
this._hideShowNotFrozenColumn(_14,false);
},showColumn:function(_15){
var _16=new Telerik.Web.UI.GridColumnCancelEventArgs(this.get_columns()[_15],null);
this._owner.raise_columnShowing(_16);
if(_16.get_cancel()){
return false;
}
this._hideShowColumn(_15,true);
this._owner._showedColumns+=this._data.UniqueID+","+this.get_columns()[_15].get_uniqueName()+";";
this._owner.updateClientState();
var _16=new Telerik.Web.UI.GridColumnEventArgs(this.get_columns()[_15],null);
this._owner.raise_columnShown(_16);
},hideColumn:function(_17){
var _18=new Telerik.Web.UI.GridColumnCancelEventArgs(this.get_columns()[_17],null);
this._owner.raise_columnHiding(_18);
if(_18.get_cancel()){
return false;
}
this._hideShowColumn(_17,false);
this._owner._hidedColumns+=this._data.UniqueID+","+this.get_columns()[_17].get_uniqueName()+";";
this._owner.updateClientState();
var _18=new Telerik.Web.UI.GridColumnEventArgs(this.get_columns()[_17],null);
this._owner.raise_columnHidden(_18);
},_hideShowColumn:function(_19,_1a){
var _1a=this.get_columns()[_19].Display=_1a;
if(this!=this._owner.get_masterTableViewHeader()&&this!=this._owner.get_element()&&this!=this._owner.get_masterTableViewFooter()){
if(window.netscape||this._owner.GridHeaderDiv){
this._hideShowCol(this,_19,_1a);
}
Telerik.Web.UI.Grid.hideShowCells(this.get_element(),_19,_1a,this.ColGroup.Cols);
return;
}
if(this._owner.get_masterTableViewHeader()){
if(window.netscape||this._owner.GridHeaderDiv){
this._hideShowCol(this._owner.get_masterTableViewHeader(),_19,_1a);
}
Telerik.Web.UI.Grid.hideShowCells(this._owner.get_masterTableView().get_element(),_19,_1a,this._owner.get_masterTableView().ColGroup.Cols);
}
if(this._owner.get_masterTableView()){
if(window.netscape||this._owner.GridHeaderDiv){
this._hideShowCol(this._owner.MasterTableView,_19,_1a);
}
Telerik.Web.UI.Grid.hideShowCells(this._owner.get_masterTableView().get_element(),_19,_1a,this._owner.get_masterTableView().ColGroup.Cols);
}
if(this._owner.get_masterTableViewFooter()){
if(window.netscape||this._owner.GridHeaderDiv){
this._hideShowCol(this._owner.get_masterTableViewFooter(),_19,_1a);
}
Telerik.Web.UI.Grid.hideShowCells(this._owner.get_masterTableViewFooter().get_element(),_19,_1a,this._owner.get_masterTableViewFooter().ColGroup.Cols);
}
},_hideShowCol:function(_1b,_1c,_1d){
if(_1b&&_1b.ColGroup&&_1b.ColGroup.Cols&&_1b.ColGroup.Cols[_1c]){
var _1e=(_1b.ColGroup.Cols[_1c].style.display=="")?true:false;
if(_1e!=_1d){
_1b.ColGroup.Cols[_1c].style.display=(_1d)?"":"none";
}
}
},_hideShowNotFrozenColumn:function(_1f,_20){
if(this._owner.get_masterTableViewHeader()){
this._owner.get_masterTableViewHeader().get_columns()[_1f].FrozenDisplay=_20;
if(!window.netscape&&navigator.userAgent.toLowerCase().indexOf("safari")==-1){
this._hideShowCol(this._owner.get_masterTableViewHeader(),_1f,_20);
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("6.0")!=-1){
var _21=this._owner.get_masterTableViewHeader().get_element().getElementsByTagName("select");
if(_21.length>0){
var _22=this;
setTimeout(function(){
Telerik.Web.UI.Grid.hideShowCells(_22._owner.get_masterTableViewHeader().get_element(),_1f,_20,_22._owner.get_masterTableViewHeader().ColGroup.Cols);
},0);
}
}
}else{
Telerik.Web.UI.Grid.hideShowCells(this._owner.get_masterTableViewHeader().get_element(),_1f,_20,this._owner.get_masterTableViewHeader().ColGroup.Cols);
}
}
if(this._owner.get_masterTableView()){
this._owner.get_masterTableView().get_columns()[_1f].FrozenDisplay=_20;
if(!window.netscape&&navigator.userAgent.toLowerCase().indexOf("safari")==-1){
this._hideShowCol(this._owner.get_masterTableView(),_1f,_20);
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("6.0")!=-1){
var _21=this._owner.get_masterTableView().get_element().getElementsByTagName("select");
if(_21.length>0){
var _22=this;
setTimeout(function(){
Telerik.Web.UI.Grid.hideShowCells(_22._owner.get_masterTableView().get_element(),_1f,_20,_22._owner.get_masterTableView().ColGroup.Cols);
},0);
}
}
}else{
Telerik.Web.UI.Grid.hideShowCells(this._owner.get_masterTableView().get_element(),_1f,_20,this._owner.get_masterTableView().ColGroup.Cols);
}
}
if(this._owner.get_masterTableViewFooter()){
if(!window.netscape&&navigator.userAgent.toLowerCase().indexOf("safari")==-1){
this._hideShowCol(this._owner.get_masterTableViewFooter(),_1f,_20);
if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("6.0")!=-1){
var _21=this._owner.get_masterTableViewFooter().get_element().getElementsByTagName("select");
if(_21.length>0){
var _22=this;
setTimeout(function(){
Telerik.Web.UI.Grid.hideShowCells(_22._owner.get_masterTableViewFooter().get_element(),_1f,_20,_22._owner.get_masterTableViewFooter().ColGroup.Cols);
},0);
}
}
}else{
Telerik.Web.UI.Grid.hideShowCells(this._owner.get_masterTableViewFooter().Control,_1f,_20,this._owner.get_masterTableViewFooter().ColGroup.Cols);
}
}
},hideItem:function(_23){
if(!this._canShowHideItem(_23)){
return false;
}
var _24=null;
if(this.get_element()&&this.get_element().tBodies[0]&&this.get_element().tBodies[0].rows[_23]){
_24=this.get_element().tBodies[0].rows[_23];
}
var _25=new Telerik.Web.UI.GridDataItemCancelEventArgs(_24,null);
this._owner.raise_rowHiding(_25);
if(_25.get_cancel()){
return false;
}
if(_24){
_24.style.display="none";
}
if(_24&&_24.id!=""&&_24.id.split("__").length==2){
var _26=_24.id.split("__")[1];
this._owner._hidedItems+=this.get_id()+","+_26+";";
this._owner.updateClientState();
}
var _25=new Telerik.Web.UI.GridDataItemEventArgs(_24,null);
this._owner.raise_rowHidden(_25);
},showItem:function(_27){
if(!this._canShowHideItem(_27)){
return false;
}
var _28=null;
if(this.get_element()&&this.get_element().tBodies[0]&&this.get_element().tBodies[0].rows[_27]){
_28=this.get_element().tBodies[0].rows[_27];
}
var _29=new Telerik.Web.UI.GridDataItemCancelEventArgs(_28,null);
this._owner.raise_rowShowing(_29);
if(_29.get_cancel()){
return false;
}
if(_28){
if(window.netscape){
_28.style.display="table-row";
}else{
_28.style.display="";
}
}
if(_28&&_28.id!=""&&_28.id.split("__").length==2){
var _2a=_28.id.split("__")[1];
this._owner._showedItems+=this.get_id()+","+_2a+";";
this._owner.updateClientState();
}
var _29=new Telerik.Web.UI.GridDataItemEventArgs(_28,null);
this._owner.raise_rowShown(_29);
},_canShowHideItem:function(_2b){
if(isNaN(parseInt(_2b))){
var _2c="Row index must be of type \"Number\"!";
alert(_2c);
return false;
}
if(_2b<0){
var _2c="Row index must be non-negative!";
alert(_2c);
return false;
}
if(this.get_element()&&this.get_element().tBodies[0]&&this.get_element().tBodies[0].rows[_2b]&&(_2b>(this.get_element().tBodies[0].rows[_2b].length-1))){
var _2c="Row index must be less than rows count!";
alert(_2c);
return false;
}
return true;
},_getFirstDataRow:function(){
if(this._firstDataRow!=null){
return this._firstDataRow;
}
if(this._dataItems.length>0){
return this._dataItems[0].get_element();
}
var _2d=this.get_element().tBodies[0].rows;
for(var i=0,l=_2d.length;i<l;i++){
var row=_2d[i];
if(row.id!=""&&row.id.split("__").length==2){
this._firstRow=row;
break;
}
}
return this._firstRow;
},_getLastDataRow:function(){
var _31=null;
var _32=this.get_element().tBodies[0].rows;
for(var i=_32.length-1;i>=0;i--){
var row=_32[i];
if(row.id!=""&&row.id.split("__").length==2){
_31=row;
break;
}
}
return _31;
},_getNextDataRow:function(row){
var _36=null;
var _37=this.get_element().tBodies[0].rows;
for(var i=row.sectionRowIndex+1,l=_37.length;i<l;i++){
var row=_37[i];
if(row.id!=""&&row.id.split("__").length==2){
_36=row;
break;
}
}
return _36;
},_getNextNestedDataRow:function(row){
var _3b=null;
var _3c=Telerik.Web.UI.Grid.GetNestedTable(row);
if(_3c){
var _3d=_3c.tBodies[0].rows;
for(var i=0;i<_3d.length;i++){
var row=_3d[i];
if(row.id!=""&&row.id.split("__").length==2){
_3b=row;
break;
}
}
}
return _3b;
},_getPreviousDataRow:function(row){
var _40=null;
var _41=this.get_element().tBodies[0].rows;
for(var i=row.sectionRowIndex-1;i>=0;i--){
var row=_41[i];
if(row.id!=""&&row.id.split("__").length==2){
_40=row;
break;
}
}
return _40;
},_getPreviousNestedDataRow:function(row){
var _44=null;
var _45=Telerik.Web.UI.Grid.GetNestedTable(row);
if(_45){
var _46=_45.tBodies[0].rows;
for(var i=row.sectionRowIndex-1;i>=0;i--){
var row=_46[i];
if(row.id!=""&&row.id.split("__").length==2){
_44=row;
break;
}
}
}
return _44;
},get_parentView:function(){
var _48=null;
if(this.get_id()!=this._owner.get_masterTableView().get_id()){
_48=$find(this.get_parentRow().id.split("__")[0]);
}
return _48;
},get_parentRow:function(){
var _49=null;
if(this.get_id()!=this._owner.get_masterTableView().get_id()){
_49=this.get_element().parentNode.parentNode.previousSibling;
}
return _49;
},get_selectedItems:function(){
var _4a=[];
for(var i=0;i<this._owner._selectedItemsInternal.length;i++){
var _4c=$find(this._owner._selectedItemsInternal[i].id);
if(_4c==null){
_4c=$create(Telerik.Web.UI.GridDataItem,{_owner:this,_data:this._data,_selected:true},null,null,$get(this._owner._selectedItemsInternal[i].id));
}
if(_4c&&_4c._owner.get_element().id==this.get_element().id){
Array.add(_4a,_4c);
}
}
return _4a;
},clearSelectedItems:function(){
if(this._owner._selectedItemsInternal.length>0){
var i=this._owner._selectedItemsInternal.length-1;
while(i>=0){
var _4e=$find(this._owner._selectedItemsInternal[i].id);
if(_4e){
if(_4e._owner.get_element().id==this.get_element().id){
_4e.set_selected(false);
}
}else{
if($get(this._owner._selectedItemsInternal[i].id).parentNode.parentNode.id==this.get_element().id){
this.deselectItem($get(this._owner._selectedItemsInternal[i].id));
}
}
i--;
}
}
},selectItem:function(_4f){
_4f=this._getRowByIndexOrItemIndexHierarchical(_4f);
if(this._owner._selection&&_4f&&_4f.id){
if(!this._owner.AllowMultiRowSelection){
this.clearSelectedItems();
}
this._owner._selection._selectRowInternal(_4f,{"ctrlKey":false},true,false,true);
}
},deselectItem:function(_50){
_50=this._getRowByIndexOrItemIndexHierarchical(_50);
if(this._owner._selection&&_50&&_50.id){
this._owner._selection._selectRowInternal(_50,{"ctrlKey":false},true,true,true);
}
},_getRowByIndexOrItemIndexHierarchical:function(_51){
if(typeof (_51)=="number"){
var row=null;
if(this.get_element().tBodies.length>0){
if(this.get_element().tBodies[0].rows[_51]){
row=this.get_element().tBodies[0].rows[_51];
}
if(row&&row.id==""){
row=this._getNextDataRow(row);
}
}
_51=row;
}
if(typeof (_51)=="string"){
_51=$get(this.get_element().id+"__"+_51);
}
return _51;
},reorderColumns:function(_53,_54){
if(!this._owner.ClientSettings.AllowColumnsReorder){
return;
}
if(this._owner.ClientSettings.ColumnsReorderMethod!=1){
return;
}
var _55=this.getColumnByUniqueName(_53);
var _56=this.getColumnByUniqueName(_54);
if(!_55||!_56){
return;
}
var row=_55.get_element().parentNode;
var _58=this._getCellIndexByColumnUniqueNameFromTableRowElement(row,_53);
var _59=this._getCellIndexByColumnUniqueNameFromTableRowElement(row,_54);
var _5a=this._owner.ClientSettings.ReorderColumnsOnClient;
this._owner.ClientSettings.ReorderColumnsOnClient=true;
var _5b=this._owner.ClientSettings.ColumnsReorderMethod;
this._owner.ClientSettings.ColumnsReorderMethod=0;
if(_59>_58){
var _5c=new Telerik.Web.UI.GridColumnCancelEventArgs(_55,null);
this._owner.raise_columnMovingToLeft(_5c);
if(_5c.get_cancel()){
return false;
}
while(_58<_59){
var _5d=this.getColumnUniqueNameByCellIndex(row,_59-1);
var _5e=this.getColumnUniqueNameByCellIndex(row,_59);
this.swapColumns(_5d,_5e);
_59--;
}
var _5c=new Telerik.Web.UI.GridColumnEventArgs(_55,null);
this._owner.raise_columnMovedToLeft(_5c);
}else{
var _5c=new Telerik.Web.UI.GridColumnCancelEventArgs(_55,null);
this._owner.raise_columnMovingToRight(_5c);
if(_5c.get_cancel()){
return false;
}
while(_59<_58){
var _5d=this.getColumnUniqueNameByCellIndex(row,_59+1);
var _5e=this.getColumnUniqueNameByCellIndex(row,_59);
this.swapColumns(_5d,_5e);
_59++;
}
var _5c=new Telerik.Web.UI.GridColumnEventArgs(_55,null);
this._owner.raise_columnMovedToRight(_5c);
}
this._owner.ClientSettings.ColumnsReorderMethod=_5b;
this._owner.ClientSettings.ReorderColumnsOnClient=_5a;
if(!this._owner.ClientSettings.ReorderColumnsOnClient){
var _5f=this._owner.ClientSettings.PostBackFunction;
_5f=_5f.replace("{0}",this._owner.UniqueID);
eval(_5f);
return;
}
},swapColumns:function(_60,_61){
var _62=this.getColumnByUniqueName(_60);
var _63=this.getColumnByUniqueName(_61);
if(!_62||!_63){
return;
}
if(!this._owner.ClientSettings.AllowColumnsReorder){
return;
}
if(!_62.get_reorderable()||!_63.get_reorderable()){
return;
}
if(!this._owner.ClientSettings.ReorderColumnsOnClient){
var _64=this._owner.ClientSettings.PostBackFunction;
_64=_64.replace("{0}",this._owner.UniqueID);
_64=_64.replace("{1}","ReorderColumns,"+this._data.UniqueID+","+_62.get_uniqueName()+","+_63.get_uniqueName());
eval(_64);
return;
}
if(this._owner.ClientSettings.ColumnsReorderMethod!=0){
return;
}
var _65=this._getCellIndexByColumnUniqueNameFromTableRowElement(_62.get_element().parentNode,_60);
var _66=this._getCellIndexByColumnUniqueNameFromTableRowElement(_63.get_element().parentNode,_61);
var _67=new Sys.CancelEventArgs();
_67.get_gridSourceColumn=function(){
return _62;
};
_67.get_gridTargetColumn=function(){
return _63;
};
this._owner.raise_columnSwapping(_67);
if(_67.get_cancel()){
return false;
}
if((this._owner.get_masterTableViewHeader()&&this.get_id()!=this._owner.get_masterTableViewHeader().get_id())&&(this._owner.get_masterTableView()&&this.get_id()!=this._owner.get_masterTableView().get_id())&&(this._owner.get_masterTableViewFooter()&&this.get_id()!=this._owner.get_masterTableViewFooter().get_id())){
this._reorderColumnsInternal(_60,_61);
}
if(this._owner.get_masterTableViewHeader()){
this._owner.get_masterTableViewHeader()._reorderColumnsInternal(_60,_61);
}
if(this._owner.get_masterTableView()){
this._owner.get_masterTableView()._reorderColumnsInternal(_60,_61);
}
if(this._owner.get_masterTableViewFooter()){
this._owner.get_masterTableViewFooter()._reorderColumnsInternal(_60,_61);
}
this.get_columns()[_65]=_63;
this.get_columns()[_66]=_62;
var _67=new Sys.EventArgs();
_67.get_gridSourceColumn=function(){
return _62;
};
_67.get_gridTargetColumn=function(){
return _63;
};
this._owner.raise_columnSwapped(_67);
var _68=this._data.UniqueID+","+_60+","+_61;
Array.add(this._owner._reorderedColumns,_68);
this._owner.updateClientState();
},_reorderColumnsInternal:function(_69,_6a){
for(var i=0;i<this.get_element().rows.length;i++){
var row=this.get_element().rows[i];
if(!row.id&&row.parentNode.tagName.toLowerCase()=="tbody"){
continue;
}
var _6d=this._getCellByColumnUniqueNameFromTableRowElement(row,_69);
var _6e=this._getCellByColumnUniqueNameFromTableRowElement(row,_6a);
if(!_6d||!_6e){
continue;
}
var _6f=_6d.innerHTML;
var _70=_6e.innerHTML;
_6d.innerHTML=_70;
_6e.innerHTML=_6f;
}
},getColumnByUniqueName:function(_71){
for(var i=0;i<this.get_columns().length;i++){
if(this.get_columns()[i].get_element().UniqueName==_71){
return this.get_columns()[i];
}
}
return null;
},getCellByColumnUniqueName:function(_73,_74){
for(var i=0;i<this.get_columns().length;i++){
if(this.get_columns()[i].get_element().UniqueName.toUpperCase()==_74.toUpperCase()){
return _73.get_element().cells[i];
}
}
return null;
},_getCellByColumnUniqueNameFromTableRowElement:function(_76,_77){
for(var i=0;i<this.get_columns().length;i++){
if(this.get_columns()[i].get_element().UniqueName.toUpperCase()==_77.toUpperCase()){
return _76.cells[i];
}
}
return null;
},_getCellIndexByColumnUniqueNameFromTableRowElement:function(_79,_7a){
for(var i=0;i<this.get_columns().length;i++){
if(this.get_columns()[i].get_element().UniqueName.toUpperCase()==_7a.toUpperCase()){
return i;
}
}
return null;
},getColumnUniqueNameByCellIndex:function(_7c,_7d){
for(var i=0;i<_7c.cells.length;i++){
if(_7c.cells[i].UniqueName&&i==_7d){
return _7c.cells[i].UniqueName;
}
}
return null;
},_sliderClientValueChanged:function(_7f,_80){
var _81=$get(_7f);
var _82=$find(_80);
if(_81&&_82){
var _83=_82.get_value();
this._applyPagerLabelText(_81,_83,this.get_pageCount());
}
},_applyPagerLabelText:function(_84,_85,_86){
var _87=this._owner.ClientSettings.ClientMessages.PagerTooltipFormatString;
var _88=/\{0[^\}]*\}/g;
var _89=/\{1[^\}]*\}/g;
var _8a=((_85==0)?1:_85+1);
var _8b=_86;
_87=_87.replace(_88,_8a).replace(_89,_8b);
_84.innerHTML=_87;
},resizeItem:function(_8c,_8d,_8e){
if(!this._owner.ClientSettings.Resizing.AllowRowResize){
return;
}
var _8f=this.get_element().rows[_8c];
if(_8f&&_8f.id!=""&&_8f.id.split("__").length==2){
var _90=new Telerik.Web.UI.GridDataItemCancelEventArgs(_8f,null);
this._owner.raise_rowResizing(_90);
if(_90.get_cancel()){
return false;
}
}
var _91=this.get_element().style.tableLayout;
this.get_element().style.tableLayout="";
var _92=this.get_element().parentNode.parentNode.parentNode.parentNode;
var _93=$find(_92.id);
var _94;
if(_93!=null){
_94=_93.get_element().style.tableLayout;
_93.get_element().style.tableLayout="";
}
if(!_8e){
if(this.get_element()){
if(this.get_element().rows[_8c]){
if(this.get_element().rows[_8c].cells[0]){
this.get_element().rows[_8c].cells[0].style.height=_8d+"px";
this.get_element().rows[_8c].style.height=_8d+"px";
}
}
}
}else{
if(this.get_element()){
if(this.get_element().tBodies[0]){
if(this.get_element().tBodies[0].rows[_8c]){
if(this.get_element().tBodies[0].rows[_8c].cells[0]){
this.get_element().tBodies[0].rows[_8c].cells[0].style.height=_8d+"px";
this.get_element().tBodies[0].rows[_8c].style.height=_8d+"px";
}
}
}
}
}
this.get_element().style.tableLayout=_91;
if(_93!=null){
_93.get_element().style.tableLayout=_94;
}
if(_8f&&_8f.id!=""&&_8f.id.split("__").length==2){
var _95=_8f.id.split("__")[1];
this._owner._resizedItems+=this.get_id()+","+_95+","+_8d+"px"+";";
this._owner.raise_rowResized(new Telerik.Web.UI.GridDataItemEventArgs(_8f,null));
}
this._owner.updateClientState();
},resizeColumn:function(_96,_97){
if(!this._validateResizeColumnParams(_96,_97)){
return;
}
if(typeof (_96)=="string"){
_96=parseInt(_96);
}
var _98=new Telerik.Web.UI.GridColumnCancelEventArgs(this.get_columns()[_96],null);
this._owner.raise_columnResizing(_98);
if(_98.get_cancel()){
return false;
}
if(this==this._owner.get_masterTableView()&&this._owner.get_masterTableViewHeader()){
this._owner.get_masterTableViewHeader().resizeColumn(_96,_97);
}
var _99=this.get_element().clientWidth;
var _9a=this._owner.get_element().clientWidth;
if(this.HeaderRow){
var _9b=this.HeaderRow.cells[_96].scrollWidth-_97;
}
if(window.netscape||$telerik.isOpera){
if(this.HeaderRow){
if(this.HeaderRow.cells[_96]){
this.HeaderRow.cells[_96].style.width=_97+"px";
}
}
if(this==this._owner.get_masterTableViewHeader()){
var _9c=this._owner.get_masterTableView().get_element().tBodies[0].rows[this._owner.ClientSettings.FirstDataRowClientRowIndex];
if(_9c){
if(_9c.cells[_96]){
_9c.cells[_96].style.width=_97+"px";
}
}
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().get_element()){
if(this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0]&&this._owner.get_masterTableViewFooter().get_element().tBodies[0].rows[0].cells[_96]){
if(_97>0){
this._owner.get_masterTableViewFooter.get_element().tBodies[0].rows[0].cells[_96].style.width=_97+"px";
}
}
}
}
}
if(this.ColGroup){
if(this.ColGroup.Cols[_96]){
if(_97>0){
this.ColGroup.Cols[_96].width=_97+"px";
}
}
}
if(this._owner.get_masterTableViewHeader()&&(this.get_id()==this._owner.get_masterTableViewHeader().get_id())){
if(this._owner.get_masterTableView().ColGroup){
if(this._owner.get_masterTableView().ColGroup.Cols[_96]){
if(_97>0){
this._owner.get_masterTableView().ColGroup.Cols[_96].width=_97+"px";
}
}
}
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().ColGroup){
if(this._owner.get_masterTableViewFooter().ColGroup.Cols[_96]){
if(_97>0){
this._owner.get_masterTableViewFooter().ColGroup.Cols[_96].width=_97+"px";
}
}
}
}
if(_97.toString().indexOf("%")==-1){
_97=_97+"px";
}
if(_97.toString().indexOf("px")!=-1){
_97=_97.replace("px","");
}
this._owner._resizedColumns+=this._data.UniqueID+","+this.get_columns()[_96].get_uniqueName()+","+_97+";";
this._owner.updateClientState();
if(this._owner.get_masterTableViewHeader()){
this._owner.ClientSettings.Resizing.ResizeGridOnColumnResize=true;
}
if(this._owner.ClientSettings.Resizing.ResizeGridOnColumnResize){
this._resizeGridOnColumnResize(_96,_9b);
}else{
this._noResizeGridOnColumnResize(_99,_96,_9a);
}
if(this._owner.GroupPanelObject&&this._owner.GroupPanelObject.Items.length>0&&navigator.userAgent.toLowerCase().indexOf("msie")!=-1){
if(this._owner.get_masterTableView()&&this._owner.get_masterTableViewHeader()){
this._owner.get_masterTableView().get_element().style.width=this._owner.get_masterTableViewHeader().get_element().offsetWidth+"px";
}
}
var _98=new Telerik.Web.UI.GridColumnEventArgs(this.get_columns()[_96],null);
this._owner.raise_columnResized(_98);
if(window.netscape){
this.get_element().style.cssText=this.get_element().style.cssText;
}
},_resizeGridOnColumnResize:function(_9d,_9e){
var _9f;
var _a0;
var _a1;
if(this==this._owner.get_masterTableViewHeader()){
for(var i=0;i<this.ColGroup.Cols.length;i++){
if(i!=_9d&&this.ColGroup.Cols[i].width==""){
this.ColGroup.Cols[i].width=this.HeaderRow.cells[i].scrollWidth+"px";
this._owner.get_masterTableView().ColGroup.Cols[i].width=this.ColGroup.Cols[i].width;
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().ColGroup){
this._owner.get_masterTableViewFooter().ColGroup.Cols[i].width=this.ColGroup.Cols[i].width;
}
}
}
this.get_element().style.width=(this.get_element().offsetWidth-_9e)+"px";
this._owner.get_masterTableView.get_element().style.width=this.get_element().style.width;
if(this._owner.get_masterTableViewFooter()&&this._owner.get_masterTableViewFooter().get_element()){
this._owner.get_masterTableViewFooter().get_element().style.width=this.get_element().style.width;
}
var _a3=(this.get_element().scrollWidth>this.get_element().offsetWidth)?this.get_element().scrollWidth:this.get_element().offsetWidth;
var _a4=this._owner._gridDataDiv.offsetWidth;
_9f=_a3+"px";
_a0=_a4+"px";
_a1=this._owner.get_element().offsetHeight+"px";
}else{
if(window.netscape||$telerik.isOpera){
this.get_element().style.width=(this.get_element().offsetWidth-_9e)+"px";
this._owner.get_element().style.width=this.get_element().style.width;
}
var _a3=(this.get_element().scrollWidth>this.get_element().offsetWidth)?this.get_element().scrollWidth:this.get_element().offsetWidth;
_9f=_a3+"px";
_a0=this._owner.get_element().offsetWidth+"px";
_a1=this._owner.get_element().offsetHeight+"px";
}
this._owner._resizedControl+=this._data.UniqueID+","+_9f+","+_a0+","+_a1+";";
this._owner.updateClientState();
},_noResizeGridOnColumnResize:function(_a5,_a6,_a7){
var _a8=(this.get_element().offsetWidth-_a7)/this.ColGroup.Cols.length;
var _a9="";
for(var i=_a6+1;i<this.ColGroup.Cols.length;i++){
var _ab=0;
if(this.ColGroup.Cols[i].width!=""){
_ab=parseInt(this.ColGroup.Cols[i].width)-_a8;
}
if(this.HeaderRow){
_ab=this.HeaderRow.cells[i].scrollWidth-_a8;
}
this.ColGroup.Cols[i].width="";
if(this==this._owner.get_masterTableViewHeader()){
this._owner.get_masterTableView().ColGroup.Cols[i].width="";
}
if(this._owner.get_masterTableViewFooter()){
this._owner.get_masterTableViewFooter().ColGroup.Cols[i].width="";
}
}
if(_a7>0){
this._owner.get_element().style.width=_a7+"px";
}
this.get_element().style.width=_a5+"px";
if(this==this._owner.get_masterTableViewHeader()){
this._owner.get_masterTableView().get_element().style.width=this.get_element().style.width;
}
if(this._owner.get_masterTableViewFooter()){
this._owner.get_masterTableViewFooter.get_element().style.width=this.get_element().style.width;
}
},_validateResizeColumnParams:function(_ac,_ad){
if(isNaN(parseInt(_ac))){
var _ae="Column index must be of type \"Number\"!";
alert(_ae);
return false;
}
if(isNaN(parseInt(_ad))){
var _ae="Column width must be of type \"Number\"!";
alert(_ae);
return false;
}
if(_ac<0){
var _ae="Column index must be non-negative!";
alert(_ae);
return false;
}
if(_ad<0){
var _ae="Column width must be non-negative!";
alert(_ae);
return false;
}
if(_ac>(this.get_columns().length-1)){
var _ae="Column index must be less than columns count!";
alert(_ae);
return false;
}
if(!this._owner.ClientSettings.Resizing.AllowColumnResize){
return false;
}
if(!this.get_columns()){
return false;
}
if(!this.get_columns()[_ac].get_resizable()){
return false;
}
return true;
},get_pageCount:function(){
return this.PageCount;
},get_pageSize:function(){
return this.PageSize;
},set_pageSize:function(_af){
if(this.PageSize!=_af){
this.PageSize=_af;
this.fireCommand("PageSize",_af);
}
},get_currentPageIndex:function(){
return this.CurrentPageIndex;
},set_currentPageIndex:function(_b0){
if(this.CurrentPageIndex!=_b0){
this.CurrentPageIndex=_b0;
this.fireCommand("Page",_b0);
}
},expandItem:function(_b1){
_b1=this._getRowByIndexOrItemIndexHierarchical(_b1);
return this._expandRow(_b1);
},_expandRow:function(_b2){
if(!this._owner.ClientSettings.AllowExpandCollapse){
return false;
}
var _b3=_b2;
var _b4=_b3.id.split("__")[1];
var _b5=_b3.parentNode.rows[_b3.sectionRowIndex+1];
if(_b5&&_b5.style.display=="none"){
var _b6=new Telerik.Web.UI.GridDataItemCancelEventArgs(_b3,null);
_b6.get_nestedViewItem=function(){
return _b5;
};
this._owner.raise_hierarchyExpanding(_b6);
if(_b6.get_cancel()){
return false;
}
var _b7=$find(_b3.id);
if(_b7){
_b7._expanded=false;
}
_b5.style.display=(window.netscape)?"table-row":"";
var _b6=new Telerik.Web.UI.GridDataItemEventArgs(_b3,null);
_b6.get_nestedViewItem=function(){
return _b5;
};
this._owner.raise_hierarchyExpanded(_b6);
}
Array.add(this._owner._expandedItems,_b4);
this._owner.updateClientState();
if(this.get_element().parentNode.parentNode.tagName.toLowerCase()=="tr"){
if(this.get_id()!=this._owner._masterClientID){
var _b8=this.get_element().parentNode.parentNode.parentNode.parentNode;
var _b9=$find(_b8.id);
var _ba=_b8.rows[this.get_element().parentNode.parentNode.rowIndex-1];
if(_ba){
_b9._expandRow(_ba);
}
}
}
return true;
},collapseItem:function(_bb){
_bb=this._getRowByIndexOrItemIndexHierarchical(_bb);
return this._collapseRow(_bb);
},_collapseRow:function(_bc){
if(!this._owner.ClientSettings.AllowExpandCollapse){
return false;
}
var _bd=_bc;
var _be=_bd.id.split("__")[1];
var _bf=_bd.parentNode.rows[_bd.sectionRowIndex+1];
if(_bf&&_bf.style.display!="none"){
var _c0=new Telerik.Web.UI.GridDataItemCancelEventArgs(_bd,null);
_c0.get_nestedViewItem=function(){
return _bf;
};
this._owner.raise_hierarchyCollapsing(_c0);
if(_c0.get_cancel()){
return false;
}
var _c1=$find(_bd.id);
if(_c1){
_c1._expanded=false;
}
_bf.style.display="none";
var _c0=new Telerik.Web.UI.GridDataItemEventArgs(_bd,null);
_c0.get_nestedViewItem=function(){
return _bf;
};
this._owner.raise_hierarchyCollapsed(_c0);
}
Array.add(this._owner._expandedItems,_be);
this._owner.updateClientState();
return true;
},_toggleExpand:function(e){
var _c3=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(!this._owner.ClientSettings.AllowExpandCollapse){
return;
}
var _c4=_c3.parentNode.parentNode;
var _c5=_c4.parentNode.rows[_c4.sectionRowIndex+1];
if(_c5.style.display!="none"){
if(!this._collapseRow(_c4)){
return false;
}
_c3.title=this._owner._hierarchySettings.ExpandTooltip;
if(_c3.src){
var _c6=this.get_columns()[_c3.parentNode.cellIndex];
if(_c6){
_c3.src=_c6._data.ExpandImageUrl;
}
}
}else{
if(!this._expandRow(_c4)){
return false;
}
_c3.title=this._owner._hierarchySettings.CollapseTooltip;
if(_c3.src){
var _c6=this.get_columns()[_c3.parentNode.cellIndex];
if(_c6){
_c3.src=_c6._data.CollapseImageUrl;
}
}
}
},_toggleGroupsExpand:function(_c7,e){
var _c9=_c7;
if(!this._owner.ClientSettings.AllowGroupExpandCollapse){
return;
}
var _ca=_c9.id.split("__")[0];
var _cb=$find(_ca);
var _cc=_c9.id.split("__")[1];
var _cd=_c9.id.split("__")[2];
var _ce=_c9.parentNode.cellIndex;
var _cf=_c9.parentNode.parentNode.sectionRowIndex;
var _d0=_cb.get_element().tBodies[0];
var _d1=(window.netscape)?"table-row":"";
var _d2="";
var _d3=this.get_columns()[_ce];
var _d4=new Sys.CancelEventArgs();
if(_c9.src.indexOf(_d3._data.ExpandImageUrl)==-1){
this._owner.raise_groupCollapsing(_d4);
}else{
this._owner.raise_groupExpanding(_d4);
}
if(_d4.get_cancel()){
return false;
}
if(_d3){
if(_c9.src.indexOf(_d3._data.ExpandImageUrl)!=-1){
_c9.src=_d3._data.CollapseImageUrl;
_c9.title=_cb._owner._groupingSettings.CollapseTooltip;
_d2=_d1;
}else{
_c9.src=_d3._data.ExpandImageUrl;
_c9.title=_cb._owner._groupingSettings.ExpandTooltip;
_d2="none";
}
}
for(var i=_cf+1;i<_d0.rows.length;i++){
var row=_d0.rows[i];
var btn=this._getGroupExpandButton(row);
if(!btn){
row.style.display=_d2;
}else{
var _d8=btn.id.split("__")[2];
if(_d8==_cd||(parseInt(_d8)<parseInt(_cd))){
break;
}else{
if(btn.src!=_c9.src){
this._toggleGroupsExpand(btn,e);
}
row.style.display=_d2;
}
}
}
Array.add(this._owner._expandedGroupItems,_cb._data.UniqueID+"!"+_cc);
this._owner.updateClientState();
var _d4=new Sys.EventArgs();
if(_c9.src.indexOf(_d3._data.ExpandImageUrl)==-1){
this._owner.raise_groupExpanded(_d4);
}else{
this._owner.raise_groupCollapsed(_d4);
}
},_getGroupExpandButton:function(row){
var _da=null;
var _db=row.getElementsByTagName("img");
for(var i=0,l=_db.length;i<l;i++){
var img=_db[i];
if(img.onclick!=null&&img.onclick.toString().indexOf("_toggleGroupsExpand")!=-1){
_da=img;
break;
}
}
return _da;
},editItem:function(_df){
_df=this._getRowByIndexOrItemIndexHierarchical(_df);
var _e0=_df.id.split("__")[1];
this.fireCommand("Edit",_e0);
},updateItem:function(_e1){
_e1=this._getRowByIndexOrItemIndexHierarchical(_e1);
var _e2=_e1.id.split("__")[1];
this.fireCommand("Update",_e2);
},deleteItem:function(_e3){
_e3=this._getRowByIndexOrItemIndexHierarchical(_e3);
var _e4=_e3.id.split("__")[1];
this.fireCommand("Delete",_e4);
},insertItem:function(){
this.fireCommand("PerformInsert","");
},showInsertItem:function(){
this.fireCommand("InitInsert","");
},cancelInsert:function(){
this.fireCommand("CancelInsert","");
},sort:function(_e5){
this.fireCommand("Sort",_e5);
},page:function(_e6){
this.fireCommand("Page",_e6);
},exportToExcel:function(){
this.fireCommand("ExportToExcel","");
},exportToWord:function(){
this.fireCommand("ExportToWord","");
},exportToCsv:function(){
this.fireCommand("ExportToPdf","");
},exportToPdf:function(){
this.fireCommand("ExportToCsv","");
},editSelectedItems:function(){
this.fireCommand("EditSelected","");
},updateEditedItems:function(){
this.fireCommand("UpdateEdited","");
},deleteSelectedItems:function(){
this.fireCommand("DeleteSelected","");
},editAllItems:function(){
this.fireCommand("EditAll","");
},cancelAll:function(){
this.fireCommand("CancelAll","");
},cancelUpdate:function(_e7){
_e7=this._getRowByIndexOrItemIndexHierarchical(_e7);
var _e8=_e7.id.split("__")[1];
this.fireCommand("CancelUpdate",_e8);
},groupColumn:function(_e9){
this.fireCommand("GroupByColumn",_e9);
},ungroupColumn:function(_ea){
this.fireCommand("UnGroupByColumn",_ea);
},filter:function(_eb,_ec,_ed){
this.fireCommand("Filter",_eb+","+_ec+","+_ed);
},_clientDelete:function(e){
var btn=Telerik.Web.UI.Grid.GetCurrentElement(e);
var row=btn.parentNode.parentNode;
var _f1=row.parentNode.parentNode;
var _f2=row.id.split("__")[1];
var _f3=row.cells.length;
var _f4=row.rowIndex;
var _f5=new Telerik.Web.UI.GridDataItemCancelEventArgs(row,e);
this._owner.raise_rowDeleting(_f5);
if(_f5.get_cancel()){
return false;
}
_f1.deleteRow(row.rowIndex);
for(var i=_f4;i<_f1.rows.length;i++){
if(_f1.rows[i].cells.length!=_f3&&_f1.rows[i].style.display!="none"){
_f1.deleteRow(i);
i--;
}else{
break;
}
}
if(_f1.tBodies[0].rows.length==1&&_f1.tBodies[0].rows[0].style.display=="none"){
_f1.tBodies[0].rows[0].style.display="";
}
this._owner.raise_rowDeleted(new Telerik.Web.UI.GridDataItemEventArgs(row,e));
Array.add(this._owner._deletedItems,_f2);
this.deselectItem(row);
var _f7=$find(row.id);
if(_f7){
Array.remove(this._dataItems,_f7);
}
this._owner.updateClientState();
},fireCommand:function(_f8,_f9){
this._executePostBackEvent("FireCommand:"+this._data.UniqueID+";"+_f8+";"+_f9);
},_executePostBackEvent:function(_fa){
var _fb=this._owner.ClientSettings.PostBackFunction;
_fb=_fb.replace("{0}",this._owner.UniqueID);
_fb=_fb.replace("{1}",_fa);
eval(_fb);
}};
Telerik.Web.UI.GridTableView.registerClass("Telerik.Web.UI.GridTableView",Sys.UI.Control);
Telerik.Web.UI.GridFilterFunction=function(){
};
Telerik.Web.UI.GridFilterFunction.prototype={NoFilter:0,Contains:1,DoesNotContain:2,StartsWith:3,EndsWith:4,EqualTo:5,NotEqualTo:6,GreaterThan:7,LessThan:8,GreaterThanOrEqualTo:9,LessThanOrEqualTo:10,Between:11,NotBetween:12,IsEmpty:13,NotIsEmpty:14,IsNull:15,NotIsNull:16,Custom:17};
Telerik.Web.UI.GridFilterFunction.registerEnum("Telerik.Web.UI.GridFilterFunction",false);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridGroupPanel=function(_1){
Telerik.Web.UI.GridGroupPanel.initializeBase(this,[_1]);
this._owner={};
};
Telerik.Web.UI.GridGroupPanel.prototype={initialize:function(){
Telerik.Web.UI.GridGroupPanel.callBaseMethod(this,"initialize");
this.groupPanelItemCounter=0;
this._createGroupPanelItems(this.get_element(),0);
},dispose:function(){
Telerik.Web.UI.GridGroupPanel.callBaseMethod(this,"dispose");
},_createGroupPanelItems:function(_2){
this._itemsInternal=eval(this._owner._groupPanelItems);
this._items=[];
for(var i=0;i<_2.rows.length;i++){
var _4=false;
var _5=_2.rows[i];
for(var j=0;j<_5.cells.length;j++){
var _7=_5.cells[j];
if(_7.tagName.toLowerCase()=="th"){
var _8;
if(this._itemsInternal[this.groupPanelItemCounter]){
_8=this._itemsInternal[this.groupPanelItemCounter].HierarchicalIndex;
}
if(_8){
this._items[this._items.length]=$create(Telerik.Web.UI.GridGroupPanelItem,{_hierarchicalIndex:_8,_owner:this},null,null,_7);
_4=true;
this.groupPanelItemCounter++;
}
}
if((_7.firstChild)&&(_7.firstChild.tagName)){
if(_7.firstChild.tagName.toLowerCase()=="table"){
this._createGroupPanelItems(_7.firstChild);
}
}
}
}
},_isItem:function(_9){
for(var i=0;i<this._items.length;i++){
if(this._items[i].get_element()==_9){
return this._items[i];
}
}
return null;
}};
Telerik.Web.UI.GridGroupPanel.registerClass("Telerik.Web.UI.GridGroupPanel",Sys.UI.Control);
Telerik.Web.UI.GridGroupPanelItem=function(_b){
Telerik.Web.UI.GridGroupPanelItem.initializeBase(this,[_b]);
this._hierarchicalIndex=null;
this._owner={};
};
Telerik.Web.UI.GridGroupPanelItem.prototype={initialize:function(){
Telerik.Web.UI.GridGroupPanelItem.callBaseMethod(this,"initialize");
this.get_element().style.cursor="move";
this._onMouseDownDelegate=Function.createDelegate(this,this._onMouseDownHandler);
$addHandler(this.get_element(),"mousedown",this._onMouseDownDelegate);
},dispose:function(){
$clearHandlers(this.get_element());
Telerik.Web.UI.GridGroupPanelItem.callBaseMethod(this,"dispose");
},_onMouseDownHandler:function(e){
this._onMouseUpDelegate=Function.createDelegate(this,this._onMouseUpHandler);
$addHandler(document,"mouseup",this._onMouseUpDelegate);
this._onMouseMoveDelegate=Function.createDelegate(this,this._onMouseMoveHandler);
$addHandler(document,"mousemove",this._onMouseMoveDelegate);
Telerik.Web.UI.Grid.CreateDragDrop(e,this);
Telerik.Web.UI.Grid.CreateReorderIndicators(this.get_element(),this._owner._owner.Skin);
},_onMouseUpHandler:function(e){
$removeHandler(document,"mouseup",this._onMouseUpDelegate);
$removeHandler(document,"mousemove",this._onMouseMoveDelegate);
this._fireDropAction(e);
Telerik.Web.UI.Grid.DestroyDragDrop();
},_onMouseMoveHandler:function(e){
Telerik.Web.UI.Grid.MoveDragDrop(e,this);
},_fireDropAction:function(e){
var _10=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(_10!=null){
var _11=this._owner._owner.ClientSettings.PostBackFunction;
_11=_11.replace("{0}",this._owner._owner.UniqueID);
if(!Telerik.Web.UI.Grid.IsChildOf(_10,this._owner.get_element())){
_11=_11.replace("{1}","UnGroupByExpression,"+this._hierarchicalIndex);
eval(_11);
}else{
var _12=this._owner._isItem(_10);
if((_10!=this.get_element())&&(_12!=null)&&(_10.parentNode==this.get_element().parentNode)){
_11=_11.replace("{1}","ReorderGroupByExpression,"+this._hierarchicalIndex+","+_12._hierarchicalIndex);
eval(_11);
}
}
}
}};
Telerik.Web.UI.GridGroupPanelItem.registerClass("Telerik.Web.UI.GridGroupPanelItem",Sys.UI.Control);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.GridMenu=function(){
Telerik.Web.UI.GridMenu.initializeBase(this);
this._owner={};
this._items=[];
this._onMenuElementClickDelegate=null;
this._onMenuElementMouseoverDelegate=null;
this._onMenuElementMouseoutDelegate=null;
this._element=null;
this._overRow=null;
};
Telerik.Web.UI.GridMenu.prototype={initialize:function(){
Telerik.Web.UI.GridMenu.callBaseMethod(this,"initialize");
this._element=document.createElement("table");
this.get_element().style.backgroundColor=this.SelectColumnBackColor;
this.get_element().style.border="outset 1px";
this.get_element().style.fontSize="small";
this.get_element().style.textAlign="left";
this.get_element().cellPadding="0";
this.get_element().style.borderCollapse="collapse";
this.get_element().style.zIndex=998;
this.Skin=(this._owner&&this._owner._owner&&this._owner._owner.Skin)||"";
var _1=Telerik.Web.UI.Grid.IsRightToLeft(this._owner.get_element());
if(_1){
this.get_element().style.direction="rtl";
Sys.UI.DomElement.addCssClass(this.get_element(),"RadGridRTL_"+this._owner.Skin);
}
Sys.UI.DomElement.addCssClass(this.get_element(),"GridFilterMenu_"+this._owner.Skin);
Sys.UI.DomElement.addCssClass(this.get_element(),this._owner._filterMenuData.CssClass);
this.createItems(this._owner._filterMenuData.Items);
this.get_element().style.position="absolute";
this.get_element().style.display="none";
document.body.appendChild(this.get_element());
var _2=document.createElement("img");
_2.src=this._owner._filterMenuData.SelectedImageUrl;
_2.src=this._owner._filterMenuData.NotSelectedImageUrl;
this.get_element().style.zIndex=100000;
},dispose:function(){
if(this._items){
this._items=null;
}
if(this._owner){
this._owner=null;
}
if(this._onMenuElementClickDelegate){
$removeHandler(this.get_element(),"click",this._onMenuElementClickDelegate);
this._onMenuElementClickDelegate=null;
}
if(this._onMenuElementMouseoverDelegate){
$removeHandler(this.get_element(),"mouseover",this._onMenuElementMouseoverDelegate);
this._onMenuElementMouseoverDelegate=null;
}
if(this._onMenuElementMouseoutDelegate){
$removeHandler(this.get_element(),"mouseout",this._onMenuElementMouseoutDelegate);
this._onMenuElementMouseoutDelegate=null;
}
if(this.get_element()&&this.get_element().parentNode){
this.get_element().parentNode.removeChild(this.get_element());
}
this._element=null;
Telerik.Web.UI.GridMenu.callBaseMethod(this,"dispose");
},get_element:function(){
return this._element;
},click:function(e){
if(!e.cancelBubble){
this.hide();
}
},keyPress:function(e){
if(e.charCode==27){
this.hide();
}
},createItems:function(_5){
this._onMenuElementClickDelegate=Function.createDelegate(this,this._menuElementClick);
this._onMenuElementMouseoverDelegate=Function.createDelegate(this,this._menuElementMouseover);
this._onMenuElementMouseoutDelegate=Function.createDelegate(this,this._menuElementMouseout);
$addHandler(this.get_element(),"click",this._onMenuElementClickDelegate);
$addHandler(this.get_element(),"mouseover",this._onMenuElementMouseoverDelegate);
$addHandler(this.get_element(),"mouseout",this._onMenuElementMouseoutDelegate);
for(var i=0;i<_5.length;i++){
var tr=this.get_element().insertRow(-1);
tr.insertCell(-1);
var _8=document.createElement("table");
_8.style.width="100%";
_8.cellPadding="0";
_8.cellSpacing="0";
_8.insertRow(-1);
var _9=_8.rows[0].insertCell(-1);
var _a=_8.rows[0].insertCell(-1);
if(this._owner.Skin==""){
_9.style.borderTop="solid 1px "+this._owner._filterMenuData.SelectColumnBackColor;
_9.style.borderLeft="solid 1px "+this._owner._filterMenuData.SelectColumnBackColor;
_9.style.borderRight="none 0px";
_9.style.borderBottom="solid 1px "+this._owner._filterMenuData.SelectColumnBackColor;
_9.style.padding="2px";
_9.style.textAlign="center";
}else{
Sys.UI.DomElement.addCssClass(_9,"GridFilterMenuSelectColumn_"+this._owner.Skin);
}
_9.style.width="16px";
_9.appendChild(document.createElement("img"));
_9.childNodes[0].src=this._owner._filterMenuData.NotSelectedImageUrl;
if(this._owner.Skin==""){
_a.style.borderTop="solid 1px "+this._owner._filterMenuData.TextColumnBackColor;
_a.style.borderLeft="none 0px";
_a.style.borderRight="solid 1px "+this._owner._filterMenuData.TextColumnBackColor;
_a.style.borderBottom="solid 1px "+this._owner._filterMenuData.TextColumnBackColor;
_a.style.padding="2px";
_a.style.backgroundColor=this._owner._filterMenuData.TextColumnBackColor;
_a.style.cursor="pointer";
}else{
Sys.UI.DomElement.addCssClass(_a,"GridFilterMenuTextColumn_"+this._owner.Skin);
}
_a.innerHTML=_5[i].Text;
tr.cells[0].appendChild(_8);
tr.id=_5[i].UID;
var _b={};
_b.id=tr.id;
_b.Value=_5[i].Value;
_b.Image=_9.childNodes[0];
this._items[this._items.length]=_b;
}
},_menuElementClick:function(e){
var _d=this._owner.ClientSettings.PostBackFunction;
var _e=this.get_element().column._owner._data.UniqueID;
var _f=Telerik.Web.UI.Grid.GetFirstParentByTagName(Telerik.Web.UI.Grid.GetCurrentElement(e),"tr");
if(_f){
var _10=Telerik.Web.UI.Grid.GetFirstParentByTagName(_f.parentNode,"tr");
if(_10){
_d=_d.replace("{0}",_10.id).replace("{1}",_e+"!"+this.get_element().column.get_element().UniqueName);
eval(_d);
}
}
},_menuElementMouseover:function(e){
this._removeFilterRowStyles();
var row=Telerik.Web.UI.Grid.GetFirstParentByTagName(Telerik.Web.UI.Grid.GetCurrentElement(e),"tr");
if(row){
var _13=Telerik.Web.UI.Grid.GetFirstParentByTagName(row.parentNode,"tr");
if(_13){
var _14=_13.cells[0].childNodes[0].rows[0].cells[0];
var _15=_13.cells[0].childNodes[0].rows[0].cells[1];
if(this._owner.Skin!=""){
Sys.UI.DomElement.addCssClass(_14,"GridFilterMenuHover_"+this._owner.Skin);
Sys.UI.DomElement.addCssClass(_15,"GridFilterMenuHover_"+this._owner.Skin);
}else{
var _16=this._owner._filterMenuData;
_14.style.backgroundColor=_16.HoverBackColor;
_14.style.borderTop="solid 1px "+_16.HoverBorderColor;
_14.style.borderLeft="solid 1px "+_16.HoverBorderColor;
_14.style.borderBottom="solid 1px "+_16.HoverBorderColor;
_15.style.backgroundColor=_16.HoverBackColor;
_15.style.borderTop="solid 1px "+_16.HoverBorderColor;
_15.style.borderRight="solid 1px "+_16.HoverBorderColor;
_15.style.borderBottom="solid 1px "+_16.HoverBorderColor;
}
this._overRow=_13;
}
}
},_removeFilterRowStyles:function(){
if(this._overRow){
var _17=this._overRow.cells[0].childNodes[0].rows[0].cells[0];
var _18=this._overRow.cells[0].childNodes[0].rows[0].cells[1];
if(this._owner.Skin!=""){
Sys.UI.DomElement.removeCssClass(_17,"GridFilterMenuHover_"+this._owner.Skin);
Sys.UI.DomElement.removeCssClass(_18,"GridFilterMenuHover_"+this._owner.Skin);
}else{
var _19=this._owner._filterMenuData;
_17.style.borderTop="solid 1px "+_19.SelectColumnBackColor;
_17.style.borderLeft="solid 1px "+_19.SelectColumnBackColor;
_17.style.borderBottom="solid 1px "+_19.SelectColumnBackColor;
_17.style.backgroundColor="";
_18.style.borderTop="solid 1px "+_19.TextColumnBackColor;
_18.style.borderRight="solid 1px "+_19.TextColumnBackColor;
_18.style.borderBottom="solid 1px "+_19.TextColumnBackColor;
_18.style.backgroundColor=_19.TextColumnBackColor;
}
}
},_menuElementMouseout:function(e){
this._removeFilterRowStyles();
this._overRow=null;
},show:function(_1b,e){
this.hide();
this.showItems(_1b._data.FilterListOptions,_1b._data.DataTypeName,_1b._data.CurrentFilterFunction,_1b);
e.cancelBubble=true;
this._onClickDelegate=Function.createDelegate(this,this.click);
$addHandler(document,"click",this._onClickDelegate);
this._onKeyPressDelegate=Function.createDelegate(this,this.keyPress);
$addHandler(document,"keypress",this._onKeyPressDelegate);
var _1d=this;
var _1e=new Sys.CancelEventArgs();
_1e.get_menu=function(){
return _1d;
};
_1e.get_tableView=function(){
return _1d._owner;
};
_1e.get_column=function(){
return _1b;
};
_1e.get_domEvent=function(){
return e;
};
this._owner.raise_filterMenuShowing(_1e);
if(_1e.get_cancel()){
return;
}
this.get_element().style.display="";
this.get_element().style.top=e.clientY+document.documentElement.scrollTop+document.body.scrollTop+5+"px";
this.get_element().style.left=e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft+5+"px";
this.get_element().column=_1b;
},hide:function(){
if(this._onClickDelegate){
$removeHandler(document,"click",this._onClickDelegate);
this._onClickDelegate=null;
}
if(this._onKeyPressDelegate){
$removeHandler(document,"keypress",this._onKeyPressDelegate);
this._onKeyPressDelegate=null;
}
if(this.get_element()&&this.get_element().style.display==""){
this.get_element().style.display="none";
}
},showItems:function(_1f,_20,_21,_22){
for(var i=0;i<this._items.length;i++){
var tr=$get(this._items[i].id);
if(_20=="System.Boolean"){
if((this._items[i].Value=="GreaterThan")||(this._items[i].Value=="LessThan")||(this._items[i].Value=="GreaterThanOrEqualTo")||(this._items[i].Value=="LessThanOrEqualTo")||(this._items[i].Value=="Between")||(this._items[i].Value=="NotBetween")){
tr.style.display="none";
continue;
}
}
if(_20!="System.String"){
if((this._items[i].Value=="StartsWith")||(this._items[i].Value=="EndsWith")||(this._items[i].Value=="Contains")||(this._items[i].Value=="DoesNotContain")||(this._items[i].Value=="IsEmpty")||(this._items[i].Value=="NotIsEmpty")){
tr.style.display="none";
continue;
}
}
if(_1f==0){
if(this._items[i].Value=="Custom"){
tr.style.display="none";
continue;
}
}
if((_22._data.ColumnType=="GridDateTimeColumn"||_22._data.ColumnType=="GridMaskedColumn"||_22._data.ColumnType=="GridNumericColumn")&&((this._items[i].Value=="Between")||(this._items[i].Value=="NotBetween"))){
tr.style.display="none";
continue;
}
if(_21==i){
this._items[i].Image.src=this._owner._filterMenuData.SelectedImageUrl;
}else{
this._items[i].Image.src=this._owner._filterMenuData.NotSelectedImageUrl;
}
tr.style.display="";
}
}};
Telerik.Web.UI.GridMenu.registerClass("Telerik.Web.UI.GridMenu",Sys.Component);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadGrid=function(_1){
var _2=["gridCreating","gridCreated","gridDestroying","masterTableViewCreating","masterTableViewCreated","tableCreating","tableCreated","tableDestroying","columnCreating","columnCreated","columnDestroying","columnResizing","columnResized","columnSwapping","columnSwapped","columnMovingToLeft","columnMovedToLeft","columnMovingToRight","columnMovedToRight","columnHiding","columnHidden","columnShowing","columnShown","rowCreating","rowCreated","rowDestroying","rowResizing","rowResized","rowHiding","rowHidden","rowShowing","rowShown","rowClick","rowDblClick","columnClick","columnDblClick","rowSelecting","rowSelected","rowDeselecting","rowDeselected","rowMouseOver","rowMouseOut","columnMouseOver","columnMouseOut","columnContextMenu","rowContextMenu","scroll","keyPress","hierarchyExpanding","hierarchyExpanded","hierarchyCollapsing","hierarchyCollapsed","groupExpanding","groupExpanded","groupCollapsing","groupCollapsed","activeRowChanging","activeRowChanged","rowDeleting","rowDeleted","filterMenuShowing"];
this._initializeEvents(_2);
Telerik.Web.UI.RadGrid.initializeBase(this,[_1]);
this.Skin="Default";
this.ClientID=null;
this.UniqueID=null;
this._activeRowData="";
this._activeRow=null;
this.ShowGroupPanel=false;
this._groupPanel=null;
this._groupPanelClientID="";
this._groupPanelItems="";
this._gridTableViewsData="";
this.ClientSettings={};
this._selection=null;
this._selectedIndexes=[];
this._selectedItemsInternal=[];
this._masterClientID="";
this._scrolling=null;
this._gridItemResizer=null;
this._resizedItems="";
this._resizedColumns="";
this._resizedControl="";
this._hidedItems="";
this._showedItems="";
this._hidedColumns="";
this._showedColumns="";
this._reorderedColumns=[];
this._filterMenuData={};
this._filterMenu=null;
this._detailTables=[];
this._clientKeyValues={};
this._onKeyDownDelegate=null;
this._onMouseMoveDelegate=null;
this._hierarchySettings={};
this._groupingSettings={};
this._currentPageIndex=null;
this._expandedItems=[];
this._expandedGroupItems=[];
this._deletedItems=[];
this._initializeRequestHandler=null;
this._endRequestHandler=null;
this._statusLabelID=null;
this._loadingText=null;
this._readyText=null;
window[this.ClientID]=this;
};
Telerik.Web.UI.RadGrid.prototype={initialize:function(){
Telerik.Web.UI.RadGrid.callBaseMethod(this,"initialize");
if((!this._masterClientID)||(!$get(this._masterClientID))){
return;
}
$addHandlers(this.get_element(),{click:Function.createDelegate(this,this._click)});
$addHandlers(this.get_element(),{dblclick:Function.createDelegate(this,this._dblclick)});
$addHandlers(this.get_element(),{contextmenu:Function.createDelegate(this,this._contextmenu)});
$addHandlers(this.get_element(),{mouseover:Function.createDelegate(this,this._mouseover)});
$addHandlers(this.get_element(),{mouseout:Function.createDelegate(this,this._mouseout)});
this.raise_gridCreating(new Sys.EventArgs());
this.Control=this.get_element();
this.get_element().tabIndex=0;
if(this.ShowGroupPanel){
var _3=$get(this._groupPanelClientID);
if(_3){
this._groupPanel=$create(Telerik.Web.UI.GridGroupPanel,{_owner:this},null,null,$get(this._groupPanelClientID));
}
}
this._gridDataDiv=$get(this.get_id()+"_GridData");
if(this.ClientSettings&&(this.ClientSettings.Selecting&&this.ClientSettings.Selecting.AllowRowSelect)||this.ClientSettings.EnablePostBackOnRowClick){
this._selection=$create(Telerik.Web.UI.GridSelection,{_owner:this},null,null);
}
this._initializeTableViews();
this.GridDataDiv=$get(this.ClientID+"_GridData");
this.GridHeaderDiv=$get(this.ClientID+"_GridHeader");
this.GridFooterDiv=$get(this.ClientID+"_GridFooter");
this.PagerControl=$get(this._masterClientID+"_Pager");
this.TopPagerControl=$get(this._masterClientID+"_TopPager");
if(this._filterMenuData.Items){
this._filterMenu=$create(Telerik.Web.UI.GridMenu,{_owner:this},null,null);
}
if(this.ClientSettings&&this.ClientSettings.Scrolling&&(this.ClientSettings.Scrolling.AllowScroll||(this.ClientSettings.Scrolling.AllowScroll&&(this.ClientSettings.Scrolling.UseStaticHeaders||this.ClientSettings.Scrolling.EnableVirtualScrollPaging)))){
this._scrolling=$create(Telerik.Web.UI.GridScrolling,{_owner:this},null,null);
}
if(this._activeRowData){
var _4=$get(this._activeRowData);
if(_4){
this.set_activeRow(_4);
}
}
this._attachDomEvents();
var _5=Sys.WebForms.PageRequestManager.getInstance();
this._initializeRequestHandler=Function.createDelegate(this,this._initializeRequest);
_5.add_initializeRequest(this._initializeRequestHandler);
this._endRequestHandler=Function.createDelegate(this,this._endRequest);
_5.add_endRequest(this._endRequestHandler);
this.raise_gridCreated(new Sys.EventArgs());
},dispose:function(){
this.raise_gridDestroying(new Sys.EventArgs());
$clearHandlers(this.get_element());
if(this._selection){
this._selection.dispose();
}
if(this._scrolling){
this._scrolling.dispose();
}
if(this._filterMenu){
this._filterMenu.dispose();
}
var _6=Sys.WebForms.PageRequestManager.getInstance();
if(this._initializeRequestHandler){
_6.remove_initializeRequest(this._initializeRequestHandler);
}
if(this._endRequestHandler){
_6.remove_endRequest(this._endRequestHandler);
}
this.Control=null;
this.GridDataDiv=null;
this.GridHeaderDiv=null;
this.GridFooterDiv=null;
this.PagerControl=null;
this.TopPagerControl=null;
this.MasterTableView=null;
this.MasterTableViewHeader=null;
this.MasterTableViewFooter=null;
Telerik.Web.UI.RadGrid.callBaseMethod(this,"dispose");
},_endRequest:function(_7,_8){
var _9=$get(this._statusLabelID);
if(_9){
_9.innerHTML=this._readyText;
}
},_initializeRequest:function(_a,_b){
if(Telerik.Web.UI.Grid.IsChildOf(_b.get_postBackElement(),this.get_element())||_b.get_postBackElement()==this.get_element()){
var _c=$get(this._statusLabelID);
if(_c){
_c.innerHTML=this._loadingText;
}
this._isAjaxRequest=true;
}
},get_selectedItemsInternal:function(){
return this._selectedItemsInternal;
},set_selectedItemsInternal:function(_d){
if(this._selectedItemsInternal!=_d){
this._selectedItemsInternal=_d;
}
},get_AllowMultiRowSelection:function(){
return this.AllowMultiRowSelection;
},set_AllowMultiRowSelection:function(_e){
if(this.AllowMultiRowSelection!=_e){
this.AllowMultiRowSelection=_e;
}
},get_masterTableView:function(){
return $find(this._masterClientID);
},get_masterTableViewHeader:function(){
return $find(this._masterClientID+"_Header");
},get_masterTableViewFooter:function(){
return $find(this._masterClientID+"_Footer");
},get_selectedItems:function(){
var _f=[];
for(var i=0;i<this._selectedItemsInternal.length;i++){
Array.add(_f,$find(this._selectedItemsInternal[i].id));
}
return _f;
},clearSelectedItems:function(){
if(this._selectedItemsInternal.length>0){
var i=this._selectedItemsInternal.length-1;
while(i>=0){
var _12=$find(this._selectedItemsInternal[i].id);
if(_12){
_12.set_selected(false);
}else{
this._owner._selection._selectRowInternal($get(this._selectedItemsInternal[i].id),{"ctrlKey":false},true,true,true);
}
i--;
}
}
},_initializeTableViews:function(){
var _13=eval(this._gridTableViewsData);
for(var i=0;i<_13.length;i++){
var _15=_13[i];
if(!_15.ClientID){
continue;
}
if($find(_15.ClientID)!=null){
continue;
}
if($get(_15.ClientID)==null){
continue;
}
if(this._masterClientID!=_15.ClientID){
this.raise_tableCreating(new Sys.EventArgs());
}
var _16=$create(Telerik.Web.UI.GridTableView,{_owner:this,_data:_15},null,null,$get(_15.ClientID));
if(this._masterClientID!=_15.ClientID){
var _17=new Sys.EventArgs();
_17.get_tableView=function(){
return _16;
};
Array.add(this._detailTables,_16);
this.raise_tableCreated(_17);
}
if(this._masterClientID==_15.ClientID){
this.raise_masterTableViewCreating(new Sys.EventArgs());
this.MasterTableView=_16;
this.raise_masterTableViewCreated(new Sys.EventArgs());
if($get(_15.ClientID+"_Header")){
this.MasterTableViewHeader=$create(Telerik.Web.UI.GridTableView,{_owner:this,_data:_15},null,null,$get(_15.ClientID+"_Header"));
this.MasterTableView._columnsInternal=this.MasterTableViewHeader._columnsInternal;
}
if($get(_15.ClientID+"_Footer")){
this.MasterTableViewFooter=$create(Telerik.Web.UI.GridTableView,{_owner:this,_data:_15},null,null,$get(_15.ClientID+"_Footer"));
}
}
}
},get_detailTables:function(){
return this._detailTables;
},_initializeEvents:function(_18){
if(_18){
var _19=this;
for(var i=0,l=_18.length;i<l;i++){
var _1c=_18[i];
this["add_"+_1c]=function(_1d){
return function(_1e){
this.get_events().addHandler(_1d,_1e);
};
}(_1c);
this["remove_"+_1c]=function(_1f){
return function(_20){
this.get_events().removeHandler(_1f,_20);
};
}(_1c);
this["raise_"+_1c]=function(_21){
return function(_22){
this.raiseEvent(_21,_22);
};
}(_1c);
}
}
},_selectAllRows:function(_23,_24,e){
var el=(e.srcElement)?e.srcElement:e.target;
var _27=$find(Telerik.Web.UI.Grid._uniqueIDToClientID(_23));
var _28=_27.get_element();
var _29=(el.checked)?true:false;
for(var i=0,_2b=_28.rows.length;i<_2b;i++){
var row=_28.rows[i];
if(!row.id){
continue;
}
this._selection._selectRowInternal(row,e,true,false,false,_29);
}
if(_28.rows.length>0){
this.updateClientState();
}
},_showFilterMenu:function(_2d,_2e,e){
var _30=$find(Telerik.Web.UI.Grid._uniqueIDToClientID(_2d));
var _31=_30.getColumnByUniqueName(_2e);
if(this._filterMenu){
this._filterMenu.show(_31,e);
}
},saveClientState:function(){
var _32={};
_32["selectedIndexes"]=this._selectedIndexes;
_32["reorderedColumns"]=this._reorderedColumns;
_32["expandedItems"]=this._expandedItems;
_32["expandedGroupItems"]=this._expandedGroupItems;
_32["deletedItems"]=this._deletedItems;
if(this._resizedColumns!=""){
_32["resizedColumns"]=this._resizedColumns;
}
if(this._resizedControl!=""){
_32["resizedControl"]=this._resizedControl;
}
if(this._resizedItems!=""){
_32["resizedItems"]=this._resizedItems;
}
if(this._hidedItems!=""){
_32["hidedItems"]=this._hidedItems;
}
if(this._showedItems!=""){
_32["showedItems"]=this._showedItems;
}
if(this._hidedColumns!=""){
_32["hidedColumns"]=this._hidedColumns;
}
if(this._showedColumns!=""){
_32["showedColumns"]=this._showedColumns;
}
if(this._activeRow){
_32["activeRowData"]=this._activeRow.id;
}
if(this._gridDataDiv){
_32["scrolledPosition"]=this._gridDataDiv.scrollTop+","+this._gridDataDiv.scrollLeft;
}
return Sys.Serialization.JavaScriptSerializer.serialize(_32);
},_attachDomEvents:function(){
this._onKeyDownDelegate=Function.createDelegate(this,this._onKeyDownHandler);
this._onKeyPressDelegate=Function.createDelegate(this,this._onKeyPressHandler);
this._onMouseMoveDelegate=Function.createDelegate(this,this._onMouseMoveHandler);
$addHandler(this.get_element(),"keydown",this._onKeyDownDelegate);
$addHandler(this.get_element(),"keypress",this._onKeyPressDelegate);
$addHandler(this.get_element(),"mousemove",this._onMouseMoveDelegate);
},_onMouseMoveHandler:function(e){
var _34=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(this.ClientSettings&&this.ClientSettings.Resizing.AllowRowResize){
this._gridItemResizer=new Telerik.Web.UI.GridItemResizer(this);
this._gridItemResizer._detectResizeCursorsOnItems(e,_34);
this._gridItemResizer._moveItemResizer(e);
}
},_onKeyDownHandler:function(e){
var _36=(e.keyCode>=37&&e.keyCode<=40);
if(Sys.Browser.agent==Sys.Browser.InternetExplorer&&_36){
this._raiseKeyPressInternal(e);
}
},_onKeyPressHandler:function(e){
this._raiseKeyPressInternal(e);
},_raiseKeyPressInternal:function(e){
var _39=new Telerik.Web.UI.GridKeyPressEventArgs(e);
this.raise_keyPress(_39);
if(_39.get_cancel()){
return;
}
this._handleGridKeyboardAction(e);
},_handleGridKeyboardAction:function(e){
var _3b=e.keyCode||e.charCode;
if(this.ClientSettings&&this.ClientSettings.AllowKeyboardNavigation){
var _3c=(_3b==38||_3b==40);
var _3d=(_3b==32&&this.ClientSettings.Selecting&&this.ClientSettings.Selecting.AllowRowSelect);
var _3e=(_3b==13);
var _3f=(_3b==37||_3b==39);
if(_3c){
this._handleActiveRowNavigation(e);
}else{
if(_3f){
this._handleActiveRowExpandCollapse(e);
}else{
if(_3d){
this._handleActiveRowSelection(e);
}else{
if(_3e){
this._handleActiveRowEdit(e);
}
}
}
}
}
},_handleActiveRowNavigation:function(e){
var _41=e.keyCode||e.charCode;
var _42=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(_42!=null&&_42.tagName&&(_42.tagName.toLowerCase()=="input"||_42.tagName.toLowerCase()=="textarea")){
return;
}
var _43=null;
if(this._activeRow){
_43=this._getNextActiveRow(this._activeRow,_41);
}else{
_43=this.get_masterTableView()._getFirstDataRow();
}
if(!_43){
return;
}
this._setActiveRow(_43,e);
e.preventDefault();
},_setActiveRow:function(row,_45){
if(row&&this.ClientSettings&&this.ClientSettings.AllowKeyboardNavigation){
var _46=new Telerik.Web.UI.GridDataItemCancelEventArgs(this._activeRow,_45);
this.raise_activeRowChanging(_46);
if(_46.get_cancel()){
return;
}
if(this._activeRow){
var _47=$find(this._activeRow.id.split("__")[0]);
Telerik.Web.UI.Grid.ClearItemStyle(this._activeRow,_47._data._renderActiveItemStyle,_47._data._renderActiveItemStyleClass);
}
this._activeRow=row;
var _48=$find(row.id.split("__")[0]);
Telerik.Web.UI.Grid.SetItemStyle(row,_48._data._renderActiveItemStyle,_48._data._renderActiveItemStyleClass);
Telerik.Web.UI.Grid.ScrollIntoView(row);
this.updateClientState();
this.raise_activeRowChanged(new Telerik.Web.UI.GridDataItemEventArgs(this._activeRow,_45));
}
},set_activeRow:function(row){
this._setActiveRow(row,null);
},_handleActiveRowExpandCollapse:function(e){
var _4b=e.keyCode||e.charCode;
var _4c=$find(this._activeRow.id.split("__")[0]);
if(_4b==37){
var _4d=_4c._getNextNestedDataRow(this._activeRow);
if(_4d&&_4d.parentNode.style.display!="none"){
_4c.collapseItem(this._activeRow);
}
}else{
if(_4b==39){
var _4e=Telerik.Web.UI.Grid.GetNodeNextSiblingByTagName(this._activeRow,"tr");
if(_4e&&_4e.style.display=="none"){
_4c.expandItem(this._activeRow);
}
}
}
},_handleActiveRowSelection:function(e){
if(this._activeRow){
this._selection._selectRowInternal(this._activeRow,{"ctrlKey":this.get_AllowMultiRowSelection()},false,true,true);
e.preventDefault();
}
},_handleActiveRowEdit:function(e){
if(this._activeRow){
e.preventDefault();
var _51=$find(this._activeRow.id.split("__")[0]);
if(_51){
_51.editItem(this._activeRow);
}
}
},_getNextActiveRow:function(_52,_53){
var _54=null;
var _55=null;
var _56=$find(_52.id.split("__")[0]);
var _57=(this.get_masterTableView().get_id()==_56.get_id());
if(_53==38){
var _58=_56._getPreviousDataRow(_52);
if(_58){
var _59=Telerik.Web.UI.Grid.GetNodePreviousSiblingByTagName(_52,"tr");
if(_59&&_59.style.display!="none"){
_55=Telerik.Web.UI.Grid.GetLastNestedTableView(_58);
if(_55){
_54=_55._getLastDataRow();
}
}
}
if(!_54){
_54=_56._getPreviousDataRow(_52);
if(!_54&&!_57){
var _5a=Telerik.Web.UI.Grid.GetNodePreviousSiblingByTagName(_56.get_element(),"table");
if(_5a){
siblingTableView=$find(_5a.id.split("__")[0]);
if(siblingTableView){
_54=siblingTableView._getLastDataRow();
}
}
}
if(!_54&&!_57){
_54=_56.get_parentRow();
}
}
}else{
if(_53==40){
var _5b=Telerik.Web.UI.Grid.GetNodeNextSiblingByTagName(_52,"tr");
if(_5b&&_5b.style.display!="none"){
_55=Telerik.Web.UI.Grid.GetNestedTableView(_52);
if(_55){
_54=_55._getNextNestedDataRow(_52);
}
}
if(!_54){
_54=_56._getNextDataRow(_52);
if(!_54&&!_57){
var _5a=Telerik.Web.UI.Grid.GetNodeNextSiblingByTagName(_56.get_element(),"table");
if(_5a){
siblingTableView=$find(_5a.id.split("__")[0]);
if(siblingTableView){
_54=siblingTableView._getFirstDataRow();
}
}
}
if(!_54&&!_57){
var _5c=_56.get_parentView();
if(_5c){
var _5d=_56.get_parentRow();
_54=_5c._getNextDataRow(_5d);
}
}
}
}
}
return _54;
},_click:function(e){
if(!this._canRiseRowEvent(e)){
return;
}
var row=Telerik.Web.UI.Grid.GetFirstParentByTagName(Telerik.Web.UI.Grid.GetCurrentElement(e),"tr");
if(row&&row.id!=""&&row.id.split("__").length==2){
this.raise_rowClick(new Telerik.Web.UI.GridDataItemEventArgs(row,e));
}
},_dblclick:function(e){
if(!this._canRiseRowEvent(e)){
return;
}
var row=Telerik.Web.UI.Grid.GetFirstParentByTagName(Telerik.Web.UI.Grid.GetCurrentElement(e),"tr");
if(row&&row.id!=""){
this.raise_rowDblClick(new Telerik.Web.UI.GridDataItemEventArgs(row,e));
}
},_contextmenu:function(e){
if(!this._canRiseRowEvent(e)){
return;
}
var row=Telerik.Web.UI.Grid.GetFirstParentByTagName(Telerik.Web.UI.Grid.GetCurrentElement(e),"tr");
if(row&&row.id!=""&&row.id.split("__").length==2){
this.raise_rowContextMenu(new Telerik.Web.UI.GridDataItemEventArgs(row,e));
}
if(this.get_events().getHandler("rowContextMenu")){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue=false;
return false;
}
}
},_mouseover:function(e){
if(this._overRow){
this.raise_rowMouseOut(new Telerik.Web.UI.GridDataItemEventArgs(this._overRow,e));
if(this.Skin!=""&&this.ClientSettings.EnableRowHoverStyle){
Sys.UI.DomElement.removeCssClass(this._overRow,"GridRowOver_"+this.Skin);
}
}
var row=Telerik.Web.UI.Grid.GetFirstParentByTagName(Telerik.Web.UI.Grid.GetCurrentElement(e),"tr");
if(row&&row.id!=""&&row.id.split("__").length==2){
this.raise_rowMouseOver(new Telerik.Web.UI.GridDataItemEventArgs(row,e));
if(this.Skin!=""&&this.ClientSettings.EnableRowHoverStyle){
Sys.UI.DomElement.addCssClass(row,"GridRowOver_"+this.Skin);
}
this._overRow=row;
}
},_mouseout:function(e){
if(this._overRow){
this.raise_rowMouseOut(new Telerik.Web.UI.GridDataItemEventArgs(this._overRow,e));
if(this.Skin!=""&&this.ClientSettings.EnableRowHoverStyle){
Sys.UI.DomElement.removeCssClass(this._overRow,"GridRowOver_"+this.Skin);
}
}
this._overRow=null;
},_canRiseRowEvent:function(e){
var el=Telerik.Web.UI.Grid.GetCurrentElement(e);
if(el.tagName.toLowerCase()=="input"||el.tagName.toLowerCase()=="select"||el.tagName.toLowerCase()=="option"||el.tagName.toLowerCase()=="button"||el.tagName.toLowerCase()=="a"||el.tagName.toLowerCase()=="textarea"||el.tagName.toLowerCase()=="img"){
return false;
}
if(this.get_masterTableView()&&!Telerik.Web.UI.Grid.IsChildOf(el,this.get_masterTableView().get_element())){
return false;
}
return true;
}};
Telerik.Web.UI.RadGrid.registerClass("Telerik.Web.UI.RadGrid",Telerik.Web.UI.RadWebControl);
Telerik.Web.UI.GridKeyPressEventArgs=function(_69){
Telerik.Web.UI.GridKeyPressEventArgs.initializeBase(this);
this._keyCode=_69.keyCode||_69.charCode;
this._isShiftPressed=_69.shiftKey;
this._isCtrlPressed=_69.ctrlKey;
this._isAltPressed=_69.altKey;
this._domEvent=_69;
};
Telerik.Web.UI.GridKeyPressEventArgs.prototype={get_keyCode:function(){
return this._keyCode;
},get_isShiftPressed:function(){
return this._isShiftPressed;
},get_isCtrlPressed:function(){
return this._isCtrlPressed;
},get_isAltPressed:function(){
return this._isAltPressed;
},get_domEvent:function(){
return this._domEvent;
}};
Telerik.Web.UI.GridKeyPressEventArgs.registerClass("Telerik.Web.UI.GridKeyPressEventArgs",Sys.CancelEventArgs);;
/* END Telerik.Web.UI.Grid.RadGridScripts.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._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;
};
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);
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 _12=Sys.WebForms.PageRequestManager.getInstance();
_12.remove_initializeRequest(this._initializeRequestHandler);
Telerik.Web.UI.RadAjaxControl.callBaseMethod(this,"dispose");
},get_enableAJAX:function(){
return this._enableAJAX;
},set_enableAJAX:function(_13){
if(this._enableAJAX!=_13){
this._enableAJAX=_13;
}
},get_enableHistory:function(){
return this._enableHistory;
},set_enableHistory:function(_14){
if(this._enableHistory!=_14){
this._enableHistory=_14;
}
},get_clientEvents:function(){
return this._clientEvents;
},set_clientEvents:function(_15){
if(this._clientEvents!=_15){
this._clientEvents=_15;
}
},get_links:function(){
return this._links;
},set_links:function(_16){
if(this._links!=_16){
this._links=_16;
if(this._links.length>0){
this.updateHeadLinks();
}
}
},get_styles:function(){
return this._styles;
},set_styles:function(_17){
if(this._styles!=_17){
this._styles=_17;
if(this._styles.length>0){
this.updateHeadStyles();
}
}
},get_uniqueID:function(){
return this._uniqueID;
},set_uniqueID:function(_18){
if(this._uniqueID!=_18){
this._uniqueID=_18;
window[Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID)]=this;
}
},isChildOf:function(_19,_1a){
while(_19!=null){
if(_19==_1a){
return true;
}
_19=_19.parentNode;
}
return false;
},initializeRequest:function(_1b,_1c){
if(this.Type=="Telerik.Web.UI.RadAjaxManager"){
if(_1c.get_postBackElement()!=this.get_element()){
if(!this._initiators[_1c.get_postBackElement().id]){
var _1d=_1c.get_postBackElement().parentNode;
var _1e=false;
while(_1d!=null){
if(_1d.id&&this._initiators[_1d.id]){
_1e=true;
break;
}
_1d=_1d.parentNode;
}
if(!_1e){
this._isRequestInProgress=true;
this._attachRequestHandlers(_1b,_1c,false);
return false;
}
}
}
}
if(this.Type=="Telerik.Web.UI.RadAjaxPanel"){
var _1f=this._getParentAjaxPanel(_1c.get_postBackElement());
if(_1f&&_1f.get_id()!=this.get_id()){
return false;
}
if(!this.isChildOf(_1c.get_postBackElement(),this.get_element())){
return false;
}
}
if(this._enableHistory){
if(Telerik.Web.UI.RadAjaxControl.History[""]==null){
Telerik.Web.UI.RadAjaxControl.HandleHistory(_1b._uniqueIDToClientID(this._uniqueID),"");
}
Telerik.Web.UI.RadAjaxControl.HandleHistory(_1b._uniqueIDToClientID(this._uniqueID),_1c.get_request().get_body());
}
this.__EVENTTARGET=_1c.get_postBackElement().id;
if(_1c.get_postBackElement().name){
this.__EVENTTARGET=_1c.get_postBackElement().name;
}
if(_1b._form["__EVENTTARGET"]&&_1b._form["__EVENTTARGET"].value){
this.__EVENTTARGET=_1b._form["__EVENTTARGET"].value;
}
this.__EVENTARGUMENT=_1b._form["__EVENTARGUMENT"].value;
var evt=new Telerik.Web.UI.RadAjaxRequestEventArgs(this.__EVENTTARGET,_1b._form["__EVENTARGUMENT"].value,this._enableAJAX);
var _21=this.fireEvent(this,"OnRequestStart",[evt]);
if(evt.get_cancel()||(typeof (_21)!="undefined"&&!_21)){
_1c.set_cancel(true);
return;
}
if(!evt._enableAjax||!evt.EnableAjax){
_1c.set_cancel(true);
_1b._form["__EVENTTARGET"].value=this.__EVENTTARGET;
_1b._form["__EVENTARGUMENT"].value=this.__EVENTARGUMENT;
_1b._form.submit();
return;
}
this._isRequestInProgress=true;
this._attachRequestHandlers(_1b,_1c,true);
},_getParentAjaxPanel:function(_22){
var _23=null;
while(_22!=null){
if(typeof (_22.id)!="undefined"&&$find(_22.id)&&$find(_22.id).Type=="Telerik.Web.UI.RadAjaxPanel"){
_23=$find(_22.id);
break;
}
_22=_22.parentNode;
}
return _23;
},_attachRequestHandlers:function(_24,_25,_26){
this._endRequestHandler=Function.createDelegate(this,this.endRequest);
_24.add_endRequest(this._endRequestHandler);
this._onFormSubmitCompletedHandler=Function.createDelegate(this,this._onFormSubmitCompleted);
_25.get_request().add_completed(this._onFormSubmitCompletedHandler);
_25.get_request()._get_eventHandlerList()._list.completed.reverse();
if(_26){
var _27=_25.get_request().get_body();
var _28=(_27.lastIndexOf("&")!=_27.length-1)?"&":"";
_27+=_28+"RadAJAXControlID="+_24._uniqueIDToClientID(this._uniqueID);
_25.get_request().set_body(_27);
}
},getResponseItems:function(_29,_2a,_2b){
var _2c=Sys.WebForms.PageRequestManager.getInstance();
var _2d=_29;
var _2e,len,_30,id,_32;
var _33=0;
var _34=null;
var _35="|";
var _36=[];
while(_33<_2d.length){
_2e=_2d.indexOf(_35,_33);
if(_2e===-1){
_34=_2c._findText(_2d,_33);
break;
}
len=parseInt(_2d.substring(_33,_2e),10);
if((len%1)!==0){
_34=_2c._findText(_2d,_33);
break;
}
_33=_2e+1;
_2e=_2d.indexOf(_35,_33);
if(_2e===-1){
_34=_2c._findText(_2d,_33);
break;
}
_30=_2d.substring(_33,_2e);
_33=_2e+1;
_2e=_2d.indexOf(_35,_33);
if(_2e===-1){
_34=_2c._findText(_2d,_33);
break;
}
id=_2d.substring(_33,_2e);
_33=_2e+1;
if((_33+len)>=_2d.length){
_34=_2c._findText(_2d,_2d.length);
break;
}
if(typeof (_2c._decodeString)!="undefined"){
_32=_2c._decodeString(_2d.substr(_33,len));
}else{
_32=_2d.substr(_33,len);
}
_33+=len;
if(_2d.charAt(_33)!==_35){
_34=_2c._findText(_2d,_33);
break;
}
_33++;
if(_2a!=undefined&&_2a!=_30){
continue;
}
if(_2b!=undefined&&_2b!=id){
continue;
}
Array.add(_36,{type:_30,id:id,content:_32});
}
return _36;
},pageLoading:function(_37,_38){
},pageLoaded:function(_39,_3a){
},endRequest:function(_3b,_3c){
_3b.remove_endRequest(this._endRequestHandler);
for(var i=0,_3e=Telerik.Web.UI.RadAjaxControl.panelsToClear.length;i<_3e;i++){
var _3f=Telerik.Web.UI.RadAjaxControl.panelsToClear[i];
var _40=document.getElementById(_3f.id);
var _41=$get(_3f.id.replace("Panel",""));
if(!_41){
continue;
}
var _42=_40.parentNode;
var _43=_40.nextSibling||Telerik.Web.UI.RadAjaxControl.GetNodeNextSibling(_40);
Telerik.Web.UI.RadAjaxControl.InsertAtLocation(_41,_42,_43);
_40.parentNode.removeChild(_40);
}
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]);
}
},hideLoadingPanels:function(){
for(var i=0;i<this._loadingPanelsToHide.length;i++){
var _46=this._loadingPanelsToHide[i].Panel;
var _47=this._loadingPanelsToHide[i].ControlID;
if(_46!=null){
_46.hide(_47);
Array.remove(this._loadingPanelsToHide,this._loadingPanelsToHide[i]);
i--;
}
}
},fireEvent:function(_48,_49,_4a){
var _4b=true;
if(typeof (_48[_49])=="string"){
_4b=eval(_48[_49]);
}else{
if(typeof (_48[_49])=="function"){
if(_4a){
if(typeof (_4a.unshift)!="undefined"){
_4a.unshift(_48);
_4b=_48[_49].apply(_48,_4a);
}else{
_4b=_48[_49].apply(_48,[_4a]);
}
}else{
_4b=_48[_49]();
}
}
}
if(typeof (_4b)!="boolean"){
return true;
}else{
return _4b;
}
},updateHeadLinks:function(){
var _4c=this.getHeadElement();
var _4d=_4c.getElementsByTagName("link");
var _4e=[];
for(var j=0,_50=_4d.length;j<_50;j++){
var _51=_4d[j].getAttribute("href");
_4e.push(_51);
}
for(var i=0,_53=this._links.length;i<_53;i++){
var _54=this._links[i];
_54=_54.replace(/&amp;amp;t/g,"&t");
_54=_54.replace(/&amp;t/g,"&t");
var _55=Array.contains(_4e,_54);
if(!_55){
if(_54==""){
continue;
}
var _56=document.createElement("link");
_56.setAttribute("rel","stylesheet");
_56.setAttribute("href",_54);
_4c.appendChild(_56);
}
}
},updateHeadStyles:function(){
if(document.createStyleSheet!=null){
for(var i=0,_58=this._styles.length;i<_58;i++){
var _59=this._styles[i];
var _5a=null;
try{
_5a=document.createStyleSheet();
}
catch(e){
}
if(_5a==null){
_5a=document.createElement("style");
}
_5a.cssText=_59;
}
}else{
var _5b=null;
if(document.styleSheets.length==0){
css=document.createElement("style");
css.media="all";
css.type="text/css";
var _5c=this.getHeadElement();
_5c.appendChild(css);
_5b=css;
}
if(document.styleSheets[0]){
_5b=document.styleSheets[0];
}
for(var i=0;i<this._styles.length;i++){
var _59=this._styles[i];
var _5d=_59.split("}");
for(var j=0;j<_5d.length;j++){
if(_5d[j].replace(/\s*/,"")==""){
continue;
}
_5b.insertRule(_5d[j]+"}",j+1);
}
}
}
},getHeadElement:function(){
var _5f=document.getElementsByTagName("head");
if(_5f.length>0){
return _5f[0];
}
var _60=document.createElement("head");
document.documentElement.appendChild(_60);
return _60;
},ajaxRequest:function(_61){
__doPostBack(this._uniqueID,_61);
},ajaxRequestWithTarget:function(_62,_63){
__doPostBack(_62,_63);
},__doPostBack:function(_64,_65){
var _66=Sys.WebForms.PageRequestManager.getInstance()._form;
if(_66!=null){
if(_66["__EVENTTARGET"]!=null){
_66["__EVENTTARGET"].value=_64;
}
if(_66["__EVENTARGUMENT"]!=null){
_66["__EVENTARGUMENT"].value=_65;
}
_66.submit();
}
}};
$telerik.makeCompatible(Telerik.Web.UI.RadAjaxControl);
Telerik.Web.UI.RadAjaxControl.registerClass("Telerik.Web.UI.RadAjaxControl",Sys.UI.Control);
Telerik.Web.UI.RadAjaxRequestEventArgs=function(_67,_68,_69){
Telerik.Web.UI.RadAjaxRequestEventArgs.initializeBase(this);
this._enableAjax=_69;
this._eventTarget=_67;
this._eventArgument=_68;
this._postbackControlClientID=_67.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(_6a){
if(this._enableAjax!=_6a){
this._enableAjax=_6a;
}
},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(_6b,_6c){
if(window.netscape){
return;
}
var _6d=$get(_6b+"_History");
if(_6d==null){
_6d=document.createElement("iframe");
_6d.id=_6b+"_History";
_6d.name=_6b+"_History";
_6d.style.width="0px";
_6d.style.height="0px";
_6d.src="javascript:''";
_6d.style.visibility="hidden";
var _6e=function(e){
if(!Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory){
Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory=true;
return;
}
var _70="";
var _71="";
var _72=_6d.contentWindow.document.getElementById("__DATA");
if(!_72){
return;
}
var _73=_72.value.split("&");
for(var i=0,_75=_73.length;i<_75;i++){
var _76=_73[i].split("=");
if(_76[0]=="__EVENTTARGET"){
_70=_76[1];
}
if(_76[0]=="__EVENTARGUMENT"){
_71=_76[1];
}
var _77=document.getElementById(Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(_76[0]));
if(_77!=null){
Telerik.Web.UI.RadAjaxControl.RestorePostData(_77,Telerik.Web.UI.RadAjaxControl.DecodePostData(_76[1]));
}
}
if(_70!=""){
var _77=document.getElementById(Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(_70));
if(_77!=null){
__doPostBack(_70,Telerik.Web.UI.RadAjaxControl.DecodePostData(_71),_6b);
}
}
};
$addHandler(_6d,"load",_6e);
document.body.appendChild(_6d);
}
if(Telerik.Web.UI.RadAjaxControl.History[_6c]==null){
Telerik.Web.UI.RadAjaxControl.History[_6c]=true;
Telerik.Web.UI.RadAjaxControl.AddHistoryEntry(_6d,_6c);
}
};
Telerik.Web.UI.RadAjaxControl.AddHistoryEntry=function(_78,_79){
Telerik.Web.UI.RadAjaxControl.ShouldLoadHistory=false;
_78.contentWindow.document.open();
_78.contentWindow.document.write("<input id='__DATA' name='__DATA' type='hidden' value='"+_79+"' />");
_78.contentWindow.document.close();
if(window.netscape){
_78.contentWindow.document.location.hash="#'"+new Date()+"'";
}
};
Telerik.Web.UI.RadAjaxControl.DecodePostData=function(_7a){
if(decodeURIComponent){
return decodeURIComponent(_7a);
}else{
return unescape(_7a);
}
};
Telerik.Web.UI.RadAjaxControl.RestorePostData=function(_7b,_7c){
if(_7b.tagName.toLowerCase()=="select"){
for(var i=0,_7e=_7b.options.length;i<_7e;i++){
if(_7c.indexOf(_7b.options[i].value)!=-1){
_7b.options[i].selected=true;
}
}
}
if(_7b.tagName.toLowerCase()=="input"&&(_7b.type.toLowerCase()=="text"||_7b.type.toLowerCase()=="hidden")){
_7b.value=_7c;
}
if(_7b.tagName.toLowerCase()=="input"&&(_7b.type.toLowerCase()=="checkbox"||_7b.type.toLowerCase()=="radio")){
_7b.checked=_7c;
}
};
Telerik.Web.UI.RadAjaxControl.GetNodeNextSibling=function(_7f){
if(_7f!=null&&_7f.nextSibling!=null){
return _7f.nextSibling;
}
return null;
};
Telerik.Web.UI.RadAjaxControl.InsertAtLocation=function(_80,_81,_82){
if(_82!=null){
return _81.insertBefore(_80,_82);
}else{
return _81.appendChild(_80);
}
};
Telerik.Web.UI.RadAjaxControl.FocusElement=function(_83){
var _84=document.getElementById(_83);
if(_84){
var _85=_84.tagName;
var _86=_84.type;
if(_85.toLowerCase()=="input"&&(_86.toLowerCase()=="checkbox"||_86.toLowerCase()=="radio")){
window.setTimeout(function(){
try{
_84.focus();
}
catch(e){
}
},500);
}else{
try{
Telerik.Web.UI.RadAjaxControl.SetSelectionFocus(_84);
_84.focus();
}
catch(e){
}
}
}
};
Telerik.Web.UI.RadAjaxControl.SetSelectionFocus=function(_87){
if(_87.createTextRange==null){
return;
}
var _88=null;
try{
_88=_87.createTextRange();
}
catch(e){
}
if(_88!=null){
_88.moveStart("textedit",_88.text.length);
_88.collapse(false);
_88.select();
}
};
Telerik.Web.UI.RadAjaxControl.panelsToClear=[];
Telerik.Web.UI.RadAjaxControl.UpdateElement=function(id,_8a){
var _8b=$get(id);
if(_8b!=null){
_8b.innerHTML=_8a;
var _8c=Telerik.Web.UI.RadAjaxControl.GetScriptsSrc(_8a);
for(var i=0,_8e=_8c.length;i<_8e;i++){
Telerik.Web.UI.RadAjaxControl.IncludeClientScript(_8c[i]);
}
_8c=Telerik.Web.UI.RadAjaxControl.GetTags(_8a,"script");
for(var i=0,_8e=_8c.length;i<_8e;i++){
var _8f=_8c[i];
if(_8f.inner!=""){
Telerik.Web.UI.RadAjaxControl.EvalScriptCode(_8f.inner);
}
}
var _90=document.getElementsByTagName("head")[0];
var _91=Telerik.Web.UI.RadAjaxControl.GetLinkHrefs(_8a);
for(var i=0,_8e=_91.length;i<_8e;i++){
var _92=_91[i];
var _93=document.createElement("link");
_93.setAttribute("rel","stylesheet");
_93.setAttribute("href",_92);
_90.appendChild(_93);
}
}
};
Telerik.Web.UI.RadAjaxControl.IncludeClientScript=function(src){
var _95=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
_95.open("GET",src,false);
_95.send(null);
if(_95.status==200){
var _96=_95.responseText;
Telerik.Web.UI.RadAjaxControl.EvalScriptCode(_96);
}
};
Telerik.Web.UI.RadAjaxControl.EvalScriptCode=function(_97){
if(Telerik.Web.UI.RadAjaxControl.IsSafari()){
_97=_97.replace(/^\s*<!--((.|\n)*)-->\s*$/mi,"$1");
}
var _98=document.createElement("script");
_98.setAttribute("type","text/javascript");
if(Telerik.Web.UI.RadAjaxControl.IsSafari()){
_98.appendChild(document.createTextNode(_97));
}else{
_98.text=_97;
}
var _99=document.getElementsByTagName("head")[0];
_99.appendChild(_98);
if(Telerik.Web.UI.RadAjaxControl.IsSafari()){
_98.innerHTML="";
}else{
_98.parentNode.removeChild(_98);
}
};
Telerik.Web.UI.RadAjaxControl.GetTags=function(_9a,_9b){
var _9c=[];
var _9d=_9a;
while(1){
var _9e=Telerik.Web.UI.RadAjaxControl.GetTag(_9d,_9b);
if(_9e.index==-1){
break;
}
_9c[_9c.length]=_9e;
var _9f=_9e.index+_9e.outer.length;
_9d=_9d.substring(_9f,_9d.length);
}
return _9c;
};
Telerik.Web.UI.RadAjaxControl.GetTag=function(_a0,_a1,_a2){
if(typeof (_a2)=="undefined"){
_a2="";
}
var _a3=new RegExp("<"+_a1+"[^>]*>((.|\n|\r)*?)</"+_a1+">","i");
var _a4=_a0.match(_a3);
if(_a4!=null&&_a4.length>=2){
return {outer:_a4[0],inner:_a4[1],index:_a4.index};
}else{
return {outer:_a2,inner:_a2,index:-1};
}
};
Telerik.Web.UI.RadAjaxControl.GetLinkHrefs=function(_a5){
var _a6=_a5;
var _a7=[];
while(1){
var _a8=_a6.match(/<link[^>]*href=('|")?([^'"]*)('|")?([^>]*)>.*?(<\/link>)?/i);
if(_a8==null||_a8.length<3){
break;
}
var _a9=_a8[2];
_a7[_a7.length]=_a9;
var _aa=_a8.index+_a9.length;
_a6=_a6.substring(_aa,_a6.length);
}
return _a7;
};
Telerik.Web.UI.RadAjaxControl.GetScriptsSrc=function(_ab){
var _ac=_ab;
var _ad=[];
while(1){
var _ae=_ac.match(/<script[^>]*src=('|")?([^'"]*)('|")?([^>]*)>.*?(<\/script>)?/i);
if(_ae==null||_ae.length<3){
break;
}
var _af=_ae[2];
_ad[_ad.length]=_af;
var _b0=_ae.index+_af.length;
_ac=_ac.substring(_b0,_ac.length);
}
return _ad;
};
Telerik.Web.UI.RadAjaxControl.IsSafari=function(){
return (navigator.userAgent.match(/safari/i)!=null);
};;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxLoadingPanel=function(_1){
Telerik.Web.UI.RadAjaxLoadingPanel.initializeBase(this,[_1]);
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(_2){
if(this._zIndex!=_2){
this._zIndex=_2;
}
},get_uniqueID:function(){
return this._uniqueID;
},set_uniqueID:function(_3){
if(this._uniqueID!=_3){
this._uniqueID=_3;
window[Sys.WebForms.PageRequestManager.getInstance()._uniqueIDToClientID(this._uniqueID)]=this;
}
},get_initialDelayTime:function(){
return this._initialDelayTime;
},set_initialDelayTime:function(_4){
if(this._initialDelayTime!=_4){
this._initialDelayTime=_4;
}
},get_isSticky:function(){
return this._isSticky;
},set_isSticky:function(_5){
if(this._isSticky!=_5){
this._isSticky=_5;
}
},get_minDisplayTime:function(){
return this._minDisplayTime;
},set_minDisplayTime:function(_6){
if(this._minDisplayTime!=_6){
this._minDisplayTime=_6;
}
},get_transparency:function(){
return this._transparency;
},set_transparency:function(_7){
if(this._transparency!=_7){
this._transparency=_7;
}
},show:function(_8){
var _9=$get(_8+"_wrapper");
if((typeof (_9)=="undefined")||(!_9)){
_9=$get(_8);
}
var _a=this.get_element();
if(!(_9&&_a)){
return false;
}
var _b=this._initialDelayTime;
var _c=this;
var _d=(!this._isSticky)?this.cloneLoadingPanel(_a,_8):_a;
if(_b){
window.setTimeout(function(){
try{
if(_c._manager!=null&&_c._manager._isRequestInProgress){
_c.displayLoadingElement(_d,_9);
}
}
catch(e){
}
},_b);
}else{
this.displayLoadingElement(_d,_9);
}
return true;
},hide:function(_e){
var _f=$get(_e);
if(this.get_element()==null){
return;
}
var _10=(!this._isSticky)?$get(this.get_element().id+_e):this.get_element();
var now=new Date();
if(_10==null){
return;
}
var _12=now-_10._startDisplayTime;
var _13=this._minDisplayTime;
if(this._isSticky){
if(_13>_12){
window.setTimeout(function(){
_10.style.display="none";
if(typeof (_f)!="undefined"&&(_f!=null)){
_f.style.visibility="visible";
}
},_13);
}else{
_10.style.display="none";
if(typeof (_f)!="undefined"&&(_f!=null)){
_f.style.visibility="visible";
}
}
}else{
if(_13>_12){
window.setTimeout(function(){
_10.parentNode.removeChild(_10);
if(typeof (_f)!="undefined"&&(_f!=null)){
_f.style.visibility="visible";
}
},_13);
}else{
_10.parentNode.removeChild(_10);
if(typeof (_f)!="undefined"&&(_f!=null)){
_f.style.visibility="visible";
}
}
}
},cloneLoadingPanel:function(_14,_15){
var _16=_14.cloneNode(false);
_16.innerHTML=_14.innerHTML;
_16.id=_14.id+_15;
document.body.insertBefore(_16,document.body.firstChild);
return _16;
},displayLoadingElement:function(_17,_18){
if(!this._isSticky){
var _19=this.getElementRectangle(_18);
_17.style.position="absolute";
_17.style.width=_19.width+"px";
_17.style.height=_19.height+"px";
_17.style.left=_19.left+"px";
_17.style.top=_19.top+"px";
_17.style.textAlign="center";
_17.style.zIndex=this._zIndex;
var _1a=100-parseInt(this._transparency);
if(parseInt(this._transparency)>0){
if(_17.style&&_17.style.MozOpacity!=null){
_17.style.MozOpacity=_1a/100;
}else{
if(_17.style&&_17.style.opacity!=null){
_17.style.opacity=_1a/100;
}else{
if(_17.style&&_17.style.filter!=null){
_17.style.filter="alpha(opacity="+_1a+");";
}
}
}
}else{
_18.style.visibility="hidden";
}
}
_17.style.display="";
_17._startDisplayTime=new Date();
},getElementRectangle:function(_1b){
if(!_1b){
_1b=this;
}
var _1c=$telerik.getLocation(_1b);
var _1d=_1c.x;
var top=_1c.y;
var _1f=_1b.offsetWidth;
var _20=_1b.offsetHeight;
return {"left":_1d,"top":top,"width":_1f,"height":_20};
}};
$telerik.makeCompatible(Telerik.Web.UI.RadAjaxLoadingPanel);
Telerik.Web.UI.RadAjaxLoadingPanel.registerClass("Telerik.Web.UI.RadAjaxLoadingPanel",Sys.UI.Control);;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxManager=function(_1){
Telerik.Web.UI.RadAjaxManager.initializeBase(this,[_1]);
this._ajaxSettings=[];
this._defaultLoadingPanelID="";
this._initiators={};
this._loadingPanelsToHide=[];
this._isRequestInProgress=false;
this.Type="Telerik.Web.UI.RadAjaxManager";
this.AjaxSettings=this._ajaxSettings;
this.DefaultLoadingPanelID=this._defaultLoadingPanelID;
};
Telerik.Web.UI.RadAjaxManager.prototype={initialize:function(){
Telerik.Web.UI.RadAjaxManager.callBaseMethod(this,"initialize");
var _2=this.get_element();
if(_2!=null&&_2.parentNode!=null&&_2.parentNode.id==_2.id+"SU"){
_2.parentNode.style.display="none";
}
var _3=this.get_ajaxSettings();
for(var i=0,_5=_3.length;i<_5;i++){
this._initiators[_3[i].InitControlID]=_3[i].UpdatedControls;
}
},dispose:function(){
Telerik.Web.UI.RadAjaxManager.callBaseMethod(this,"dispose");
},get_ajaxSettings:function(){
return this._ajaxSettings;
},set_ajaxSettings:function(_6){
if(this._ajaxSettings!=_6){
this._ajaxSettings=_6;
}
},get_defaultLoadingPanelID:function(){
return this._defaultLoadingPanelID;
},set_defaultLoadingPanelID:function(_7){
if(this._defaultLoadingPanelID!=_7){
this._defaultLoadingPanelID=_7;
}
},showLoadingPanels:function(id,_9){
for(var i=0,_b=_9.length;i<_b;i++){
if(_9[i].InitControlID==id){
var _c=_9[i];
for(var j=0,_e=_c.UpdatedControls.length;j<_e;j++){
var _f=_c.UpdatedControls[j];
var _10=_f.PanelID;
if(_10==""){
_10=this._defaultLoadingPanelID;
}
var _11=_f.ControlID;
if(_11==this._uniqueID){
continue;
}
var _12=$find(_10);
if(_12!=null){
_12._manager=this;
if(_12.show(_11)){
var obj={"Panel":_12,"ControlID":_11};
if(!Array.contains(this._loadingPanelsToHide,obj)){
this._loadingPanelsToHide[this._loadingPanelsToHide.length]=obj;
}
}
}
}
}
}
},initializeRequest:function(_14,_15){
Telerik.Web.UI.RadAjaxManager.callBaseMethod(this,"initializeRequest",[_14,_15]);
if(!this._isRequestInProgress){
return;
}
var _16=_15.get_postBackElement();
if(_16!=null){
if(this._initiators[_16.id]){
this.showLoadingPanels(_16.id,this.get_ajaxSettings());
}else{
var _17=_16.parentNode;
var _18=false;
while(_17!=null){
if(_17.id&&this._initiators[_17.id]){
_18=true;
break;
}
_17=_17.parentNode;
}
if(_18){
this.showLoadingPanels(_17.id,this.get_ajaxSettings());
}
}
}
},updateElement:function(id,_1a){
Telerik.Web.UI.RadAjaxControl.UpdateElement(id,_1a);
}};
$telerik.makeCompatible(Telerik.Web.UI.RadAjaxManager);
Telerik.Web.UI.RadAjaxManager.registerClass("Telerik.Web.UI.RadAjaxManager",Telerik.Web.UI.RadAjaxControl);
Telerik.Web.UI.RadAjaxManager.UpdateElement=function(id,_1c){
Telerik.Web.UI.RadAjaxControl.UpdateElement(id,_1c);
};;Type.registerNamespace("Telerik.Web.UI");
Telerik.Web.UI.RadAjaxPanel=function(_1){
Telerik.Web.UI.RadAjaxPanel.initializeBase(this,[_1]);
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(_2,_3){
Telerik.Web.UI.RadAjaxPanel.callBaseMethod(this,"initializeRequest",[_2,_3]);
if(!this._isRequestInProgress){
return;
}
var _4=_3.get_postBackElement();
if(_4!=null&&(_4==this.get_element()||this.isChildOf(_4,this.get_element()))){
var _5=$find(this._loadingPanelID);
if(_5!=null){
_5._manager=this;
if(_5.show(this.get_element().id)){
var _6={"Panel":_5,"ControlID":this.get_element().id};
if(!Array.contains(this._loadingPanelsToHide,_6)){
this._loadingPanelsToHide[this._loadingPanelsToHide.length]=_6;
}
}
}
}
},get_loadingPanelID:function(){
return this._loadingPanelID;
},set_loadingPanelID:function(_7){
if(this._loadingPanelID!=_7){
this._loadingPanelID=_7;
}
}};
Telerik.Web.UI.RadAjaxPanel.registerClass("Telerik.Web.UI.RadAjaxPanel",Telerik.Web.UI.RadAjaxControl);;
/* END Telerik.Web.UI.Ajax.Ajax.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.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.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 */
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
(function() {var fn = function() {$get('ctl00_smManager_HiddenField').value += ';;Telerik.Web.UI, Version=2007.3.1425.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4:en-US:48a19736-c022-4131-bf7d-fcbe4aa553d6:393f5085:c6335cbd:34f9d57d;AjaxControlToolkit, Version=3.5.11119.36536, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:29c6eb0b-82ca-4df1-bd9d-fab42f1b5ef0:e2e86ef9;AjaxControlToolkit, Version=3.5.11119.36536, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:29c6eb0b-82ca-4df1-bd9d-fab42f1b5ef0:1df13a87;AjaxControlToolkit, Version=3.5.11119.36536, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e:en-US:29c6eb0b-82ca-4df1-bd9d-fab42f1b5ef0:3858419b';Sys.Application.remove_load(fn);};Sys.Application.add_load(fn);})();
