// Name: ValidatorCallout.ValidatorCalloutBehavior.debug.js
// Assembly: AjaxControlToolkit
// Version: 4.1.7.725
// FileVersion: 4.1.7.0725
// (c) 2010 CodePlex Foundation
///
///
///
///
///
///
///
///
///
Type.registerNamespace('Sys.Extended.UI');
Sys.Extended.UI.ValidatorCalloutBehavior = function Sys$Extended$UI$ValidatorCalloutBehavior(element) {
Sys.Extended.UI.ValidatorCalloutBehavior.initializeBase(this, [element]);
this._warningIconImageUrl = null;
this._closeImageUrl = null;
this._cssClass = "ajax__validatorcallout";
this._highlightCssClass = null;
this._popupPosition = Sys.Extended.UI.ValidatorCalloutPosition.Right;
this._width = "200px";
this._invalid = false;
this._originalValidationMethod = null;
this._validationMethodOverride = null;
this._elementToValidate = null;
this._popupTable = null;
this._errorMessageCell = null;
this._calloutArrowCell = null;
this._warningIconImage = null;
this._closeImage = null;
this._closeCellInnerDiv = null;
this._popupBehavior = null;
this._onShowJson = null;
this._onHideJson = null;
this._focusAttached = false;
this._isBuilt = false;
this._focusHandler = Function.createDelegate(this, this._onfocus);
this._closeClickHandler = Function.createDelegate(this, this._oncloseClick);
};
Sys.Extended.UI.ValidatorCalloutBehavior.prototype = {
initialize : function() {
Sys.Extended.UI.ValidatorCalloutBehavior.callBaseMethod(this, 'initialize');
var elt = this.get_element();
if(elt.evaluationfunction) {
this._originalValidationMethod = Function.createDelegate(elt, elt.evaluationfunction);
this._validationMethodOverride = Function.createDelegate(this, this._onvalidate);
elt.evaluationfunction = this._validationMethodOverride;
}
var clientState = this.get_ClientState();
if ((null != clientState) && ("" !== clientState)) {
this._ensureCallout();
if(this._highlightCssClass) {
Sys.UI.DomElement.addCssClass(this._elementToValidate, this._highlightCssClass);
}
this.show();
}
},
_ensureCallout : function() {
if (!this._isBuilt) {
var elt = this.get_element();
var elementToValidate = this._elementToValidate = $get(elt.controltovalidate);
var popupTableBody = document.createElement("tbody");
var popupTableRow = document.createElement("tr");
var calloutCell = document.createElement("td");
var calloutTable = document.createElement("table");
var calloutTableBody = document.createElement("tbody");
var calloutTableRow = document.createElement("tr");
var iconCell = document.createElement("td");
var closeCell = document.createElement("td");
var closeCellInnerDiv = this._closeCellInnerDiv = document.createElement("div");
var popupTable = this._popupTable = document.createElement("table");
var calloutArrowCell = this._calloutArrowCell = document.createElement("td");
var warningIconImage = this._warningIconImage = document.createElement("img");
var closeImage = this._closeImage = document.createElement("img");
var errorMessageCell = this._errorMessageCell = document.createElement("td");
popupTable.id = this.get_id() + "_popupTable";
popupTable.cellPadding = 0;
popupTable.cellSpacing = 0;
popupTable.border = 0;
popupTable.width = this.get_width();
popupTable.className = this._cssClass + " ajax__validatorcallout_popup_table";
popupTableRow.className = "ajax__validatorcallout_popup_table_row";
calloutCell.className = "ajax__validatorcallout_callout_cell";
calloutTable.cellPadding = 0;
calloutTable.cellSpacing = 0;
calloutTable.border = 0;
calloutTable.className = "ajax__validatorcallout_callout_table";
calloutTableRow.className = "ajax__validatorcallout_callout_table_row";
if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft)
calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_bottomleftpos";
else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight)
calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_bottomrightpos";
else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft)
calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_topleftpos";
else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight)
calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_toprightpos";
else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Left)
calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell_leftpos";
else
calloutArrowCell.className = "ajax__validatorcallout_callout_arrow_cell";
iconCell.className = "ajax__validatorcallout_icon_cell";
warningIconImage.border = 0;
warningIconImage.src = this.get_warningIconImageUrl();
errorMessageCell.className = "ajax__validatorcallout_error_message_cell";
errorMessageCell.innerHTML = this._getErrorMessage();
closeCell.className = "ajax__validatorcallout_close_button_cell";
closeCellInnerDiv.className = "ajax__validatorcallout_innerdiv";
closeImage.src = this.get_closeImageUrl();
elt.parentNode.appendChild(popupTable);
popupTable.appendChild(popupTableBody);
popupTableBody.appendChild(popupTableRow);
popupTableRow.appendChild(calloutCell);
calloutCell.appendChild(calloutTable);
calloutTable.appendChild(calloutTableBody);
calloutTableBody.appendChild(calloutTableRow);
calloutTableRow.appendChild(calloutArrowCell);
popupTableRow.appendChild(iconCell);
iconCell.appendChild(warningIconImage);
popupTableRow.appendChild(errorMessageCell);
popupTableRow.appendChild(closeCell);
closeCellInnerDiv.appendChild(closeImage);
closeCell.appendChild(closeCellInnerDiv);
if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft ||
this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) {
var calloutExtraTableRow = document.createElement("tr");
popupTableBody.insertBefore(calloutExtraTableRow, popupTableRow);
calloutArrowCell.colSpan = 2;
calloutExtraTableRow.appendChild(calloutArrowCell);
popupTableRow.appendChild(iconCell);
popupTableRow.appendChild(errorMessageCell);
popupTableRow.appendChild(closeCell);
}
else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft ||
this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) {
var calloutExtraTableRow = document.createElement("tr");
popupTableBody.appendChild(calloutExtraTableRow);
calloutArrowCell.colSpan = 2;
calloutExtraTableRow.appendChild(calloutArrowCell);
popupTableRow.appendChild(iconCell);
popupTableRow.appendChild(errorMessageCell);
popupTableRow.appendChild(closeCell);
} else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Left) {
popupTableRow.appendChild(iconCell);
popupTableRow.appendChild(errorMessageCell);
popupTableRow.appendChild(closeCell);
popupTableRow.appendChild(calloutCell);
}
else {
popupTableRow.appendChild(calloutCell);
popupTableRow.appendChild(iconCell);
popupTableRow.appendChild(errorMessageCell);
popupTableRow.appendChild(closeCell);
}
var div = document.createElement("div");
div.className = "ajax__validatorcallout_innerdiv";
calloutArrowCell.appendChild(div);
if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft ||
this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) {
var pixel = document.createElement("div");
pixel.style.width = "1px";
pixel.className = "arrowpixel";
div.appendChild(pixel);
for (var i = 1; i < 22; i += 2) {
var line = document.createElement("div");
line.style.width = i.toString() + "px";
div.appendChild(line);
}
}
else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft ||
this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) {
for (var i = 23; i > 0; i -= 2) {
var line = document.createElement("div");
line.style.width = i.toString() + "px";
div.appendChild(line);
}
var pixel = document.createElement("div");
pixel.style.width = "1px";
pixel.className = "arrowpixel";
div.appendChild(pixel);
}
else {
for (var i = 14; i > 0; i--) {
var line = document.createElement("div");
line.style.width = i.toString() + "px";
div.appendChild(line);
}
}
this._popupBehavior = $create(
Sys.Extended.UI.PopupBehavior,
{
parentElement : elementToValidate
},
{ },
null,
this._popupTable);
if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopLeft) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopLeft);
} else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.TopRight) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.TopRight);
} else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomLeft) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomLeft);
} else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.BottomRight) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.BottomRight);
} else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Right) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Right);
} else if (this._popupPosition == Sys.Extended.UI.ValidatorCalloutPosition.Left) {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Left);
} else {
this._popupBehavior.set_positioningMode(Sys.Extended.UI.PositioningMode.Right);
}
if (this._onShowJson) {
this._popupBehavior.set_onShow(this._onShowJson);
}
if (this._onHideJson) {
this._popupBehavior.set_onHide(this._onHideJson);
}
$addHandler(this._closeCellInnerDiv, "click", this._closeClickHandler);
this._isBuilt = true;
}
},
dispose : function() {
if (this._isBuilt) {
this.hide();
if (this._focusAttached) {
$removeHandler(this._elementToValidate, "focus", this._focusHandler);
this._focusAttached = false;
}
$removeHandler(this._closeCellInnerDiv, "click", this._closeClickHandler);
this._onShowJson = null;
this._onHideJson = null;
if (this._popupBehavior) {
this._popupBehavior.dispose();
this._popupBehavior = null;
}
if (this._closeBehavior) {
this._closeBehavior.dispose();
this._closeBehavior = null;
}
if (this._popupTable) {
this._popupTable.parentNode.removeChild(this._popupTable);
this._popupTable = null;
this._errorMessageCell = null;
this._elementToValidate = null;
this._calloutArrowCell = null;
this._warningIconImage = null;
this._closeImage = null;
this._closeCellInnerDiv = null;
}
this._isBuilt = false;
}
Sys.Extended.UI.ValidatorCalloutBehavior.callBaseMethod(this, 'dispose');
},
_getErrorMessage : function() {
return this.get_element().errormessage || Sys.Extended.UI.Resources.ValidatorCallout_DefaultErrorMessage;
},
show : function(force) {
if (force || !this.get_isOpen()) {
if(force && Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout) {
Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout.hide();
}
if(Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout != null) {
return;
}
Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout = this;
this._errorMessageCell.innerHTML = this._getErrorMessage();
this._popupBehavior.show();
}
},
hide : function() {
if(Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout == this) {
Sys.Extended.UI.ValidatorCalloutBehavior._currentCallout = null;
}
if (this.get_isOpen()) {
this._popupBehavior.hide();
}
},
_onfocus : function(e) {
if(!this._originalValidationMethod(this.get_element())) {
this._ensureCallout();
if(this._highlightCssClass) {
Sys.UI.DomElement.addCssClass(this._elementToValidate, this._highlightCssClass);
}
this.show(true);
return false;
} else {
this.hide();
return true;
}
},
_oncloseClick : function(e) {
this.hide();
},
_onvalidate : function(val) {
if(!this._originalValidationMethod(val)) {
this._ensureCallout();
if(this._highlightCssClass) {
Sys.UI.DomElement.addCssClass(this._elementToValidate, this._highlightCssClass);
}
if (!this._focusAttached) {
$addHandler(this._elementToValidate, "focus", this._focusHandler);
this._focusAttached = true;
}
this.show(false);
this._invalid = true;
return false;
} else {
if(this._highlightCssClass && this._invalid) {
Sys.UI.DomElement.removeCssClass(this._elementToValidate, this._highlightCssClass);
}
this._invalid = false;
this.hide();
return true;
}
},
get_onShow : function() {
///
/// Generic OnShow Animation's JSON definition
///
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() {
///
/// Generic OnShow Animation's behavior
///
return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null;
},
onShow : function() {
///
/// Play the OnShow animation
///
///
if (this._popupBehavior) {
this._popupBehavior.onShow();
}
},
get_onHide : function() {
///
/// Generic OnHide Animation's JSON definition
///
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() {
///
/// Generic OnHide Animation's behavior
///
return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null;
},
onHide : function() {
///
/// Play the OnHide animation
///
///
if (this._popupBehavior) {
this._popupBehavior.onHide();
}
},
get_warningIconImageUrl : function() {
return this._warningIconImageUrl;
},
set_warningIconImageUrl : function(value) {
if (this._warningIconImageUrl != value) {
this._warningIconImageUrl = value;
if (this.get_isInitialized()) {
this._warningIconImage.src = value;
}
this.raisePropertyChanged("warningIconImageUrl");
}
},
get_closeImageUrl : function() {
return this._closeImageUrl;
},
set_closeImageUrl : function(value) {
if (this._closeImageUrl != value) {
this._closeImageUrl = value;
if (this.get_isInitialized()) {
this._closeImage.src = value;
}
this.raisePropertyChanged("closeImageUrl");
}
},
get_width : function() {
return this._width;
},
set_width : function(value) {
if (this._width != value) {
this._width = value;
if (this.get_isInitialized()) {
this._popupTable.style.width = _width;
}
this.raisePropertyChanged("width");
}
},
get_popupPosition: function() {
///
/// Where the popup should be positioned relative to the target control.
/// Can be Right (Default), Left, BottomLeft, BottomRight, TopLeft or TopRight.
///
return this._popupPosition;
},
set_popupPosition: function(value) {
if (this._popupPosition != value) {
this._popupPosition = value;
this.raisePropertyChanged('popupPosition');
}
},
get_cssClass : function() {
return this._cssClass;
},
set_cssClass : function(value) {
if (this._cssClass != value) {
this._cssClass = value;
this.raisePropertyChanged("cssClass");
}
},
get_highlightCssClass : function() {
return this._highlightCssClass;
},
set_highlightCssClass : function(value) {
if (this._highlightCssClass != value) {
this._highlightCssClass = value;
this.raisePropertyChanged("highlightCssClass");
}
},
get_isOpen : function() {
return $common.getVisible(this._popupTable);
}
};
Sys.Extended.UI.ValidatorCalloutBehavior.registerClass('Sys.Extended.UI.ValidatorCalloutBehavior', Sys.Extended.UI.BehaviorBase);
Sys.Extended.UI.ValidatorCalloutPosition = function() {
///
/// Position of the popup relative to the target control
///
///
///
///
///
///
///
throw Error.invalidOperation();
};
Sys.Extended.UI.ValidatorCalloutPosition.prototype = {
Right: 0,
Left: 1,
BottomLeft: 2,
BottomRight: 3,
TopLeft: 4,
TopRight: 5
};
Sys.Extended.UI.ValidatorCalloutPosition.registerEnum('Sys.Extended.UI.ValidatorCalloutPosition');