﻿// (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){
if(_14.height-10-_11.height>0){
_10.y=_14.height-10-_11.height;
_12=true;
}
}
if(_12){
TelerikCommonScripts.setLocation(_9,_10);
}
_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:'<html></html>';";
_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);
_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();