// (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. Type.registerNamespace("Telerik.Web"); Telerik.Web.PositioningMode=function(){ throw Error.invalidOperation(); }; Telerik.Web.PositioningMode.prototype={Absolute:0,Center:1,BottomLeft:2,BottomRight:3,TopLeft:4,TopRight:5}; Telerik.Web.PositioningMode.registerEnum("Telerik.Web.PositioningMode"); Telerik.Web.PopupBehavior=function(_1){ Telerik.Web.PopupBehavior.initializeBase(this,[_1]); this._x=0; this._y=0; this._positioningMode=Telerik.Web.PositioningMode.Absolute; this._parentElement=null; this._parentElementID=null; this._moveHandler=null; this._firstPopup=true; this._originalParent=null; }; Telerik.Web.PopupBehavior.prototype={get_parentElement:function(){ if(!this._parentElement&&this._parentElementID){ this.set_parentElement($get(this._parentElementID)); Sys.Debug.assert(this._parentElement!=null,String.format(Telerik.Web.Resources.PopupExtender_NoParentElement,this._parentElementID)); } return this._parentElement; },set_parentElement:function(_2){ this._parentElement=_2; this.raisePropertyChanged("parentElement"); },get_parentElementID:function(){ if(this._parentElement){ return this._parentElement.id; } return this._parentElementID; },set_parentElementID:function(_3){ this._parentElementID=_3; if(this.get_isInitialized()){ this.set_parentElement($get(_3)); } },get_positioningMode:function(){ return this._positioningMode; },set_positioningMode:function(_4){ this._positioningMode=_4; this.raisePropertyChanged("positioningMode"); },get_x:function(){ return this._x; },set_x:function(_5){ if(_5!=this._x){ this._x=_5; if(Telerik.Web.DomElement.getVisible(this.get_element())){ this.show(); } this.raisePropertyChanged("x"); } },get_y:function(){ return this._y; },set_y:function(_6){ if(_6!=this._y){ this._y=_6; if(Telerik.Web.DomElement.getVisible(this.get_element())){ this.show(); } this.raisePropertyChanged("y"); } },hide:function(){ var _7=this.get_element(); Telerik.Web.DomElement.setVisible(_7,false); if(this._moveHandler){ Sys.UI.DomEvent.removeHandler(_7,"move",this._moveHandler); this._moveHandler=null; } if(_7.originalWidth){ _7.style.width=_7.originalWidth+"px"; _7.originalWidth=null; } if(Sys.Browser.agent===Sys.Browser.InternetExplorer){ var _8=_7._hideWindowedElementsIFrame; if(_8){ _8.style.display="none"; } } },show:function(){ var _9=this.get_element(); Telerik.Web.DomElement.setVisible(_9,true); var _a=_9.offsetParent||document.documentElement; var _b; var _c; if(this._parentElement){ _c=Telerik.Web.DomElement.getBounds(this._parentElement); var _d=TelerikCommonScripts.getLocation(_a); _b={x:_c.x-_d.x,y:_c.y-_d.y}; }else{ _c=Telerik.Web.DomElement.getBounds(_a); _b={x:0,y:0}; } var _e=_9.offsetWidth-(_9.clientLeft?_9.clientLeft*2:0); var _f=_9.offsetHeight-(_9.clientTop?_9.clientTop*2:0); var _10; switch(this._positioningMode){ case Telerik.Web.PositioningMode.Center: _10={x:Math.round(_c.width/2-_e/2),y:Math.round(_c.height/2-_f/2)}; break; case Telerik.Web.PositioningMode.BottomLeft: _10={x:0,y:_c.height}; break; case Telerik.Web.PositioningMode.BottomRight: _10={x:_c.width-_e,y:_c.height}; break; case Telerik.Web.PositioningMode.TopLeft: _10={x:0,y:-_9.offsetHeight}; break; case Telerik.Web.PositioningMode.TopRight: _10={x:_c.width-_e,y:-_9.offsetHeight}; break; default: _10={x:0,y:0}; } _10.x+=this._x+_b.x; _10.y+=this._y+_b.y; TelerikCommonScripts.setLocation(_9,_10); if(this._firstPopup){ _9.style.width=_e+"px"; } this._firstPopup=false; var _11=Telerik.Web.DomElement.getBounds(_9); var _12=false; var _13=self.innerWidth?self.innerWidth:document.documentElement.clientWidth; if(!_13){ _13=document.body.clientWidth; } if(_11.x+_11.width>_13-5){ _10.x-=_11.x+_11.width-_13+5; _12=true; } if(_11.x<0){ _10.x-=_11.x; _12=true; } if(_11.y<0){ _10.y-=_11.y; _12=true; } var _14=this._getViewportBounds(); if(_14.height-5<_11.y+_11.height-_14.scrollTop){ if(_14.height-10-_11.height>0){ _10.y=_14.height-10-_11.height+_14.scrollTop; _12=true; } } if(_12){ TelerikCommonScripts.setLocation(_9,_10); _11=Telerik.Web.DomElement.getBounds(_9); } _9.zIndex=1000; if((Sys.Browser.agent===Sys.Browser.InternetExplorer)&&(Sys.Browser.version<7)){ var _15=_9._hideWindowedElementsIFrame; if(!_15){ _15=document.createElement("iframe"); _15.src="javascript:'';"; _15.style.position="absolute"; _15.style.display="none"; _15.scrolling="no"; _15.frameBorder="0"; _15.tabIndex="-1"; _15.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"; _9.parentNode.insertBefore(_15,_9); _9._hideWindowedElementsIFrame=_15; this._moveHandler=Function.createDelegate(this,this._onMove); Sys.UI.DomEvent.addHandler(_9,"move",this._moveHandler); } TelerikCommonScripts.setBounds(_15,_11); if(Telerik.Web.Browser.renderMode!=Telerik.Web.Browser.StandardsMode){ return; } _15.style.display=_9.style.display; if(_9.currentStyle&&_9.currentStyle.zIndex){ _15.style.zIndex=_9.currentStyle.zIndex; }else{ if(_9.style.zIndex){ _15.style.zIndex=_9.style.zIndex; } } } },_getViewportBounds:function(){ var _16=TelerikCommonScripts.getClientBounds(); var _17=document.documentElement.scrollLeft||document.body.scrollLeft; var _18=document.documentElement.scrollTop||document.body.scrollTop; _16.scrollLeft=_17; _16.scrollTop=_18; return _16; },initialize:function(){ Telerik.Web.PopupBehavior.callBaseMethod(this,"initialize"); this.hide(); this.get_element().style.position="absolute"; },dispose:function(){ var elt=this.get_element(); if(elt){ if(Telerik.Web.DomElement.getVisible(elt)){ this.hide(); } if(this._originalParent){ elt.parentNode.removeChild(elt); this._originalParent.appendChild(elt); this._originalParent=null; } } this._parentElement=null; Telerik.Web.PopupBehavior.callBaseMethod(this,"dispose"); },_onMove:function(){ var elt=this.get_element(); if(elt._hideWindowedElementsIFrame){ elt.parentNode.insertBefore(elt._hideWindowedElementsIFrame,elt); elt._hideWindowedElementsIFrame.style.top=elt.style.top; elt._hideWindowedElementsIFrame.style.left=elt.style.left; } }}; Telerik.Web.PopupBehavior.registerClass("Telerik.Web.PopupBehavior",Telerik.Web.BehaviorBase); if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();