
Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.PopupBehavior=function(element){
AjaxControlToolkit.PopupBehavior.initializeBase(this,[element]);this._x=0;this._y=0;this._positioningMode=AjaxControlToolkit.PositioningMode.Absolute;this._parentElement=null;this._parentElementID=null;this._moveHandler=null;this._firstPopup=true;this._originalParent=null;this._visible=false;this._onShow=null;this._onShowEndedHandler=null;this._onHide=null;this._onHideEndedHandler=null;}
AjaxControlToolkit.PopupBehavior.prototype={
initialize:function(){
AjaxControlToolkit.PopupBehavior.callBaseMethod(this,'initialize');this._hidePopup();this.get_element().style.position="absolute";this._onShowEndedHandler=Function.createDelegate(this,this._onShowEnded);this._onHideEndedHandler=Function.createDelegate(this,this._onHideEnded);},
dispose:function(){
var element=this.get_element();if(element){
if(this._visible){
this.hide();}
if(this._originalParent){
element.parentNode.removeChild(element);this._originalParent.appendChild(element);this._originalParent=null;}
element._hideWindowedElementsIFrame=null;}
this._parentElement=null;if(this._onShow&&this._onShow.get_animation()&&this._onShowEndedHandler){
this._onShow.get_animation().remove_ended(this._onShowEndedHandler);}
this._onShowEndedHandler=null;this._onShow=null;if(this._onHide&&this._onHide.get_animation()&&this._onHideEndedHandler){
this._onHide.get_animation().remove_ended(this._onHideEndedHandler);}
this._onHideEndedHandler=null;this._onHide=null;AjaxControlToolkit.PopupBehavior.callBaseMethod(this,'dispose');},
show:function(){
if(this._visible){
return;}
var eventArgs=new Sys.CancelEventArgs();this.raiseShowing(eventArgs);if(eventArgs.get_cancel()){
return;}
this._visible=true;var element=this.get_element();$common.setVisible(element,true);this.setupPopup();if(this._onShow){
$common.setVisible(element,false);this.onShow();}else{
this.raiseShown(Sys.EventArgs.Empty);}},
hide:function(){
if(!this._visible){
return;}
var eventArgs=new Sys.CancelEventArgs();this.raiseHiding(eventArgs);if(eventArgs.get_cancel()){
return;}
this._visible=false;if(this._onHide){
this.onHide();}else{
this._hidePopup();this._hideCleanup();}},
getBounds:function(){
var element=this.get_element();var offsetParent=element.offsetParent||document.documentElement;var diff;var parentBounds;if(this._parentElement){
parentBounds=$common.getBounds(this._parentElement);var offsetParentLocation=$common.getLocation(offsetParent);diff={x:parentBounds.x - offsetParentLocation.x,y:parentBounds.y - offsetParentLocation.y};}else{
parentBounds=$common.getBounds(offsetParent);diff={x:0,y:0};}
var width=element.offsetWidth -(element.clientLeft?element.clientLeft*2:0);var height=element.offsetHeight -(element.clientTop?element.clientTop*2:0);var position;switch(this._positioningMode){
case AjaxControlToolkit.PositioningMode.Center:
position={
x:Math.round(parentBounds.width/2 - width/2),
y:Math.round(parentBounds.height/2 - height/2)};break;case AjaxControlToolkit.PositioningMode.BottomLeft:
position={
x:0,
y:parentBounds.height};break;case AjaxControlToolkit.PositioningMode.BottomRight:
position={
x:parentBounds.width - width,
y:parentBounds.height};break;case AjaxControlToolkit.PositioningMode.TopLeft:
position={
x:0,
y:-element.offsetHeight};break;case AjaxControlToolkit.PositioningMode.TopRight:
position={
x:parentBounds.width - width,
y:-element.offsetHeight};break;default:
position={x:0,y:0};}
position.x +=this._x + diff.x;position.y +=this._y + diff.y;return new Sys.UI.Bounds(position.x,position.y,width,height);},
adjustPopupPosition:function(bounds){
var element=this.get_element();if(!bounds){
bounds=this.getBounds();}
if(this._firstPopup){
element.style.width=bounds.width +"px";this._firstPopup=false;}
var newPosition=$common.getBounds(element);var updateNeeded=false;var documentWidth=self.innerWidth?self.innerWidth:document.documentElement.clientWidth;if(!documentWidth){
documentWidth=document.body.clientWidth;}
if(newPosition.x + newPosition.width>documentWidth - 5){
bounds.x -=newPosition.x + newPosition.width - documentWidth + 5;updateNeeded=true;}
if(newPosition.x<0){
bounds.x -=newPosition.x;updateNeeded=true;}
if(newPosition.y<0){
bounds.y -=newPosition.y;updateNeeded=true;}
if(updateNeeded){
$common.setLocation(element,bounds);}},
addBackgroundIFrame:function(){
var element=this.get_element();if((Sys.Browser.agent===Sys.Browser.InternetExplorer)&&(Sys.Browser.version<7)){
var childFrame=element._hideWindowedElementsIFrame;if(!childFrame){
childFrame=document.createElement("iframe");childFrame.src="javascript:'<html></html>';";childFrame.style.position="absolute";childFrame.style.display="none";childFrame.scrolling="no";childFrame.frameBorder="0";childFrame.tabIndex="-1";childFrame.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";element.parentNode.insertBefore(childFrame,element);element._hideWindowedElementsIFrame=childFrame;this._moveHandler=Function.createDelegate(this,this._onMove);Sys.UI.DomEvent.addHandler(element,"move",this._moveHandler);}
$common.setBounds(childFrame,$common.getBounds(element));childFrame.style.display=element.style.display;if(element.currentStyle&&element.currentStyle.zIndex){
childFrame.style.zIndex=element.currentStyle.zIndex;}else if(element.style.zIndex){
childFrame.style.zIndex=element.style.zIndex;}}},
setupPopup:function(){
var element=this.get_element();var bounds=this.getBounds();$common.setLocation(element,bounds);this.adjustPopupPosition(bounds);element.zIndex=1000;this.addBackgroundIFrame();},
_hidePopup:function(){
var element=this.get_element();$common.setVisible(element,false);if(element.originalWidth){
element.style.width=element.originalWidth +"px";element.originalWidth=null;}},
_hideCleanup:function(){
var element=this.get_element();if(this._moveHandler){
Sys.UI.DomEvent.removeHandler(element,"move",this._moveHandler);this._moveHandler=null;}
if(Sys.Browser.agent===Sys.Browser.InternetExplorer){
var childFrame=element._hideWindowedElementsIFrame;if(childFrame){
childFrame.style.display="none";}}
this.raiseHidden(Sys.EventArgs.Empty);},
_onMove:function(){
var element=this.get_element();if(element._hideWindowedElementsIFrame){
element.parentNode.insertBefore(element._hideWindowedElementsIFrame,element);element._hideWindowedElementsIFrame.style.top=element.style.top;element._hideWindowedElementsIFrame.style.left=element.style.left;}},
get_onShow:function(){
return this._onShow?this._onShow.get_json():null;},
set_onShow:function(value){
if(!this._onShow){
this._onShow=new AjaxControlToolkit.Animation.GenericAnimationBehavior(this.get_element());this._onShow.initialize();}
this._onShow.set_json(value);var animation=this._onShow.get_animation();if(animation){
animation.add_ended(this._onShowEndedHandler);}
this.raisePropertyChanged('onShow');},
get_onShowBehavior:function(){
return this._onShow;},
onShow:function(){
if(this._onShow){
if(this._onHide){
this._onHide.quit();}
this._onShow.play();}},
_onShowEnded:function(){
this.adjustPopupPosition();this.addBackgroundIFrame();this.raiseShown(Sys.EventArgs.Empty);},
get_onHide:function(){
return this._onHide?this._onHide.get_json():null;},
set_onHide:function(value){
if(!this._onHide){
this._onHide=new AjaxControlToolkit.Animation.GenericAnimationBehavior(this.get_element());this._onHide.initialize();}
this._onHide.set_json(value);var animation=this._onHide.get_animation();if(animation){
animation.add_ended(this._onHideEndedHandler);}
this.raisePropertyChanged('onHide');},
get_onHideBehavior:function(){
return this._onHide;},
onHide:function(){
if(this._onHide){
if(this._onShow){
this._onShow.quit();}
this._onHide.play();}},
_onHideEnded:function(){
this._hideCleanup();},
get_parentElement:function(){
if(!this._parentElement&&this._parentElementID){
this.set_parentElement($get(this._parentElementID));Sys.Debug.assert(this._parentElement!=null,String.format(AjaxControlToolkit.Resources.PopupExtender_NoParentElement,this._parentElementID));}
return this._parentElement;},
set_parentElement:function(element){
this._parentElement=element;this.raisePropertyChanged('parentElement');},
get_parentElementID:function(){
if(this._parentElement){
return this._parentElement.id}
return this._parentElementID;},
set_parentElementID:function(elementID){
this._parentElementID=elementID;if(this.get_isInitialized()){
this.set_parentElement($get(elementID));}},
get_positioningMode:function(){
return this._positioningMode;},
set_positioningMode:function(mode){
this._positioningMode=mode;this.raisePropertyChanged('positioningMode');},
get_x:function(){
return this._x;},
set_x:function(value){
if(value!=this._x){
this._x=value;if(this._visible){
this.setupPopup();}
this.raisePropertyChanged('x');}},
get_y:function(){
return this._y;},
set_y:function(value){
if(value!=this._y){
this._y=value;if(this._visible){
this.setupPopup();}
this.raisePropertyChanged('y');}},
get_visible:function(){
return this._visible;},
add_showing:function(handler){
this.get_events().addHandler('showing',handler);},
remove_showing:function(handler){
this.get_events().removeHandler('showing',handler);},
raiseShowing:function(eventArgs){
var handler=this.get_events().getHandler('showing');if(handler){
handler(this,eventArgs);}},
add_shown:function(handler){
this.get_events().addHandler('shown',handler);},
remove_shown:function(handler){
this.get_events().removeHandler('shown',handler);},
raiseShown:function(eventArgs){
var handler=this.get_events().getHandler('shown');if(handler){
handler(this,eventArgs);}},
add_hiding:function(handler){
this.get_events().addHandler('hiding',handler);},
remove_hiding:function(handler){
this.get_events().removeHandler('hiding',handler);},
raiseHiding:function(eventArgs){
var handler=this.get_events().getHandler('hiding');if(handler){
handler(this,eventArgs);}},
add_hidden:function(handler){
this.get_events().addHandler('hidden',handler);},
remove_hidden:function(handler){
this.get_events().removeHandler('hidden',handler);},
raiseHidden:function(eventArgs){
var handler=this.get_events().getHandler('hidden');if(handler){
handler(this,eventArgs);}}}
AjaxControlToolkit.PopupBehavior.registerClass('AjaxControlToolkit.PopupBehavior',AjaxControlToolkit.BehaviorBase);AjaxControlToolkit.PositioningMode=function(){
throw Error.invalidOperation();}
AjaxControlToolkit.PositioningMode.prototype={
Absolute:0,
Center:1,
BottomLeft:2,
BottomRight:3,
TopLeft:4,
TopRight:5}
AjaxControlToolkit.PositioningMode.registerEnum('AjaxControlToolkit.PositioningMode');