﻿Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.PopupControlBehavior = function(element) {
AjaxControlToolkit.PopupControlBehavior.initializeBase(this, [element]);this._popupControlID = null;this._commitProperty = null;this._commitScript = null;this._position = null;this._offsetX = 0;this._offsetY = 0;this._extenderControlID = null;this._popupElement = null;this._popupBehavior = null;this._popupVisible = false;this._focusHandler = null;this._popupKeyDownHandler = null;this._popupClickHandler = null;this._bodyClickHandler = null;this._onShowJson = null;this._onHideJson = null;}
AjaxControlToolkit.PopupControlBehavior.prototype = {
initialize : function() {
AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, 'initialize');var e = this.get_element();this._popupElement = $get(this._popupControlID);this._popupBehavior = $create(AjaxControlToolkit.PopupBehavior, { 'id':this.get_id()+'PopupBehavior', 'parentElement':e }, null, null, this._popupElement);if (this._onShowJson) {
this._popupBehavior.set_onShow(this._onShowJson);}
if (this._onHideJson) {
this._popupBehavior.set_onHide(this._onHideJson);}
this._focusHandler = Function.createDelegate(this, this._onFocus);this._popupClickHandler = Function.createDelegate(this, this._onPopupClick);this._bodyClickHandler = Function.createDelegate(this, this._onBodyClick);this._popupKeyDownHandler = Function.createDelegate(this, this._onPopupKeyDown);$addHandler(e, 'focus', this._focusHandler);$addHandler(e, 'click', this._focusHandler);$addHandler(document.body, 'click', this._bodyClickHandler);$addHandler(this._popupElement, 'click', this._popupClickHandler);$addHandler(this._popupElement, 'keydown', this._popupKeyDownHandler);this.registerPartialUpdateEvents();if(AjaxControlToolkit.PopupControlBehavior.__VisiblePopup && (this.get_id() == AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.get_id())) {
this._onFocus(null);}
},
dispose : function() {
var e = this.get_element();this._onShowJson = null;this._onHideJson = null;if (this._popupBehavior) {
this._popupBehavior.dispose();this._popupBehavior = null;}
if (this._focusHandler) {
$removeHandler(e, 'focus', this._focusHandler);$removeHandler(e, 'click', this._focusHandler);this._focusHandler = null;}
if (this._bodyClickHandler) {
$removeHandler(document.body, 'click', this._bodyClickHandler);this._bodyClickHandler = null;}
if (this._popupClickHandler) {
$removeHandler(this._popupElement, 'click', this._popupClickHandler);this._popupClickHandler = null;}
if (this._popupKeyDownHandler) {
$removeHandler(this._popupElement, 'keydown', this._popupKeyDownHandler);this._popupKeyDownHandler = null;}
AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, 'dispose');},
showPopup : function() {
var old = AjaxControlToolkit.PopupControlBehavior.__VisiblePopup;if (old && old._popupBehavior) {
old.hidePopup();}
AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, 'populate');this._popupBehavior.set_x(this._getLeftOffset());this._popupBehavior.set_y(this._getTopOffset());this._popupBehavior.show();this._popupVisible = true;AjaxControlToolkit.PopupControlBehavior.__VisiblePopup = this;},
hidePopup : function() {
this._popupBehavior.hide();this._popupVisible = false;AjaxControlToolkit.PopupControlBehavior.__VisiblePopup = null;},
_onFocus : function(e) {
if (!this._popupVisible) {
this.showPopup();}
if (e) {
e.stopPropagation();}
},
_onPopupKeyDown : function(e) {
if (this._popupVisible && e.keyCode == 27 ) {
this.get_element().focus();}
},
_onPopupClick : function(e) {
e.stopPropagation();},
_onBodyClick : function() {
if (this._popupVisible) {
this.hidePopup();}
},
_close : function(result) {
var e = this.get_element();if (null != result) {
if ('$$CANCEL$$' != result) {
if (this._commitProperty) {
e[this._commitProperty] = result;} else if ('text' == e.type) {
e.value = result;} else {
Sys.Debug.assert(false, String.format(AjaxControlToolkit.Resources.PopupControl_NoDefaultProperty, e.id, e.type));}
if (this._commitScript) {
eval(this._commitScript);}
}
this.hidePopup();}
},
_partialUpdateEndRequest : function(sender, endRequestEventArgs) {
AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, '_partialUpdateEndRequest', [sender, endRequestEventArgs]);if (this.get_element()) {
var result = endRequestEventArgs.get_dataItems()[this.get_element().id];if ((undefined === result) &&
AjaxControlToolkit.PopupControlBehavior.__VisiblePopup &&
(this.get_id() == AjaxControlToolkit.PopupControlBehavior.__VisiblePopup.get_id())) {
result = endRequestEventArgs.get_dataItems()["_PopupControl_Proxy_ID_"];}
if (undefined !== result) {
this._close(result);}
}
},
_onPopulated : function(sender, eventArgs) {
AjaxControlToolkit.PopupControlBehavior.callBaseMethod(this, '_onPopulated', [sender, eventArgs]);if (this._popupVisible) {
this._popupBehavior.show();}
},
_getLeftOffset : function() {
if (AjaxControlToolkit.PopupControlPopupPosition.Left == this._position) {
return (-1 * this.get_element().offsetWidth) + this._offsetX;} else if (AjaxControlToolkit.PopupControlPopupPosition.Right == this._position) {
return this.get_element().offsetWidth + this._offsetX;} else {
return this._offsetX;}
},
_getTopOffset : function() {
var yoffSet;if(AjaxControlToolkit.PopupControlPopupPosition.Top == this._position) {
yoffSet = (-1 * this.get_element().offsetHeight) + this._offsetY;} else if (AjaxControlToolkit.PopupControlPopupPosition.Bottom == this._position) {
yoffSet = this.get_element().offsetHeight + this._offsetY;} else {
yoffSet = this._offsetY;}
yoffSet = yoffSet + this.findScrollOffset('y');return yoffSet;},
findScrollOffset : function(opt)
{
var _x,_y;if (self.pageYOffset) 
{
_x = 0;_y = 0;}
else if (document.documentElement && document.documentElement.scrollTop)
{
_x = document.documentElement.scrollLeft;_y = document.documentElement.scrollTop;}
else if (document.body) 
{
_x = document.body.scrollLeft;_y = document.body.scrollTop;}
if (opt == 'x') {
return _x;}
if (opt == 'y') {
return _y;}
},
get_onShow : function() {
return this._popupBehavior ? this._popupBehavior.get_onShow() : this._onShowJson;},
set_onShow : function(value) {
if (this._popupBehavior) {
this._popupBehavior.set_onShow(value)
} else {
this._onShowJson = value;}
this.raisePropertyChanged('onShow');},
get_onShowBehavior : function() {
return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null;},
onShow : function() {
if (this._popupBehavior) {
this._popupBehavior.onShow();}
},
get_onHide : function() {
return this._popupBehavior ? this._popupBehavior.get_onHide() : this._onHideJson;},
set_onHide : function(value) {
if (this._popupBehavior) {
this._popupBehavior.set_onHide(value)
} else {
this._onHideJson = value;}
this.raisePropertyChanged('onHide');},
get_onHideBehavior : function() {
return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null;},
onHide : function() {
if (this._popupBehavior) {
this._popupBehavior.onHide();}
},
get_PopupControlID : function() {
return this._popupControlID;},
set_PopupControlID : function(value) {
if (this._popupControlID != value) { 
this._popupControlID = value;this.raisePropertyChanged('PopupControlID');}
},
get_CommitProperty : function() {
return this._commitProperty;},
set_CommitProperty : function(value) {
if (this._commitProperty != value) {
this._commitProperty = value;this.raisePropertyChanged('CommitProperty');}
},
get_CommitScript : function() {
return this._commitScript;},
set_CommitScript : function(value) {
if (this._commitScript != value) {
this._commitScript = value;this.raisePropertyChanged('CommitScript');}
},
get_Position : function() {
return this._position;},
set_Position : function(value) {
if (this._position != value) {
this._position = value;this.raisePropertyChanged('Position');}
},
get_ExtenderControlID : function() {
return this._extenderControlID;},
set_ExtenderControlID : function(value) {
if (this._extenderControlID != value) {
this._extenderControlID = value;this.raisePropertyChanged('ExtenderControlID');}
},
get_OffsetX : function() {
return this._offsetX;},
set_OffsetX : function(value) {
if (this._offsetX != value) {
this._offsetX = value;this.raisePropertyChanged('OffsetX');}
},
get_OffsetY : function() {
return this._offsetY;},
set_OffsetY : function(value) {
if (this._offsetY != value) {
this._offsetY = value;this.raisePropertyChanged('OffsetY');}
},
get_PopupVisible : function() {
return this._popupVisible;}
}
AjaxControlToolkit.PopupControlBehavior.registerClass('AjaxControlToolkit.PopupControlBehavior', AjaxControlToolkit.DynamicPopulateBehaviorBase);AjaxControlToolkit.PopupControlBehavior.__VisiblePopup = null;AjaxControlToolkit.PopupControlPopupPosition = function() {
throw Error.invalidOperation();}
AjaxControlToolkit.PopupControlPopupPosition.prototype = {
Center : 0,
Top : 1,
Left : 2,
Bottom : 3,
Right : 4
}
AjaxControlToolkit.PopupControlPopupPosition.registerEnum("AjaxControlToolkit.PopupControlPopupPosition", false);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();