Update 07082021
This commit is contained in:
34
WebFormApp/Scripts/WebForms/DetailsView.js
Normal file
34
WebFormApp/Scripts/WebForms/DetailsView.js
Normal file
@@ -0,0 +1,34 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/DetailsView.js
|
||||
function DetailsView() {
|
||||
this.pageIndex = null;
|
||||
this.dataKeys = null;
|
||||
this.createPropertyString = DetailsView_createPropertyString;
|
||||
this.setStateField = DetailsView_setStateValue;
|
||||
this.getHiddenFieldContents = DetailsView_getHiddenFieldContents;
|
||||
this.stateField = null;
|
||||
this.panelElement = null;
|
||||
this.callback = null;
|
||||
}
|
||||
function DetailsView_createPropertyString() {
|
||||
return createPropertyStringFromValues_DetailsView(this.pageIndex, this.dataKeys);
|
||||
}
|
||||
function DetailsView_setStateValue() {
|
||||
this.stateField.value = this.createPropertyString();
|
||||
}
|
||||
function DetailsView_OnCallback (result, context) {
|
||||
var value = new String(result);
|
||||
var valsArray = value.split("|");
|
||||
var innerHtml = valsArray[2];
|
||||
for (var i = 3; i < valsArray.length; i++) {
|
||||
innerHtml += "|" + valsArray[i];
|
||||
}
|
||||
context.panelElement.innerHTML = innerHtml;
|
||||
context.stateField.value = createPropertyStringFromValues_DetailsView(valsArray[0], valsArray[1]);
|
||||
}
|
||||
function DetailsView_getHiddenFieldContents(arg) {
|
||||
return arg + "|" + this.stateField.value;
|
||||
}
|
||||
function createPropertyStringFromValues_DetailsView(pageIndex, dataKeys) {
|
||||
var value = new Array(pageIndex, dataKeys);
|
||||
return value.join("|");
|
||||
}
|
||||
93
WebFormApp/Scripts/WebForms/Focus.js
Normal file
93
WebFormApp/Scripts/WebForms/Focus.js
Normal file
@@ -0,0 +1,93 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js
|
||||
function WebForm_FindFirstFocusableChild(control) {
|
||||
if (!control || !(control.tagName)) {
|
||||
return null;
|
||||
}
|
||||
var tagName = control.tagName.toLowerCase();
|
||||
if (tagName == "undefined") {
|
||||
return null;
|
||||
}
|
||||
var children = control.childNodes;
|
||||
if (children) {
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
try {
|
||||
if (WebForm_CanFocus(children[i])) {
|
||||
return children[i];
|
||||
}
|
||||
else {
|
||||
var focused = WebForm_FindFirstFocusableChild(children[i]);
|
||||
if (WebForm_CanFocus(focused)) {
|
||||
return focused;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function WebForm_AutoFocus(focusId) {
|
||||
var targetControl;
|
||||
if (__nonMSDOMBrowser) {
|
||||
targetControl = document.getElementById(focusId);
|
||||
}
|
||||
else {
|
||||
targetControl = document.all[focusId];
|
||||
}
|
||||
var focused = targetControl;
|
||||
if (targetControl && (!WebForm_CanFocus(targetControl)) ) {
|
||||
focused = WebForm_FindFirstFocusableChild(targetControl);
|
||||
}
|
||||
if (focused) {
|
||||
try {
|
||||
focused.focus();
|
||||
if (__nonMSDOMBrowser) {
|
||||
focused.scrollIntoView(false);
|
||||
}
|
||||
if (window.__smartNav) {
|
||||
window.__smartNav.ae = focused.id;
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebForm_CanFocus(element) {
|
||||
if (!element || !(element.tagName)) return false;
|
||||
var tagName = element.tagName.toLowerCase();
|
||||
return (!(element.disabled) &&
|
||||
(!(element.type) || element.type.toLowerCase() != "hidden") &&
|
||||
WebForm_IsFocusableTag(tagName) &&
|
||||
WebForm_IsInVisibleContainer(element)
|
||||
);
|
||||
}
|
||||
function WebForm_IsFocusableTag(tagName) {
|
||||
return (tagName == "input" ||
|
||||
tagName == "textarea" ||
|
||||
tagName == "select" ||
|
||||
tagName == "button" ||
|
||||
tagName == "a");
|
||||
}
|
||||
function WebForm_IsInVisibleContainer(ctrl) {
|
||||
var current = ctrl;
|
||||
while((typeof(current) != "undefined") && (current != null)) {
|
||||
if (current.disabled ||
|
||||
( typeof(current.style) != "undefined" &&
|
||||
( ( typeof(current.style.display) != "undefined" &&
|
||||
current.style.display == "none") ||
|
||||
( typeof(current.style.visibility) != "undefined" &&
|
||||
current.style.visibility == "hidden") ) ) ) {
|
||||
return false;
|
||||
}
|
||||
if (typeof(current.parentNode) != "undefined" &&
|
||||
current.parentNode != null &&
|
||||
current.parentNode != current &&
|
||||
current.parentNode.tagName.toLowerCase() != "body") {
|
||||
current = current.parentNode;
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
36
WebFormApp/Scripts/WebForms/GridView.js
Normal file
36
WebFormApp/Scripts/WebForms/GridView.js
Normal file
@@ -0,0 +1,36 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/GridView.js
|
||||
function GridView() {
|
||||
this.pageIndex = null;
|
||||
this.sortExpression = null;
|
||||
this.sortDirection = null;
|
||||
this.dataKeys = null;
|
||||
this.createPropertyString = GridView_createPropertyString;
|
||||
this.setStateField = GridView_setStateValue;
|
||||
this.getHiddenFieldContents = GridView_getHiddenFieldContents;
|
||||
this.stateField = null;
|
||||
this.panelElement = null;
|
||||
this.callback = null;
|
||||
}
|
||||
function GridView_createPropertyString() {
|
||||
return createPropertyStringFromValues_GridView(this.pageIndex, this.sortDirection, this.sortExpression, this.dataKeys);
|
||||
}
|
||||
function GridView_setStateValue() {
|
||||
this.stateField.value = this.createPropertyString();
|
||||
}
|
||||
function GridView_OnCallback (result, context) {
|
||||
var value = new String(result);
|
||||
var valsArray = value.split("|");
|
||||
var innerHtml = valsArray[4];
|
||||
for (var i = 5; i < valsArray.length; i++) {
|
||||
innerHtml += "|" + valsArray[i];
|
||||
}
|
||||
context.panelElement.innerHTML = innerHtml;
|
||||
context.stateField.value = createPropertyStringFromValues_GridView(valsArray[0], valsArray[1], valsArray[2], valsArray[3]);
|
||||
}
|
||||
function GridView_getHiddenFieldContents(arg) {
|
||||
return arg + "|" + this.stateField.value;
|
||||
}
|
||||
function createPropertyStringFromValues_GridView(pageIndex, sortDirection, sortExpression, dataKeys) {
|
||||
var value = new Array(pageIndex, sortDirection, sortExpression, dataKeys);
|
||||
return value.join("|");
|
||||
}
|
||||
6
WebFormApp/Scripts/WebForms/MSAjax/MicrosoftAjax.js
vendored
Normal file
6
WebFormApp/Scripts/WebForms/MSAjax/MicrosoftAjax.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
WebFormApp/Scripts/WebForms/MSAjax/MicrosoftAjaxCore.js
Normal file
6
WebFormApp/Scripts/WebForms/MSAjax/MicrosoftAjaxCore.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
WebFormApp/Scripts/WebForms/MSAjax/MicrosoftAjaxTimer.js
Normal file
6
WebFormApp/Scripts/WebForms/MSAjax/MicrosoftAjaxTimer.js
Normal file
@@ -0,0 +1,6 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MicrosoftAjaxTimer.js
|
||||
//----------------------------------------------------------
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------
|
||||
// MicrosoftAjaxTimer.js
|
||||
Type._registerScript("Timer.js",["MicrosoftAjaxComponentModel.js"]);Sys.UI._Timer=function(a){Sys.UI._Timer.initializeBase(this,[a]);this._interval=60000;this._enabled=true;this._postbackPending=false;this._raiseTickDelegate=null;this._endRequestHandlerDelegate=null;this._timer=null;this._pageRequestManager=null;this._uniqueID=null};Sys.UI._Timer.prototype={get_enabled:function(){return this._enabled},set_enabled:function(a){this._enabled=a},get_interval:function(){return this._interval},set_interval:function(a){this._interval=a},get_uniqueID:function(){return this._uniqueID},set_uniqueID:function(a){this._uniqueID=a},dispose:function(){this._stopTimer();if(this._pageRequestManager!==null)this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate);Sys.UI._Timer.callBaseMethod(this,"dispose")},_doPostback:function(){__doPostBack(this.get_uniqueID(),"")},_handleEndRequest:function(c,b){var a=b.get_dataItems()[this.get_id()];if(a)this._update(a[0],a[1]);if(this._postbackPending===true&&this._pageRequestManager!==null&&this._pageRequestManager.get_isInAsyncPostBack()===false){this._postbackPending=false;this._doPostback()}},initialize:function(){Sys.UI._Timer.callBaseMethod(this,"initialize");this._raiseTickDelegate=Function.createDelegate(this,this._raiseTick);this._endRequestHandlerDelegate=Function.createDelegate(this,this._handleEndRequest);if(Sys.WebForms&&Sys.WebForms.PageRequestManager)this._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();if(this._pageRequestManager!==null)this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);if(this.get_enabled())this._startTimer()},_raiseTick:function(){this._startTimer();if(this._pageRequestManager===null||!this._pageRequestManager.get_isInAsyncPostBack()){this._doPostback();this._postbackPending=false}else this._postbackPending=true},_startTimer:function(){this._timer=window.setTimeout(Function.createDelegate(this,this._raiseTick),this.get_interval())},_stopTimer:function(){if(this._timer!==null){window.clearTimeout(this._timer);this._timer=null}},_update:function(c,b){var a=!this.get_enabled(),d=this.get_interval()!==b;if(!a&&(!c||d)){this._stopTimer();a=true}this.set_enabled(c);this.set_interval(b);if(this.get_enabled()&&a)this._startTimer()}};Sys.UI._Timer.registerClass("Sys.UI._Timer",Sys.UI.Control);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MicrosoftAjaxWebServices.js
|
||||
//----------------------------------------------------------
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------
|
||||
// MicrosoftAjaxWebServices.js
|
||||
Type._registerScript("MicrosoftAjaxWebServices.js",["MicrosoftAjaxNetwork.js"]);Type.registerNamespace("Sys.Net");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout||0},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return typeof this._userContext==="undefined"?null:this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded||null},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed||null},set_defaultFailedCallback:function(a){this._failed=a},get_enableJsonp:function(){return !!this._jsonp},set_enableJsonp:function(a){this._jsonp=a},get_path:function(){return this._path||null},set_path:function(a){this._path=a},get_jsonpCallbackParameter:function(){return this._callbackParameter||"callback"},set_jsonpCallbackParameter:function(a){this._callbackParameter=a},_invoke:function(d,e,g,f,c,b,a){c=c||this.get_defaultSucceededCallback();b=b||this.get_defaultFailedCallback();if(a===null||typeof a==="undefined")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout(),this.get_enableJsonp(),this.get_jsonpCallbackParameter())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(q,a,m,l,j,b,g,e,w,p){var i=w!==false?Sys.Net.WebServiceProxy._xdomain.exec(q):null,c,n=i&&i.length===3&&(i[1]!==location.protocol||i[2]!==location.host);m=n||m;if(n){p=p||"callback";c="_jsonp"+Sys._jsonp++}if(!l)l={};var r=l;if(!m||!r)r={};var s,h,f=null,k,o=null,u=Sys.Net.WebRequest._createUrl(a?q+"/"+encodeURIComponent(a):q,r,n?p+"=Sys."+c:null);if(n){s=document.createElement("script");s.src=u;k=new Sys._ScriptLoaderTask(s,function(d,b){if(!b||c)t({Message:String.format(Sys.Res.webServiceFailedNoMsg,a)},-1)});function v(){if(f===null)return;f=null;h=new Sys.Net.WebServiceError(true,String.format(Sys.Res.webServiceTimedOut,a));k.dispose();delete Sys[c];if(b)b(h,g,a)}function t(d,e){if(f!==null){window.clearTimeout(f);f=null}k.dispose();delete Sys[c];c=null;if(typeof e!=="undefined"&&e!==200){if(b){h=new Sys.Net.WebServiceError(false,d.Message||String.format(Sys.Res.webServiceFailedNoMsg,a),d.StackTrace||null,d.ExceptionType||null,d);h._statusCode=e;b(h,g,a)}}else if(j)j(d,g,a)}Sys[c]=t;e=e||Sys.Net.WebRequestManager.get_defaultTimeout();if(e>0)f=window.setTimeout(v,e);k.execute();return null}var d=new Sys.Net.WebRequest;d.set_url(u);d.get_headers()["Content-Type"]="application/json; charset=utf-8";if(!m){o=Sys.Serialization.JavaScriptSerializer.serialize(l);if(o==="{}")o=""}d.set_body(o);d.add_completed(x);if(e&&e>0)d.set_timeout(e);d.invoke();function x(d){if(d.get_responseAvailable()){var f=d.get_statusCode(),c=null;try{var e=d.getResponseHeader("Content-Type");if(e.startsWith("application/json"))c=d.get_object();else if(e.startsWith("text/xml"))c=d.get_xml();else c=d.get_responseData()}catch(m){}var k=d.getResponseHeader("jsonerror"),h=k==="true";if(h){if(c)c=new Sys.Net.WebServiceError(false,c.Message,c.StackTrace,c.ExceptionType,c)}else if(e.startsWith("application/json"))c=!c||typeof c.d==="undefined"?c:c.d;if(f<200||f>=300||h){if(b){if(!c||!h)c=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a));c._statusCode=f;b(c,g,a)}}else if(j)j(c,g,a)}else{var i;if(d.get_timedOut())i=String.format(Sys.Res.webServiceTimedOut,a);else i=String.format(Sys.Res.webServiceFailedNoMsg,a);if(b)b(new Sys.Net.WebServiceError(d.get_timedOut(),i,"",""),g,a)}}return d};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys._jsonp=0;Sys.Net.WebServiceProxy._xdomain=/^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;Sys.Net.WebServiceError=function(d,e,c,a,b){this._timedOut=d;this._message=e;this._stackTrace=c;this._exceptionType=a;this._errorObject=b;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace||""},get_exceptionType:function(){return this._exceptionType||""},get_errorObject:function(){return this._errorObject||null}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError");
|
||||
898
WebFormApp/Scripts/WebForms/Menu.js
Normal file
898
WebFormApp/Scripts/WebForms/Menu.js
Normal file
@@ -0,0 +1,898 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/Menu.js
|
||||
var __rootMenuItem;
|
||||
var __menuInterval;
|
||||
var __scrollPanel;
|
||||
var __disappearAfter = 500;
|
||||
function Menu_ClearInterval() {
|
||||
if (__menuInterval) {
|
||||
window.clearInterval(__menuInterval);
|
||||
}
|
||||
}
|
||||
function Menu_Collapse(item) {
|
||||
Menu_SetRoot(item);
|
||||
if (__rootMenuItem) {
|
||||
Menu_ClearInterval();
|
||||
if (__disappearAfter >= 0) {
|
||||
__menuInterval = window.setInterval("Menu_HideItems()", __disappearAfter);
|
||||
}
|
||||
}
|
||||
}
|
||||
function Menu_Expand(item, horizontalOffset, verticalOffset, hideScrollers) {
|
||||
Menu_ClearInterval();
|
||||
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||
var horizontal = true;
|
||||
if (!tr.id) {
|
||||
horizontal = false;
|
||||
tr = tr.parentNode;
|
||||
}
|
||||
var child = Menu_FindSubMenu(item);
|
||||
if (child) {
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) {
|
||||
return null;
|
||||
}
|
||||
child.rel = tr.id;
|
||||
child.x = horizontalOffset;
|
||||
child.y = verticalOffset;
|
||||
if (horizontal) child.pos = "bottom";
|
||||
PopOut_Show(child.id, hideScrollers, data);
|
||||
}
|
||||
Menu_SetRoot(item);
|
||||
if (child) {
|
||||
if (!document.body.__oldOnClick && document.body.onclick) {
|
||||
document.body.__oldOnClick = document.body.onclick;
|
||||
}
|
||||
if (__rootMenuItem) {
|
||||
document.body.onclick = Menu_HideItems;
|
||||
}
|
||||
}
|
||||
Menu_ResetSiblings(tr);
|
||||
return child;
|
||||
}
|
||||
function Menu_FindMenu(item) {
|
||||
if (item && item.menu) return item.menu;
|
||||
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||
if (!tr.id) {
|
||||
tr = tr.parentNode;
|
||||
}
|
||||
for (var i = tr.id.length - 1; i >= 0; i--) {
|
||||
if (tr.id.charAt(i) < '0' || tr.id.charAt(i) > '9') {
|
||||
var menu = WebForm_GetElementById(tr.id.substr(0, i));
|
||||
if (menu) {
|
||||
item.menu = menu;
|
||||
return menu;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function Menu_FindNext(item) {
|
||||
var a = WebForm_GetElementByTagName(item, "A");
|
||||
var parent = Menu_FindParentContainer(item);
|
||||
var first = null;
|
||||
if (parent) {
|
||||
var links = WebForm_GetElementsByTagName(parent, "A");
|
||||
var match = false;
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var link = links[i];
|
||||
if (Menu_IsSelectable(link)) {
|
||||
if (Menu_FindParentContainer(link) == parent) {
|
||||
if (match) {
|
||||
return link;
|
||||
}
|
||||
else if (!first) {
|
||||
first = link;
|
||||
}
|
||||
}
|
||||
if (!match && link == a) {
|
||||
match = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return first;
|
||||
}
|
||||
function Menu_FindParentContainer(item) {
|
||||
if (item.menu_ParentContainerCache) return item.menu_ParentContainerCache;
|
||||
var a = (item.tagName.toLowerCase() == "a") ? item : WebForm_GetElementByTagName(item, "A");
|
||||
var menu = Menu_FindMenu(a);
|
||||
if (menu) {
|
||||
var parent = item;
|
||||
while (parent && parent.tagName &&
|
||||
parent.id != menu.id &&
|
||||
parent.tagName.toLowerCase() != "div") {
|
||||
parent = parent.parentNode;
|
||||
}
|
||||
item.menu_ParentContainerCache = parent;
|
||||
return parent;
|
||||
}
|
||||
}
|
||||
function Menu_FindParentItem(item) {
|
||||
var parentContainer = Menu_FindParentContainer(item);
|
||||
var parentContainerID = parentContainer.id;
|
||||
var len = parentContainerID.length;
|
||||
if (parentContainerID && parentContainerID.substr(len - 5) == "Items") {
|
||||
var parentItemID = parentContainerID.substr(0, len - 5);
|
||||
return WebForm_GetElementById(parentItemID);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function Menu_FindPrevious(item) {
|
||||
var a = WebForm_GetElementByTagName(item, "A");
|
||||
var parent = Menu_FindParentContainer(item);
|
||||
var last = null;
|
||||
if (parent) {
|
||||
var links = WebForm_GetElementsByTagName(parent, "A");
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
var link = links[i];
|
||||
if (Menu_IsSelectable(link)) {
|
||||
if (link == a && last) {
|
||||
return last;
|
||||
}
|
||||
if (Menu_FindParentContainer(link) == parent) {
|
||||
last = link;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return last;
|
||||
}
|
||||
function Menu_FindSubMenu(item) {
|
||||
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||
if (!tr.id) {
|
||||
tr=tr.parentNode;
|
||||
}
|
||||
return WebForm_GetElementById(tr.id + "Items");
|
||||
}
|
||||
function Menu_Focus(item) {
|
||||
if (item && item.focus) {
|
||||
var pos = WebForm_GetElementPosition(item);
|
||||
var parentContainer = Menu_FindParentContainer(item);
|
||||
if (!parentContainer.offset) {
|
||||
parentContainer.offset = 0;
|
||||
}
|
||||
var posParent = WebForm_GetElementPosition(parentContainer);
|
||||
var delta;
|
||||
if (pos.y + pos.height > posParent.y + parentContainer.offset + parentContainer.clippedHeight) {
|
||||
delta = pos.y + pos.height - posParent.y - parentContainer.offset - parentContainer.clippedHeight;
|
||||
PopOut_Scroll(parentContainer, delta);
|
||||
}
|
||||
else if (pos.y < posParent.y + parentContainer.offset) {
|
||||
delta = posParent.y + parentContainer.offset - pos.y;
|
||||
PopOut_Scroll(parentContainer, -delta);
|
||||
}
|
||||
PopOut_HideScrollers(parentContainer);
|
||||
item.focus();
|
||||
}
|
||||
}
|
||||
function Menu_GetData(item) {
|
||||
if (!item.data) {
|
||||
var a = (item.tagName.toLowerCase() == "a" ? item : WebForm_GetElementByTagName(item, "a"));
|
||||
var menu = Menu_FindMenu(a);
|
||||
try {
|
||||
item.data = eval(menu.id + "_Data");
|
||||
}
|
||||
catch(e) {}
|
||||
}
|
||||
return item.data;
|
||||
}
|
||||
function Menu_HideItems(items) {
|
||||
if (document.body.__oldOnClick) {
|
||||
document.body.onclick = document.body.__oldOnClick;
|
||||
document.body.__oldOnClick = null;
|
||||
}
|
||||
Menu_ClearInterval();
|
||||
if (!items || ((typeof(items.tagName) == "undefined") && (items instanceof Event))) {
|
||||
items = __rootMenuItem;
|
||||
}
|
||||
var table = items;
|
||||
if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) {
|
||||
table = WebForm_GetElementByTagName(table, "TABLE");
|
||||
}
|
||||
if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) {
|
||||
return;
|
||||
}
|
||||
var rows = table.rows ? table.rows : table.firstChild.rows;
|
||||
var isVertical = false;
|
||||
for (var r = 0; r < rows.length; r++) {
|
||||
if (rows[r].id) {
|
||||
isVertical = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
var i, child, nextLevel;
|
||||
if (isVertical) {
|
||||
for(i = 0; i < rows.length; i++) {
|
||||
if (rows[i].id) {
|
||||
child = WebForm_GetElementById(rows[i].id + "Items");
|
||||
if (child) {
|
||||
Menu_HideItems(child);
|
||||
}
|
||||
}
|
||||
else if (rows[i].cells[0]) {
|
||||
nextLevel = WebForm_GetElementByTagName(rows[i].cells[0], "TABLE");
|
||||
if (nextLevel) {
|
||||
Menu_HideItems(nextLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (rows[0]) {
|
||||
for(i = 0; i < rows[0].cells.length; i++) {
|
||||
if (rows[0].cells[i].id) {
|
||||
child = WebForm_GetElementById(rows[0].cells[i].id + "Items");
|
||||
if (child) {
|
||||
Menu_HideItems(child);
|
||||
}
|
||||
}
|
||||
else {
|
||||
nextLevel = WebForm_GetElementByTagName(rows[0].cells[i], "TABLE");
|
||||
if (nextLevel) {
|
||||
Menu_HideItems(rows[0].cells[i].firstChild);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (items && items.id) {
|
||||
PopOut_Hide(items.id);
|
||||
}
|
||||
}
|
||||
function Menu_HoverDisabled(item) {
|
||||
var node = (item.tagName.toLowerCase() == "td") ?
|
||||
item:
|
||||
item.cells[0];
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) return;
|
||||
node = WebForm_GetElementByTagName(node, "table").rows[0].cells[0].childNodes[0];
|
||||
if (data.disappearAfter >= 200) {
|
||||
__disappearAfter = data.disappearAfter;
|
||||
}
|
||||
Menu_Expand(node, data.horizontalOffset, data.verticalOffset);
|
||||
}
|
||||
function Menu_HoverDynamic(item) {
|
||||
var node = (item.tagName.toLowerCase() == "td") ?
|
||||
item:
|
||||
item.cells[0];
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) return;
|
||||
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||
if (data.hoverClass) {
|
||||
nodeTable.hoverClass = data.hoverClass;
|
||||
WebForm_AppendToClassName(nodeTable, data.hoverClass);
|
||||
}
|
||||
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||
if (data.hoverHyperLinkClass) {
|
||||
node.hoverHyperLinkClass = data.hoverHyperLinkClass;
|
||||
WebForm_AppendToClassName(node, data.hoverHyperLinkClass);
|
||||
}
|
||||
if (data.disappearAfter >= 200) {
|
||||
__disappearAfter = data.disappearAfter;
|
||||
}
|
||||
Menu_Expand(node, data.horizontalOffset, data.verticalOffset);
|
||||
}
|
||||
function Menu_HoverRoot(item) {
|
||||
var node = (item.tagName.toLowerCase() == "td") ?
|
||||
item:
|
||||
item.cells[0];
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) {
|
||||
return null;
|
||||
}
|
||||
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||
if (data.staticHoverClass) {
|
||||
nodeTable.hoverClass = data.staticHoverClass;
|
||||
WebForm_AppendToClassName(nodeTable, data.staticHoverClass);
|
||||
}
|
||||
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||
if (data.staticHoverHyperLinkClass) {
|
||||
node.hoverHyperLinkClass = data.staticHoverHyperLinkClass;
|
||||
WebForm_AppendToClassName(node, data.staticHoverHyperLinkClass);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
function Menu_HoverStatic(item) {
|
||||
var node = Menu_HoverRoot(item);
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) return;
|
||||
__disappearAfter = data.disappearAfter;
|
||||
Menu_Expand(node, data.horizontalOffset, data.verticalOffset);
|
||||
}
|
||||
function Menu_IsHorizontal(item) {
|
||||
if (item) {
|
||||
var a = ((item.tagName && (item.tagName.toLowerCase == "a")) ? item : WebForm_GetElementByTagName(item, "A"));
|
||||
if (!a) {
|
||||
return false;
|
||||
}
|
||||
var td = a.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||
if (td.id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function Menu_IsSelectable(link) {
|
||||
return (link && link.href)
|
||||
}
|
||||
function Menu_Key(item) {
|
||||
var event;
|
||||
if (item.currentTarget) {
|
||||
event = item;
|
||||
item = event.currentTarget;
|
||||
}
|
||||
else {
|
||||
event = window.event;
|
||||
}
|
||||
var key = (event ? event.keyCode : -1);
|
||||
var data = Menu_GetData(item);
|
||||
if (!data) return;
|
||||
var horizontal = Menu_IsHorizontal(item);
|
||||
var a = WebForm_GetElementByTagName(item, "A");
|
||||
var nextItem, parentItem, previousItem;
|
||||
if ((!horizontal && key == 38) || (horizontal && key == 37)) {
|
||||
previousItem = Menu_FindPrevious(item);
|
||||
while (previousItem && previousItem.disabled) {
|
||||
previousItem = Menu_FindPrevious(previousItem);
|
||||
}
|
||||
if (previousItem) {
|
||||
Menu_Focus(previousItem);
|
||||
Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((!horizontal && key == 40) || (horizontal && key == 39)) {
|
||||
if (horizontal) {
|
||||
var subMenu = Menu_FindSubMenu(a);
|
||||
if (subMenu && subMenu.style && subMenu.style.visibility &&
|
||||
subMenu.style.visibility.toLowerCase() == "hidden") {
|
||||
Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
nextItem = Menu_FindNext(item);
|
||||
while (nextItem && nextItem.disabled) {
|
||||
nextItem = Menu_FindNext(nextItem);
|
||||
}
|
||||
if (nextItem) {
|
||||
Menu_Focus(nextItem);
|
||||
Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((!horizontal && key == 39) || (horizontal && key == 40)) {
|
||||
var children = Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true);
|
||||
if (children) {
|
||||
var firstChild;
|
||||
children = WebForm_GetElementsByTagName(children, "A");
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
if (!children[i].disabled && Menu_IsSelectable(children[i])) {
|
||||
firstChild = children[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (firstChild) {
|
||||
Menu_Focus(firstChild);
|
||||
Menu_Expand(firstChild, data.horizontalOffset, data.verticalOffset, true);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
parentItem = Menu_FindParentItem(item);
|
||||
while (parentItem && !Menu_IsHorizontal(parentItem)) {
|
||||
parentItem = Menu_FindParentItem(parentItem);
|
||||
}
|
||||
if (parentItem) {
|
||||
nextItem = Menu_FindNext(parentItem);
|
||||
while (nextItem && nextItem.disabled) {
|
||||
nextItem = Menu_FindNext(nextItem);
|
||||
}
|
||||
if (nextItem) {
|
||||
Menu_Focus(nextItem);
|
||||
Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((!horizontal && key == 37) || (horizontal && key == 38)) {
|
||||
parentItem = Menu_FindParentItem(item);
|
||||
if (parentItem) {
|
||||
if (Menu_IsHorizontal(parentItem)) {
|
||||
previousItem = Menu_FindPrevious(parentItem);
|
||||
while (previousItem && previousItem.disabled) {
|
||||
previousItem = Menu_FindPrevious(previousItem);
|
||||
}
|
||||
if (previousItem) {
|
||||
Menu_Focus(previousItem);
|
||||
Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
var parentA = WebForm_GetElementByTagName(parentItem, "A");
|
||||
if (parentA) {
|
||||
Menu_Focus(parentA);
|
||||
}
|
||||
Menu_ResetSiblings(parentItem);
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (key == 27) {
|
||||
Menu_HideItems();
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
}
|
||||
function Menu_ResetSiblings(item) {
|
||||
var table = (item.tagName.toLowerCase() == "td") ?
|
||||
item.parentNode.parentNode.parentNode :
|
||||
item.parentNode.parentNode;
|
||||
var isVertical = false;
|
||||
for (var r = 0; r < table.rows.length; r++) {
|
||||
if (table.rows[r].id) {
|
||||
isVertical = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
var i, child, childNode;
|
||||
if (isVertical) {
|
||||
for(i = 0; i < table.rows.length; i++) {
|
||||
childNode = table.rows[i];
|
||||
if (childNode != item) {
|
||||
child = WebForm_GetElementById(childNode.id + "Items");
|
||||
if (child) {
|
||||
Menu_HideItems(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(i = 0; i < table.rows[0].cells.length; i++) {
|
||||
childNode = table.rows[0].cells[i];
|
||||
if (childNode != item) {
|
||||
child = WebForm_GetElementById(childNode.id + "Items");
|
||||
if (child) {
|
||||
Menu_HideItems(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Menu_ResetTopMenus(table, table, 0, true);
|
||||
}
|
||||
function Menu_ResetTopMenus(table, doNotReset, level, up) {
|
||||
var i, child, childNode;
|
||||
if (up && table.id == "") {
|
||||
var parentTable = table.parentNode.parentNode.parentNode.parentNode;
|
||||
if (parentTable.tagName.toLowerCase() == "table") {
|
||||
Menu_ResetTopMenus(parentTable, doNotReset, level + 1, true);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (level == 0 && table != doNotReset) {
|
||||
if (table.rows[0].id) {
|
||||
for(i = 0; i < table.rows.length; i++) {
|
||||
childNode = table.rows[i];
|
||||
child = WebForm_GetElementById(childNode.id + "Items");
|
||||
if (child) {
|
||||
Menu_HideItems(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(i = 0; i < table.rows[0].cells.length; i++) {
|
||||
childNode = table.rows[0].cells[i];
|
||||
child = WebForm_GetElementById(childNode.id + "Items");
|
||||
if (child) {
|
||||
Menu_HideItems(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (level > 0) {
|
||||
for (i = 0; i < table.rows.length; i++) {
|
||||
for (var j = 0; j < table.rows[i].cells.length; j++) {
|
||||
var subTable = table.rows[i].cells[j].firstChild;
|
||||
if (subTable && subTable.tagName.toLowerCase() == "table") {
|
||||
Menu_ResetTopMenus(subTable, doNotReset, level - 1, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function Menu_RestoreInterval() {
|
||||
if (__menuInterval && __rootMenuItem) {
|
||||
Menu_ClearInterval();
|
||||
__menuInterval = window.setInterval("Menu_HideItems()", __disappearAfter);
|
||||
}
|
||||
}
|
||||
function Menu_SetRoot(item) {
|
||||
var newRoot = Menu_FindMenu(item);
|
||||
if (newRoot) {
|
||||
if (__rootMenuItem && __rootMenuItem != newRoot) {
|
||||
Menu_HideItems();
|
||||
}
|
||||
__rootMenuItem = newRoot;
|
||||
}
|
||||
}
|
||||
function Menu_Unhover(item) {
|
||||
var node = (item.tagName.toLowerCase() == "td") ?
|
||||
item:
|
||||
item.cells[0];
|
||||
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||
if (nodeTable.hoverClass) {
|
||||
WebForm_RemoveClassName(nodeTable, nodeTable.hoverClass);
|
||||
}
|
||||
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||
if (node.hoverHyperLinkClass) {
|
||||
WebForm_RemoveClassName(node, node.hoverHyperLinkClass);
|
||||
}
|
||||
Menu_Collapse(node);
|
||||
}
|
||||
function PopOut_Clip(element, y, height) {
|
||||
if (element && element.style) {
|
||||
element.style.clip = "rect(" + y + "px auto " + (y + height) + "px auto)";
|
||||
element.style.overflow = "hidden";
|
||||
}
|
||||
}
|
||||
function PopOut_Down(scroller) {
|
||||
Menu_ClearInterval();
|
||||
var panel;
|
||||
if (scroller) {
|
||||
panel = scroller.parentNode
|
||||
}
|
||||
else {
|
||||
panel = __scrollPanel;
|
||||
}
|
||||
if (panel && ((panel.offset + panel.clippedHeight) < panel.physicalHeight)) {
|
||||
PopOut_Scroll(panel, 2)
|
||||
__scrollPanel = panel;
|
||||
PopOut_ShowScrollers(panel);
|
||||
PopOut_Stop();
|
||||
__scrollPanel.interval = window.setInterval("PopOut_Down()", 8);
|
||||
}
|
||||
else {
|
||||
PopOut_ShowScrollers(panel);
|
||||
}
|
||||
}
|
||||
function PopOut_Hide(panelId) {
|
||||
var panel = WebForm_GetElementById(panelId);
|
||||
if (panel && panel.tagName.toLowerCase() == "div") {
|
||||
panel.style.visibility = "hidden";
|
||||
panel.style.display = "none";
|
||||
panel.offset = 0;
|
||||
panel.scrollTop = 0;
|
||||
var table = WebForm_GetElementByTagName(panel, "TABLE");
|
||||
if (table) {
|
||||
WebForm_SetElementY(table, 0);
|
||||
}
|
||||
if (window.navigator && window.navigator.appName == "Microsoft Internet Explorer" &&
|
||||
!window.opera) {
|
||||
var childFrameId = panel.id + "_MenuIFrame";
|
||||
var childFrame = WebForm_GetElementById(childFrameId);
|
||||
if (childFrame) {
|
||||
childFrame.style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function PopOut_HideScrollers(panel) {
|
||||
if (panel && panel.style) {
|
||||
var up = WebForm_GetElementById(panel.id + "Up");
|
||||
var dn = WebForm_GetElementById(panel.id + "Dn");
|
||||
if (up) {
|
||||
up.style.visibility = "hidden";
|
||||
up.style.display = "none";
|
||||
}
|
||||
if (dn) {
|
||||
dn.style.visibility = "hidden";
|
||||
dn.style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
function PopOut_Position(panel, hideScrollers) {
|
||||
if (window.opera) {
|
||||
panel.parentNode.removeChild(panel);
|
||||
document.forms[0].appendChild(panel);
|
||||
}
|
||||
var rel = WebForm_GetElementById(panel.rel);
|
||||
var relTable = WebForm_GetElementByTagName(rel, "TABLE");
|
||||
var relCoordinates = WebForm_GetElementPosition(relTable ? relTable : rel);
|
||||
var panelCoordinates = WebForm_GetElementPosition(panel);
|
||||
var panelHeight = ((typeof(panel.physicalHeight) != "undefined") && (panel.physicalHeight != null)) ?
|
||||
panel.physicalHeight :
|
||||
panelCoordinates.height;
|
||||
panel.physicalHeight = panelHeight;
|
||||
var panelParentCoordinates;
|
||||
if (panel.offsetParent) {
|
||||
panelParentCoordinates = WebForm_GetElementPosition(panel.offsetParent);
|
||||
}
|
||||
else {
|
||||
panelParentCoordinates = new Object();
|
||||
panelParentCoordinates.x = 0;
|
||||
panelParentCoordinates.y = 0;
|
||||
}
|
||||
var overflowElement = WebForm_GetElementById("__overFlowElement");
|
||||
if (!overflowElement) {
|
||||
overflowElement = document.createElement("img");
|
||||
overflowElement.id="__overFlowElement";
|
||||
WebForm_SetElementWidth(overflowElement, 1);
|
||||
document.body.appendChild(overflowElement);
|
||||
}
|
||||
WebForm_SetElementHeight(overflowElement, panelHeight + relCoordinates.y + parseInt(panel.y ? panel.y : 0));
|
||||
overflowElement.style.visibility = "visible";
|
||||
overflowElement.style.display = "inline";
|
||||
var clientHeight = 0;
|
||||
var clientWidth = 0;
|
||||
if (window.innerHeight) {
|
||||
clientHeight = window.innerHeight;
|
||||
clientWidth = window.innerWidth;
|
||||
}
|
||||
else if (document.documentElement && document.documentElement.clientHeight) {
|
||||
clientHeight = document.documentElement.clientHeight;
|
||||
clientWidth = document.documentElement.clientWidth;
|
||||
}
|
||||
else if (document.body && document.body.clientHeight) {
|
||||
clientHeight = document.body.clientHeight;
|
||||
clientWidth = document.body.clientWidth;
|
||||
}
|
||||
var scrollTop = 0;
|
||||
var scrollLeft = 0;
|
||||
if (typeof(window.pageYOffset) != "undefined") {
|
||||
scrollTop = window.pageYOffset;
|
||||
scrollLeft = window.pageXOffset;
|
||||
}
|
||||
else if (document.documentElement && (typeof(document.documentElement.scrollTop) != "undefined")) {
|
||||
scrollTop = document.documentElement.scrollTop;
|
||||
scrollLeft = document.documentElement.scrollLeft;
|
||||
}
|
||||
else if (document.body && (typeof(document.body.scrollTop) != "undefined")) {
|
||||
scrollTop = document.body.scrollTop;
|
||||
scrollLeft = document.body.scrollLeft;
|
||||
}
|
||||
overflowElement.style.visibility = "hidden";
|
||||
overflowElement.style.display = "none";
|
||||
var bottomWindowBorder = clientHeight + scrollTop;
|
||||
var rightWindowBorder = clientWidth + scrollLeft;
|
||||
var position = panel.pos;
|
||||
if ((typeof(position) == "undefined") || (position == null) || (position == "")) {
|
||||
position = (WebForm_GetElementDir(rel) == "rtl" ? "middleleft" : "middleright");
|
||||
}
|
||||
position = position.toLowerCase();
|
||||
var y = relCoordinates.y + parseInt(panel.y ? panel.y : 0) - panelParentCoordinates.y;
|
||||
var borderParent = (rel && rel.parentNode && rel.parentNode.parentNode && rel.parentNode.parentNode.parentNode
|
||||
&& rel.parentNode.parentNode.parentNode.tagName.toLowerCase() == "div") ?
|
||||
rel.parentNode.parentNode.parentNode : null;
|
||||
WebForm_SetElementY(panel, y);
|
||||
PopOut_SetPanelHeight(panel, panelHeight, true);
|
||||
var clip = false;
|
||||
var overflow;
|
||||
if (position.indexOf("top") != -1) {
|
||||
y -= panelHeight;
|
||||
WebForm_SetElementY(panel, y);
|
||||
if (y < -panelParentCoordinates.y) {
|
||||
y = -panelParentCoordinates.y;
|
||||
WebForm_SetElementY(panel, y);
|
||||
if (panelHeight > clientHeight - 2) {
|
||||
clip = true;
|
||||
PopOut_SetPanelHeight(panel, clientHeight - 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (position.indexOf("bottom") != -1) {
|
||||
y += relCoordinates.height;
|
||||
WebForm_SetElementY(panel, y);
|
||||
}
|
||||
overflow = y + panelParentCoordinates.y + panelHeight - bottomWindowBorder;
|
||||
if (overflow > 0) {
|
||||
y -= overflow;
|
||||
WebForm_SetElementY(panel, y);
|
||||
if (y < -panelParentCoordinates.y) {
|
||||
y = 2 - panelParentCoordinates.y + scrollTop;
|
||||
WebForm_SetElementY(panel, y);
|
||||
clip = true;
|
||||
PopOut_SetPanelHeight(panel, clientHeight - 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!clip) {
|
||||
PopOut_SetPanelHeight(panel, panel.clippedHeight, true);
|
||||
}
|
||||
var panelParentOffsetY = 0;
|
||||
if (panel.offsetParent) {
|
||||
panelParentOffsetY = WebForm_GetElementPosition(panel.offsetParent).y;
|
||||
}
|
||||
var panelY = ((typeof(panel.originY) != "undefined") && (panel.originY != null)) ?
|
||||
panel.originY :
|
||||
y - panelParentOffsetY;
|
||||
panel.originY = panelY;
|
||||
if (!hideScrollers) {
|
||||
PopOut_ShowScrollers(panel);
|
||||
}
|
||||
else {
|
||||
PopOut_HideScrollers(panel);
|
||||
}
|
||||
var x = relCoordinates.x + parseInt(panel.x ? panel.x : 0) - panelParentCoordinates.x;
|
||||
if (borderParent && borderParent.clientLeft) {
|
||||
x += 2 * borderParent.clientLeft;
|
||||
}
|
||||
WebForm_SetElementX(panel, x);
|
||||
if (position.indexOf("left") != -1) {
|
||||
x -= panelCoordinates.width;
|
||||
WebForm_SetElementX(panel, x);
|
||||
if (x < -panelParentCoordinates.x) {
|
||||
WebForm_SetElementX(panel, -panelParentCoordinates.x);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (position.indexOf("right") != -1) {
|
||||
x += relCoordinates.width;
|
||||
WebForm_SetElementX(panel, x);
|
||||
}
|
||||
overflow = x + panelParentCoordinates.x + panelCoordinates.width - rightWindowBorder;
|
||||
if (overflow > 0) {
|
||||
if (position.indexOf("bottom") == -1 && relCoordinates.x > panelCoordinates.width) {
|
||||
x -= relCoordinates.width + panelCoordinates.width;
|
||||
}
|
||||
else {
|
||||
x -= overflow;
|
||||
}
|
||||
WebForm_SetElementX(panel, x);
|
||||
if (x < -panelParentCoordinates.x) {
|
||||
WebForm_SetElementX(panel, -panelParentCoordinates.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function PopOut_Scroll(panel, offsetDelta) {
|
||||
var table = WebForm_GetElementByTagName(panel, "TABLE");
|
||||
if (!table) return;
|
||||
table.style.position = "relative";
|
||||
var tableY = (table.style.top ? parseInt(table.style.top) : 0);
|
||||
panel.offset += offsetDelta;
|
||||
WebForm_SetElementY(table, tableY - offsetDelta);
|
||||
}
|
||||
function PopOut_SetPanelHeight(element, height, doNotClip) {
|
||||
if (element && element.style) {
|
||||
var size = WebForm_GetElementPosition(element);
|
||||
element.physicalWidth = size.width;
|
||||
element.clippedHeight = height;
|
||||
WebForm_SetElementHeight(element, height - (element.clientTop ? (2 * element.clientTop) : 0));
|
||||
if (doNotClip && element.style) {
|
||||
element.style.clip = "rect(auto auto auto auto)";
|
||||
}
|
||||
else {
|
||||
PopOut_Clip(element, 0, height);
|
||||
}
|
||||
}
|
||||
}
|
||||
function PopOut_Show(panelId, hideScrollers, data) {
|
||||
var panel = WebForm_GetElementById(panelId);
|
||||
if (panel && panel.tagName.toLowerCase() == "div") {
|
||||
panel.style.visibility = "visible";
|
||||
panel.style.display = "inline";
|
||||
if (!panel.offset || hideScrollers) {
|
||||
panel.scrollTop = 0;
|
||||
panel.offset = 0;
|
||||
var table = WebForm_GetElementByTagName(panel, "TABLE");
|
||||
if (table) {
|
||||
WebForm_SetElementY(table, 0);
|
||||
}
|
||||
}
|
||||
PopOut_Position(panel, hideScrollers);
|
||||
var z = 1;
|
||||
var isIE = window.navigator && window.navigator.appName == "Microsoft Internet Explorer" && !window.opera;
|
||||
if (isIE && data) {
|
||||
var childFrameId = panel.id + "_MenuIFrame";
|
||||
var childFrame = WebForm_GetElementById(childFrameId);
|
||||
var parent = panel.offsetParent;
|
||||
if (!childFrame) {
|
||||
childFrame = document.createElement("iframe");
|
||||
childFrame.id = childFrameId;
|
||||
childFrame.src = (data.iframeUrl ? data.iframeUrl : "about:blank");
|
||||
childFrame.style.position = "absolute";
|
||||
childFrame.style.display = "none";
|
||||
childFrame.scrolling = "no";
|
||||
childFrame.frameBorder = "0";
|
||||
if (parent.tagName.toLowerCase() == "html") {
|
||||
document.body.appendChild(childFrame);
|
||||
}
|
||||
else {
|
||||
parent.appendChild(childFrame);
|
||||
}
|
||||
}
|
||||
var pos = WebForm_GetElementPosition(panel);
|
||||
var parentPos = WebForm_GetElementPosition(parent);
|
||||
WebForm_SetElementX(childFrame, pos.x - parentPos.x);
|
||||
WebForm_SetElementY(childFrame, pos.y - parentPos.y);
|
||||
WebForm_SetElementWidth(childFrame, pos.width);
|
||||
WebForm_SetElementHeight(childFrame, pos.height);
|
||||
childFrame.style.display = "block";
|
||||
if (panel.currentStyle && panel.currentStyle.zIndex && panel.currentStyle.zIndex != "auto") {
|
||||
z = panel.currentStyle.zIndex;
|
||||
}
|
||||
else if (panel.style.zIndex) {
|
||||
z = panel.style.zIndex;
|
||||
}
|
||||
}
|
||||
panel.style.zIndex = z;
|
||||
}
|
||||
}
|
||||
function PopOut_ShowScrollers(panel) {
|
||||
if (panel && panel.style) {
|
||||
var up = WebForm_GetElementById(panel.id + "Up");
|
||||
var dn = WebForm_GetElementById(panel.id + "Dn");
|
||||
var cnt = 0;
|
||||
if (up && dn) {
|
||||
if (panel.offset && panel.offset > 0) {
|
||||
up.style.visibility = "visible";
|
||||
up.style.display = "inline";
|
||||
cnt++;
|
||||
if (panel.clientWidth) {
|
||||
WebForm_SetElementWidth(up, panel.clientWidth
|
||||
- (up.clientLeft ? (2 * up.clientLeft) : 0));
|
||||
}
|
||||
WebForm_SetElementY(up, 0);
|
||||
}
|
||||
else {
|
||||
up.style.visibility = "hidden";
|
||||
up.style.display = "none";
|
||||
}
|
||||
if (panel.offset + panel.clippedHeight + 2 <= panel.physicalHeight) {
|
||||
dn.style.visibility = "visible";
|
||||
dn.style.display = "inline";
|
||||
cnt++;
|
||||
if (panel.clientWidth) {
|
||||
WebForm_SetElementWidth(dn, panel.clientWidth
|
||||
- (dn.clientLeft ? (2 * dn.clientLeft) : 0));
|
||||
}
|
||||
WebForm_SetElementY(dn, panel.clippedHeight - WebForm_GetElementPosition(dn).height
|
||||
- (panel.clientTop ? (2 * panel.clientTop) : 0));
|
||||
}
|
||||
else {
|
||||
dn.style.visibility = "hidden";
|
||||
dn.style.display = "none";
|
||||
}
|
||||
if (cnt == 0) {
|
||||
panel.style.clip = "rect(auto auto auto auto)";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function PopOut_Stop() {
|
||||
if (__scrollPanel && __scrollPanel.interval) {
|
||||
window.clearInterval(__scrollPanel.interval);
|
||||
}
|
||||
Menu_RestoreInterval();
|
||||
}
|
||||
function PopOut_Up(scroller) {
|
||||
Menu_ClearInterval();
|
||||
var panel;
|
||||
if (scroller) {
|
||||
panel = scroller.parentNode
|
||||
}
|
||||
else {
|
||||
panel = __scrollPanel;
|
||||
}
|
||||
if (panel && panel.offset && panel.offset > 0) {
|
||||
PopOut_Scroll(panel, -2);
|
||||
__scrollPanel = panel;
|
||||
PopOut_ShowScrollers(panel);
|
||||
PopOut_Stop();
|
||||
__scrollPanel.interval = window.setInterval("PopOut_Up()", 8);
|
||||
}
|
||||
}
|
||||
697
WebFormApp/Scripts/WebForms/MenuStandards.js
Normal file
697
WebFormApp/Scripts/WebForms/MenuStandards.js
Normal file
@@ -0,0 +1,697 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MenuStandards.js
|
||||
if (!window.Sys) { window.Sys = {}; }
|
||||
if (!Sys.WebForms) { Sys.WebForms = {}; }
|
||||
Sys.WebForms.Menu = function(options) {
|
||||
this.items = [];
|
||||
this.depth = options.depth || 1;
|
||||
this.parentMenuItem = options.parentMenuItem;
|
||||
this.element = Sys.WebForms.Menu._domHelper.getElement(options.element);
|
||||
if (this.element.tagName === 'DIV') {
|
||||
var containerElement = this.element;
|
||||
this.element = Sys.WebForms.Menu._domHelper.firstChild(containerElement);
|
||||
this.element.tabIndex = options.tabIndex || 0;
|
||||
options.element = containerElement;
|
||||
options.menu = this;
|
||||
this.container = new Sys.WebForms._MenuContainer(options);
|
||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left");
|
||||
}
|
||||
else {
|
||||
this.container = options.container;
|
||||
this.keyMap = options.keyMap;
|
||||
}
|
||||
Sys.WebForms.Menu._elementObjectMapper.map(this.element, this);
|
||||
if (this.parentMenuItem && this.parentMenuItem.parentMenu) {
|
||||
this.parentMenu = this.parentMenuItem.parentMenu;
|
||||
this.rootMenu = this.parentMenu.rootMenu;
|
||||
if (!this.element.id) {
|
||||
this.element.id = (this.container.element.id || 'menu') + ':submenu:' + Sys.WebForms.Menu._elementObjectMapper._computedId;
|
||||
}
|
||||
if (this.depth > this.container.staticDisplayLevels) {
|
||||
this.displayMode = "dynamic";
|
||||
this.element.style.display = "none";
|
||||
this.element.style.position = "absolute";
|
||||
if (this.rootMenu && this.container.orientation === 'horizontal' && this.parentMenu.isStatic()) {
|
||||
this.element.style.top = "100%";
|
||||
if (this.container.rightToLeft) {
|
||||
this.element.style.right = "0px";
|
||||
}
|
||||
else {
|
||||
this.element.style.left = "0px";
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.element.style.top = "0px";
|
||||
if (this.container.rightToLeft) {
|
||||
this.element.style.right = "100%";
|
||||
}
|
||||
else {
|
||||
this.element.style.left = "100%";
|
||||
}
|
||||
}
|
||||
if (this.container.rightToLeft) {
|
||||
this.keyMap = Sys.WebForms.Menu._keyboardMapping.verticalRtl;
|
||||
}
|
||||
else {
|
||||
this.keyMap = Sys.WebForms.Menu._keyboardMapping.vertical;
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.displayMode = "static";
|
||||
this.element.style.display = "block";
|
||||
if (this.container.orientation === 'horizontal') {
|
||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left");
|
||||
}
|
||||
}
|
||||
}
|
||||
Sys.WebForms.Menu._domHelper.appendCssClass(this.element, this.displayMode);
|
||||
var children = this.element.childNodes;
|
||||
var count = children.length;
|
||||
for (var i = 0; i < count; i++) {
|
||||
var node = children[i];
|
||||
if (node.nodeType !== 1) {
|
||||
continue;
|
||||
}
|
||||
var topLevelMenuItem = null;
|
||||
if (this.parentMenuItem) {
|
||||
topLevelMenuItem = this.parentMenuItem.topLevelMenuItem;
|
||||
}
|
||||
var menuItem = new Sys.WebForms.MenuItem(this, node, topLevelMenuItem);
|
||||
var previousMenuItem = this.items[this.items.length - 1];
|
||||
if (previousMenuItem) {
|
||||
menuItem.previousSibling = previousMenuItem;
|
||||
previousMenuItem.nextSibling = menuItem;
|
||||
}
|
||||
this.items[this.items.length] = menuItem;
|
||||
}
|
||||
};
|
||||
Sys.WebForms.Menu.prototype = {
|
||||
blur: function() { if (this.container) this.container.blur(); },
|
||||
collapse: function() {
|
||||
this.each(function(menuItem) {
|
||||
menuItem.hover(false);
|
||||
menuItem.blur();
|
||||
var childMenu = menuItem.childMenu;
|
||||
if (childMenu) {
|
||||
childMenu.collapse();
|
||||
}
|
||||
});
|
||||
this.hide();
|
||||
},
|
||||
doDispose: function() { this.each(function(item) { item.doDispose(); }); },
|
||||
each: function(fn) {
|
||||
var count = this.items.length;
|
||||
for (var i = 0; i < count; i++) {
|
||||
fn(this.items[i]);
|
||||
}
|
||||
},
|
||||
firstChild: function() { return this.items[0]; },
|
||||
focus: function() { if (this.container) this.container.focus(); },
|
||||
get_displayed: function() { return this.element.style.display !== 'none'; },
|
||||
get_focused: function() {
|
||||
if (this.container) {
|
||||
return this.container.focused;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
handleKeyPress: function(keyCode) {
|
||||
if (this.keyMap.contains(keyCode)) {
|
||||
if (this.container.focusedMenuItem) {
|
||||
this.container.focusedMenuItem.navigate(keyCode);
|
||||
return;
|
||||
}
|
||||
var firstChild = this.firstChild();
|
||||
if (firstChild) {
|
||||
this.container.navigateTo(firstChild);
|
||||
}
|
||||
}
|
||||
},
|
||||
hide: function() {
|
||||
if (!this.get_displayed()) {
|
||||
return;
|
||||
}
|
||||
this.each(function(item) {
|
||||
if (item.childMenu) {
|
||||
item.childMenu.hide();
|
||||
}
|
||||
});
|
||||
if (!this.isRoot()) {
|
||||
if (this.get_focused()) {
|
||||
this.container.navigateTo(this.parentMenuItem);
|
||||
}
|
||||
this.element.style.display = 'none';
|
||||
}
|
||||
},
|
||||
isRoot: function() { return this.rootMenu === this; },
|
||||
isStatic: function() { return this.displayMode === 'static'; },
|
||||
lastChild: function() { return this.items[this.items.length - 1]; },
|
||||
show: function() { this.element.style.display = 'block'; }
|
||||
};
|
||||
if (Sys.WebForms.Menu.registerClass) {
|
||||
Sys.WebForms.Menu.registerClass('Sys.WebForms.Menu');
|
||||
}
|
||||
Sys.WebForms.MenuItem = function(parentMenu, listElement, topLevelMenuItem) {
|
||||
this.keyMap = parentMenu.keyMap;
|
||||
this.parentMenu = parentMenu;
|
||||
this.container = parentMenu.container;
|
||||
this.element = listElement;
|
||||
this.topLevelMenuItem = topLevelMenuItem || this;
|
||||
this._anchor = Sys.WebForms.Menu._domHelper.firstChild(listElement);
|
||||
while (this._anchor && this._anchor.tagName !== 'A') {
|
||||
this._anchor = Sys.WebForms.Menu._domHelper.nextSibling(this._anchor);
|
||||
}
|
||||
if (this._anchor) {
|
||||
this._anchor.tabIndex = -1;
|
||||
var subMenu = this._anchor;
|
||||
while (subMenu && subMenu.tagName !== 'UL') {
|
||||
subMenu = Sys.WebForms.Menu._domHelper.nextSibling(subMenu);
|
||||
}
|
||||
if (subMenu) {
|
||||
this.childMenu = new Sys.WebForms.Menu({ element: subMenu, parentMenuItem: this, depth: parentMenu.depth + 1, container: this.container, keyMap: this.keyMap });
|
||||
if (!this.childMenu.isStatic()) {
|
||||
Sys.WebForms.Menu._domHelper.appendCssClass(this.element, 'has-popup');
|
||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.element, 'aria-haspopup', this.childMenu.element.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
Sys.WebForms.Menu._elementObjectMapper.map(listElement, this);
|
||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(listElement, 'role', 'menuitem');
|
||||
Sys.WebForms.Menu._domHelper.appendCssClass(listElement, parentMenu.displayMode);
|
||||
if (this._anchor) {
|
||||
Sys.WebForms.Menu._domHelper.appendCssClass(this._anchor, parentMenu.displayMode);
|
||||
}
|
||||
this.element.style.position = "relative";
|
||||
if (this.parentMenu.depth == 1 && this.container.orientation == 'horizontal') {
|
||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left");
|
||||
}
|
||||
if (!this.container.disabled) {
|
||||
Sys.WebForms.Menu._domHelper.addEvent(this.element, 'mouseover', Sys.WebForms.MenuItem._onmouseover);
|
||||
Sys.WebForms.Menu._domHelper.addEvent(this.element, 'mouseout', Sys.WebForms.MenuItem._onmouseout);
|
||||
}
|
||||
};
|
||||
Sys.WebForms.MenuItem.prototype = {
|
||||
applyUp: function(fn, condition) {
|
||||
condition = condition || function(menuItem) { return menuItem; };
|
||||
var menuItem = this;
|
||||
var lastMenuItem = null;
|
||||
while (condition(menuItem)) {
|
||||
fn(menuItem);
|
||||
lastMenuItem = menuItem;
|
||||
menuItem = menuItem.parentMenu.parentMenuItem;
|
||||
}
|
||||
return lastMenuItem;
|
||||
},
|
||||
blur: function() { this.setTabIndex(-1); },
|
||||
doDispose: function() {
|
||||
Sys.WebForms.Menu._domHelper.removeEvent(this.element, 'mouseover', Sys.WebForms.MenuItem._onmouseover);
|
||||
Sys.WebForms.Menu._domHelper.removeEvent(this.element, 'mouseout', Sys.WebForms.MenuItem._onmouseout);
|
||||
if (this.childMenu) {
|
||||
this.childMenu.doDispose();
|
||||
}
|
||||
},
|
||||
focus: function() {
|
||||
if (!this.parentMenu.get_displayed()) {
|
||||
this.parentMenu.show();
|
||||
}
|
||||
this.setTabIndex(0);
|
||||
this.container.focused = true;
|
||||
this._anchor.focus();
|
||||
},
|
||||
get_highlighted: function() { return /(^|\s)highlighted(\s|$)/.test(this._anchor.className); },
|
||||
getTabIndex: function() { return this._anchor.tabIndex; },
|
||||
highlight: function(highlighting) {
|
||||
if (highlighting) {
|
||||
this.applyUp(function(menuItem) {
|
||||
menuItem.parentMenu.parentMenuItem.highlight(true);
|
||||
},
|
||||
function(menuItem) {
|
||||
return !menuItem.parentMenu.isStatic() && menuItem.parentMenu.parentMenuItem;
|
||||
}
|
||||
);
|
||||
Sys.WebForms.Menu._domHelper.appendCssClass(this._anchor, 'highlighted');
|
||||
}
|
||||
else {
|
||||
Sys.WebForms.Menu._domHelper.removeCssClass(this._anchor, 'highlighted');
|
||||
this.setTabIndex(-1);
|
||||
}
|
||||
},
|
||||
hover: function(hovering) {
|
||||
if (hovering) {
|
||||
var currentHoveredItem = this.container.hoveredMenuItem;
|
||||
if (currentHoveredItem) {
|
||||
currentHoveredItem.hover(false);
|
||||
}
|
||||
var currentFocusedItem = this.container.focusedMenuItem;
|
||||
if (currentFocusedItem && currentFocusedItem !== this) {
|
||||
currentFocusedItem.hover(false);
|
||||
}
|
||||
this.applyUp(function(menuItem) {
|
||||
if (menuItem.childMenu && !menuItem.childMenu.get_displayed()) {
|
||||
menuItem.childMenu.show();
|
||||
}
|
||||
});
|
||||
this.container.hoveredMenuItem = this;
|
||||
this.highlight(true);
|
||||
}
|
||||
else {
|
||||
var menuItem = this;
|
||||
while (menuItem) {
|
||||
menuItem.highlight(false);
|
||||
if (menuItem.childMenu) {
|
||||
if (!menuItem.childMenu.isStatic()) {
|
||||
menuItem.childMenu.hide();
|
||||
}
|
||||
}
|
||||
menuItem = menuItem.parentMenu.parentMenuItem;
|
||||
}
|
||||
}
|
||||
},
|
||||
isSiblingOf: function(menuItem) { return menuItem.parentMenu === this.parentMenu; },
|
||||
mouseout: function() {
|
||||
var menuItem = this,
|
||||
id = this.container.pendingMouseoutId,
|
||||
disappearAfter = this.container.disappearAfter;
|
||||
if (id) {
|
||||
window.clearTimeout(id);
|
||||
}
|
||||
if (disappearAfter > -1) {
|
||||
this.container.pendingMouseoutId =
|
||||
window.setTimeout(function() { menuItem.hover(false); }, disappearAfter);
|
||||
}
|
||||
},
|
||||
mouseover: function() {
|
||||
var id = this.container.pendingMouseoutId;
|
||||
if (id) {
|
||||
window.clearTimeout(id);
|
||||
this.container.pendingMouseoutId = null;
|
||||
}
|
||||
this.hover(true);
|
||||
if (this.container.menu.get_focused()) {
|
||||
this.container.navigateTo(this);
|
||||
}
|
||||
},
|
||||
navigate: function(keyCode) {
|
||||
switch (this.keyMap[keyCode]) {
|
||||
case this.keyMap.next:
|
||||
this.navigateNext();
|
||||
break;
|
||||
case this.keyMap.previous:
|
||||
this.navigatePrevious();
|
||||
break;
|
||||
case this.keyMap.child:
|
||||
this.navigateChild();
|
||||
break;
|
||||
case this.keyMap.parent:
|
||||
this.navigateParent();
|
||||
break;
|
||||
case this.keyMap.tab:
|
||||
this.navigateOut();
|
||||
break;
|
||||
}
|
||||
},
|
||||
navigateChild: function() {
|
||||
var subMenu = this.childMenu;
|
||||
if (subMenu) {
|
||||
var firstChild = subMenu.firstChild();
|
||||
if (firstChild) {
|
||||
this.container.navigateTo(firstChild);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (this.container.orientation === 'horizontal') {
|
||||
var nextItem = this.topLevelMenuItem.nextSibling || this.topLevelMenuItem.parentMenu.firstChild();
|
||||
if (nextItem == this.topLevelMenuItem) {
|
||||
return;
|
||||
}
|
||||
this.topLevelMenuItem.childMenu.hide();
|
||||
this.container.navigateTo(nextItem);
|
||||
if (nextItem.childMenu) {
|
||||
this.container.navigateTo(nextItem.childMenu.firstChild());
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
navigateNext: function() {
|
||||
if (this.childMenu) {
|
||||
this.childMenu.hide();
|
||||
}
|
||||
var nextMenuItem = this.nextSibling;
|
||||
if (!nextMenuItem && this.parentMenu.isRoot()) {
|
||||
nextMenuItem = this.parentMenu.parentMenuItem;
|
||||
if (nextMenuItem) {
|
||||
nextMenuItem = nextMenuItem.nextSibling;
|
||||
}
|
||||
}
|
||||
if (!nextMenuItem) {
|
||||
nextMenuItem = this.parentMenu.firstChild();
|
||||
}
|
||||
if (nextMenuItem) {
|
||||
this.container.navigateTo(nextMenuItem);
|
||||
}
|
||||
},
|
||||
navigateOut: function() {
|
||||
this.parentMenu.blur();
|
||||
},
|
||||
navigateParent: function() {
|
||||
var parentMenu = this.parentMenu,
|
||||
horizontal = this.container.orientation === 'horizontal';
|
||||
if (!parentMenu) return;
|
||||
if (horizontal && this.childMenu && parentMenu.isRoot()) {
|
||||
this.navigateChild();
|
||||
return;
|
||||
}
|
||||
if (parentMenu.parentMenuItem && !parentMenu.isRoot()) {
|
||||
if (horizontal && this.parentMenu.depth === 2) {
|
||||
var previousItem = this.parentMenu.parentMenuItem.previousSibling;
|
||||
if (!previousItem) {
|
||||
previousItem = this.parentMenu.rootMenu.lastChild();
|
||||
}
|
||||
this.topLevelMenuItem.childMenu.hide();
|
||||
this.container.navigateTo(previousItem);
|
||||
if (previousItem.childMenu) {
|
||||
this.container.navigateTo(previousItem.childMenu.firstChild());
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.parentMenu.hide();
|
||||
}
|
||||
}
|
||||
},
|
||||
navigatePrevious: function() {
|
||||
if (this.childMenu) {
|
||||
this.childMenu.hide();
|
||||
}
|
||||
var previousMenuItem = this.previousSibling;
|
||||
if (previousMenuItem) {
|
||||
var childMenu = previousMenuItem.childMenu;
|
||||
if (childMenu && childMenu.isRoot()) {
|
||||
previousMenuItem = childMenu.lastChild();
|
||||
}
|
||||
}
|
||||
if (!previousMenuItem && this.parentMenu.isRoot()) {
|
||||
previousMenuItem = this.parentMenu.parentMenuItem;
|
||||
}
|
||||
if (!previousMenuItem) {
|
||||
previousMenuItem = this.parentMenu.lastChild();
|
||||
}
|
||||
if (previousMenuItem) {
|
||||
this.container.navigateTo(previousMenuItem);
|
||||
}
|
||||
},
|
||||
setTabIndex: function(index) { if (this._anchor) this._anchor.tabIndex = index; }
|
||||
};
|
||||
Sys.WebForms.MenuItem._onmouseout = function(e) {
|
||||
var menuItem = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this);
|
||||
if (!menuItem) {
|
||||
return;
|
||||
}
|
||||
menuItem.mouseout();
|
||||
Sys.WebForms.Menu._domHelper.cancelEvent(e);
|
||||
};
|
||||
Sys.WebForms.MenuItem._onmouseover = function(e) {
|
||||
var menuItem = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this);
|
||||
if (!menuItem) {
|
||||
return;
|
||||
}
|
||||
menuItem.mouseover();
|
||||
Sys.WebForms.Menu._domHelper.cancelEvent(e);
|
||||
};
|
||||
Sys.WebForms.Menu._domHelper = {
|
||||
addEvent: function(element, eventName, fn, useCapture) {
|
||||
if (element.addEventListener) {
|
||||
element.addEventListener(eventName, fn, !!useCapture);
|
||||
}
|
||||
else {
|
||||
element['on' + eventName] = fn;
|
||||
}
|
||||
},
|
||||
appendAttributeValue: function(element, name, value) {
|
||||
this.updateAttributeValue('append', element, name, value);
|
||||
},
|
||||
appendCssClass: function(element, value) {
|
||||
this.updateClassName('append', element, name, value);
|
||||
},
|
||||
appendString: function(getString, setString, value) {
|
||||
var currentValue = getString();
|
||||
if (!currentValue) {
|
||||
setString(value);
|
||||
return;
|
||||
}
|
||||
var regex = this._regexes.getRegex('(^| )' + value + '($| )');
|
||||
if (regex.test(currentValue)) {
|
||||
return;
|
||||
}
|
||||
setString(currentValue + ' ' + value);
|
||||
},
|
||||
cancelEvent: function(e) {
|
||||
var event = e || window.event;
|
||||
if (event) {
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
}
|
||||
},
|
||||
contains: function(ancestor, descendant) {
|
||||
for (; descendant && (descendant !== ancestor); descendant = descendant.parentNode) { }
|
||||
return !!descendant;
|
||||
},
|
||||
firstChild: function(element) {
|
||||
var child = element.firstChild;
|
||||
if (child && child.nodeType !== 1) {
|
||||
child = this.nextSibling(child);
|
||||
}
|
||||
return child;
|
||||
},
|
||||
getElement: function(elementOrId) { return typeof elementOrId === 'string' ? document.getElementById(elementOrId) : elementOrId; },
|
||||
getElementDirection: function(element) {
|
||||
if (element) {
|
||||
if (element.dir) {
|
||||
return element.dir;
|
||||
}
|
||||
return this.getElementDirection(element.parentNode);
|
||||
}
|
||||
return "ltr";
|
||||
},
|
||||
getKeyCode: function(event) { return event.keyCode || event.charCode || 0; },
|
||||
insertAfter: function(element, elementToInsert) {
|
||||
var next = element.nextSibling;
|
||||
if (next) {
|
||||
element.parentNode.insertBefore(elementToInsert, next);
|
||||
}
|
||||
else if (element.parentNode) {
|
||||
element.parentNode.appendChild(elementToInsert);
|
||||
}
|
||||
},
|
||||
nextSibling: function(element) {
|
||||
var sibling = element.nextSibling;
|
||||
while (sibling) {
|
||||
if (sibling.nodeType === 1) {
|
||||
return sibling;
|
||||
}
|
||||
sibling = sibling.nextSibling;
|
||||
}
|
||||
},
|
||||
removeAttributeValue: function(element, name, value) {
|
||||
this.updateAttributeValue('remove', element, name, value);
|
||||
},
|
||||
removeCssClass: function(element, value) {
|
||||
this.updateClassName('remove', element, name, value);
|
||||
},
|
||||
removeEvent: function(element, eventName, fn, useCapture) {
|
||||
if (element.removeEventListener) {
|
||||
element.removeEventListener(eventName, fn, !!useCapture);
|
||||
}
|
||||
else if (element.detachEvent) {
|
||||
element.detachEvent('on' + eventName, fn)
|
||||
}
|
||||
element['on' + eventName] = null;
|
||||
},
|
||||
removeString: function(getString, setString, valueToRemove) {
|
||||
var currentValue = getString();
|
||||
if (currentValue) {
|
||||
var regex = this._regexes.getRegex('(\\s|\\b)' + valueToRemove + '$|\\b' + valueToRemove + '\\s+');
|
||||
setString(currentValue.replace(regex, ''));
|
||||
}
|
||||
},
|
||||
setFloat: function(element, direction) {
|
||||
element.style.styleFloat = direction;
|
||||
element.style.cssFloat = direction;
|
||||
},
|
||||
updateAttributeValue: function(operation, element, name, value) {
|
||||
this[operation + 'String'](
|
||||
function() {
|
||||
return element.getAttribute(name);
|
||||
},
|
||||
function(newValue) {
|
||||
element.setAttribute(name, newValue);
|
||||
},
|
||||
value
|
||||
);
|
||||
},
|
||||
updateClassName: function(operation, element, name, value) {
|
||||
this[operation + 'String'](
|
||||
function() {
|
||||
return element.className;
|
||||
},
|
||||
function(newValue) {
|
||||
element.className = newValue;
|
||||
},
|
||||
value
|
||||
);
|
||||
},
|
||||
_regexes: {
|
||||
getRegex: function(pattern) {
|
||||
var regex = this[pattern];
|
||||
if (!regex) {
|
||||
this[pattern] = regex = new RegExp(pattern);
|
||||
}
|
||||
return regex;
|
||||
}
|
||||
}
|
||||
};
|
||||
Sys.WebForms.Menu._elementObjectMapper = {
|
||||
_computedId: 0,
|
||||
_mappings: {},
|
||||
_mappingIdName: 'Sys.WebForms.Menu.Mapping',
|
||||
getMappedObject: function(element) {
|
||||
var id = element[this._mappingIdName];
|
||||
if (id) {
|
||||
return this._mappings[this._mappingIdName + ':' + id];
|
||||
}
|
||||
},
|
||||
map: function(element, theObject) {
|
||||
var mappedObject = element[this._mappingIdName];
|
||||
if (mappedObject === theObject) {
|
||||
return;
|
||||
}
|
||||
var objectId = element[this._mappingIdName] || element.id || '%' + (++this._computedId);
|
||||
element[this._mappingIdName] = objectId;
|
||||
this._mappings[this._mappingIdName + ':' + objectId] = theObject;
|
||||
theObject.mappingId = objectId;
|
||||
}
|
||||
};
|
||||
Sys.WebForms.Menu._keyboardMapping = new (function() {
|
||||
var LEFT_ARROW = 37;
|
||||
var UP_ARROW = 38;
|
||||
var RIGHT_ARROW = 39;
|
||||
var DOWN_ARROW = 40;
|
||||
var TAB = 9;
|
||||
var ESCAPE = 27;
|
||||
this.vertical = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||
this.vertical[DOWN_ARROW] = this.vertical.next;
|
||||
this.vertical[UP_ARROW] = this.vertical.previous;
|
||||
this.vertical[RIGHT_ARROW] = this.vertical.child;
|
||||
this.vertical[LEFT_ARROW] = this.vertical.parent;
|
||||
this.vertical[TAB] = this.vertical[ESCAPE] = this.vertical.tab;
|
||||
this.verticalRtl = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||
this.verticalRtl[DOWN_ARROW] = this.verticalRtl.next;
|
||||
this.verticalRtl[UP_ARROW] = this.verticalRtl.previous;
|
||||
this.verticalRtl[LEFT_ARROW] = this.verticalRtl.child;
|
||||
this.verticalRtl[RIGHT_ARROW] = this.verticalRtl.parent;
|
||||
this.verticalRtl[TAB] = this.verticalRtl[ESCAPE] = this.verticalRtl.tab;
|
||||
this.horizontal = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||
this.horizontal[RIGHT_ARROW] = this.horizontal.next;
|
||||
this.horizontal[LEFT_ARROW] = this.horizontal.previous;
|
||||
this.horizontal[DOWN_ARROW] = this.horizontal.child;
|
||||
this.horizontal[UP_ARROW] = this.horizontal.parent;
|
||||
this.horizontal[TAB] = this.horizontal[ESCAPE] = this.horizontal.tab;
|
||||
this.horizontalRtl = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||
this.horizontalRtl[RIGHT_ARROW] = this.horizontalRtl.previous;
|
||||
this.horizontalRtl[LEFT_ARROW] = this.horizontalRtl.next;
|
||||
this.horizontalRtl[DOWN_ARROW] = this.horizontalRtl.child;
|
||||
this.horizontalRtl[UP_ARROW] = this.horizontalRtl.parent;
|
||||
this.horizontalRtl[TAB] = this.horizontalRtl[ESCAPE] = this.horizontalRtl.tab;
|
||||
this.horizontal.contains = this.horizontalRtl.contains = this.vertical.contains = this.verticalRtl.contains = function(keycode) {
|
||||
return this[keycode] != null;
|
||||
};
|
||||
})();
|
||||
Sys.WebForms._MenuContainer = function(options) {
|
||||
this.focused = false;
|
||||
this.disabled = options.disabled;
|
||||
this.staticDisplayLevels = options.staticDisplayLevels || 1;
|
||||
this.element = options.element;
|
||||
this.orientation = options.orientation || 'vertical';
|
||||
this.disappearAfter = options.disappearAfter;
|
||||
this.rightToLeft = Sys.WebForms.Menu._domHelper.getElementDirection(this.element) === 'rtl';
|
||||
Sys.WebForms.Menu._elementObjectMapper.map(this.element, this);
|
||||
this.menu = options.menu;
|
||||
this.menu.rootMenu = this.menu;
|
||||
this.menu.displayMode = 'static';
|
||||
this.menu.element.style.position = 'relative';
|
||||
this.menu.element.style.width = 'auto';
|
||||
if (this.orientation === 'vertical') {
|
||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.menu.element, 'role', 'menu');
|
||||
if (this.rightToLeft) {
|
||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.verticalRtl;
|
||||
}
|
||||
else {
|
||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.vertical;
|
||||
}
|
||||
}
|
||||
else {
|
||||
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.menu.element, 'role', 'menubar');
|
||||
if (this.rightToLeft) {
|
||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.horizontalRtl;
|
||||
}
|
||||
else {
|
||||
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.horizontal;
|
||||
}
|
||||
}
|
||||
var floatBreak = document.createElement('div');
|
||||
floatBreak.style.clear = this.rightToLeft ? "right" : "left";
|
||||
this.element.appendChild(floatBreak);
|
||||
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.rightToLeft ? "right" : "left");
|
||||
Sys.WebForms.Menu._domHelper.insertAfter(this.element, floatBreak);
|
||||
if (!this.disabled) {
|
||||
Sys.WebForms.Menu._domHelper.addEvent(this.menu.element, 'focus', this._onfocus, true);
|
||||
Sys.WebForms.Menu._domHelper.addEvent(this.menu.element, 'keydown', this._onkeydown);
|
||||
var menuContainer = this;
|
||||
this.element.dispose = function() {
|
||||
if (menuContainer.element.dispose) {
|
||||
menuContainer.element.dispose = null;
|
||||
Sys.WebForms.Menu._domHelper.removeEvent(menuContainer.menu.element, 'focus', menuContainer._onfocus, true);
|
||||
Sys.WebForms.Menu._domHelper.removeEvent(menuContainer.menu.element, 'keydown', menuContainer._onkeydown);
|
||||
menuContainer.menu.doDispose();
|
||||
}
|
||||
};
|
||||
Sys.WebForms.Menu._domHelper.addEvent(window, 'unload', function() {
|
||||
if (menuContainer.element.dispose) {
|
||||
menuContainer.element.dispose();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
Sys.WebForms._MenuContainer.prototype = {
|
||||
blur: function() {
|
||||
this.focused = false;
|
||||
this.isBlurring = false;
|
||||
this.menu.collapse();
|
||||
this.focusedMenuItem = null;
|
||||
},
|
||||
focus: function(e) { this.focused = true; },
|
||||
navigateTo: function(menuItem) {
|
||||
if (this.focusedMenuItem && this.focusedMenuItem !== this) {
|
||||
this.focusedMenuItem.highlight(false);
|
||||
}
|
||||
menuItem.highlight(true);
|
||||
menuItem.focus();
|
||||
this.focusedMenuItem = menuItem;
|
||||
},
|
||||
_onfocus: function(e) {
|
||||
var event = e || window.event;
|
||||
if (event.srcElement && this) {
|
||||
if (Sys.WebForms.Menu._domHelper.contains(this.element, event.srcElement)) {
|
||||
if (!this.focused) {
|
||||
this.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_onkeydown: function(e) {
|
||||
var thisMenu = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this);
|
||||
var keyCode = Sys.WebForms.Menu._domHelper.getKeyCode(e || window.event);
|
||||
if (thisMenu) {
|
||||
thisMenu.handleKeyPress(keyCode);
|
||||
}
|
||||
}
|
||||
};
|
||||
280
WebFormApp/Scripts/WebForms/SmartNav.js
Normal file
280
WebFormApp/Scripts/WebForms/SmartNav.js
Normal file
@@ -0,0 +1,280 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/SmartNav.js
|
||||
var snSrc;
|
||||
if ((typeof(window.__smartNav) == "undefined") || (window.__smartNav == null))
|
||||
{
|
||||
window.__smartNav = new Object();
|
||||
window.__smartNav.update = function()
|
||||
{
|
||||
var sn = window.__smartNav;
|
||||
var fd;
|
||||
document.detachEvent("onstop", sn.stopHif);
|
||||
sn.inPost = false;
|
||||
try { fd = frames["__hifSmartNav"].document; } catch (e) {return;}
|
||||
var fdr = fd.getElementsByTagName("asp_smartnav_rdir");
|
||||
if (fdr.length > 0)
|
||||
{
|
||||
if ((typeof(sn.sHif) == "undefined") || (sn.sHif == null))
|
||||
{
|
||||
sn.sHif = document.createElement("IFRAME");
|
||||
sn.sHif.name = "__hifSmartNav";
|
||||
sn.sHif.style.display = "none";
|
||||
sn.sHif.src = snSrc;
|
||||
}
|
||||
try {window.location = fdr[0].url;} catch (e) {};
|
||||
return;
|
||||
}
|
||||
var fdurl = fd.location.href;
|
||||
var index = fdurl.indexOf(snSrc);
|
||||
if ((index != -1 && index == fdurl.length-snSrc.length)
|
||||
|| fdurl == "about:blank")
|
||||
return;
|
||||
var fdurlb = fdurl.split("?")[0];
|
||||
if (document.location.href.indexOf(fdurlb) < 0)
|
||||
{
|
||||
document.location.href=fdurl;
|
||||
return;
|
||||
}
|
||||
sn._savedOnLoad = window.onload;
|
||||
window.onload = null;
|
||||
window.__smartNav.updateHelper();
|
||||
}
|
||||
window.__smartNav.updateHelper = function()
|
||||
{
|
||||
if (document.readyState != "complete")
|
||||
{
|
||||
window.setTimeout(window.__smartNav.updateHelper, 25);
|
||||
return;
|
||||
}
|
||||
window.__smartNav.loadNewContent();
|
||||
}
|
||||
window.__smartNav.loadNewContent = function()
|
||||
{
|
||||
var sn = window.__smartNav;
|
||||
var fd;
|
||||
try { fd = frames["__hifSmartNav"].document; } catch (e) {return;}
|
||||
if ((typeof(sn.sHif) != "undefined") && (sn.sHif != null))
|
||||
{
|
||||
sn.sHif.removeNode(true);
|
||||
sn.sHif = null;
|
||||
}
|
||||
var hdm = document.getElementsByTagName("head")[0];
|
||||
var hk = hdm.childNodes;
|
||||
var tt = null;
|
||||
var i;
|
||||
for (i = hk.length - 1; i>= 0; i--)
|
||||
{
|
||||
if (hk[i].tagName == "TITLE")
|
||||
{
|
||||
tt = hk[i].outerHTML;
|
||||
continue;
|
||||
}
|
||||
if (hk[i].tagName != "BASEFONT" || hk[i].innerHTML.length == 0)
|
||||
hdm.removeChild(hdm.childNodes[i]);
|
||||
}
|
||||
var kids = fd.getElementsByTagName("head")[0].childNodes;
|
||||
for (i = 0; i < kids.length; i++)
|
||||
{
|
||||
var tn = kids[i].tagName;
|
||||
var k = document.createElement(tn);
|
||||
k.id = kids[i].id;
|
||||
k.mergeAttributes(kids[i]);
|
||||
switch(tn)
|
||||
{
|
||||
case "TITLE":
|
||||
if (tt == kids[i].outerHTML)
|
||||
continue;
|
||||
k.innerText = kids[i].text;
|
||||
hdm.insertAdjacentElement("afterbegin", k);
|
||||
continue;
|
||||
case "BASEFONT" :
|
||||
if (kids[i].innerHTML.length > 0)
|
||||
continue;
|
||||
break;
|
||||
default:
|
||||
var o = document.createElement("BODY");
|
||||
o.innerHTML = "<BODY>" + kids[i].outerHTML + "</BODY>";
|
||||
k = o.firstChild;
|
||||
break;
|
||||
}
|
||||
if((typeof(k) != "undefined") && (k != null))
|
||||
hdm.appendChild(k);
|
||||
}
|
||||
document.body.clearAttributes();
|
||||
document.body.id = fd.body.id;
|
||||
document.body.mergeAttributes(fd.body);
|
||||
var newBodyLoad = fd.body.onload;
|
||||
if ((typeof(newBodyLoad) != "undefined") && (newBodyLoad != null))
|
||||
document.body.onload = newBodyLoad;
|
||||
else
|
||||
document.body.onload = sn._savedOnLoad;
|
||||
var s = "<BODY>" + fd.body.innerHTML + "</BODY>";
|
||||
if ((typeof(sn.hif) != "undefined") && (sn.hif != null))
|
||||
{
|
||||
var hifP = sn.hif.parentElement;
|
||||
if ((typeof(hifP) != "undefined") && (hifP != null))
|
||||
sn.sHif=hifP.removeChild(sn.hif);
|
||||
}
|
||||
document.body.innerHTML = s;
|
||||
var sc = document.scripts;
|
||||
for (i = 0; i < sc.length; i++)
|
||||
{
|
||||
sc[i].text = sc[i].text;
|
||||
}
|
||||
sn.hif = document.all("__hifSmartNav");
|
||||
if ((typeof(sn.hif) != "undefined") && (sn.hif != null))
|
||||
{
|
||||
var hif = sn.hif;
|
||||
sn.hifName = "__hifSmartNav" + (new Date()).getTime();
|
||||
frames["__hifSmartNav"].name = sn.hifName;
|
||||
sn.hifDoc = hif.contentWindow.document;
|
||||
if (sn.ie5)
|
||||
hif.parentElement.removeChild(hif);
|
||||
window.setTimeout(sn.restoreFocus,0);
|
||||
}
|
||||
if (typeof(window.onload) == "string")
|
||||
{
|
||||
try { eval(window.onload) } catch (e) {};
|
||||
}
|
||||
else if ((typeof(window.onload) != "undefined") && (window.onload != null))
|
||||
{
|
||||
try { window.onload() } catch (e) {};
|
||||
}
|
||||
sn._savedOnLoad = null;
|
||||
sn.attachForm();
|
||||
};
|
||||
window.__smartNav.restoreFocus = function()
|
||||
{
|
||||
if (window.__smartNav.inPost == true) return;
|
||||
var curAe = document.activeElement;
|
||||
var sAeId = window.__smartNav.ae;
|
||||
if (((typeof(sAeId) == "undefined") || (sAeId == null)) ||
|
||||
(typeof(curAe) != "undefined") && (curAe != null) && (curAe.id == sAeId || curAe.name == sAeId))
|
||||
return;
|
||||
var ae = document.all(sAeId);
|
||||
if ((typeof(ae) == "undefined") || (ae == null)) return;
|
||||
try { ae.focus(); } catch(e){};
|
||||
}
|
||||
window.__smartNav.saveHistory = function()
|
||||
{
|
||||
if ((typeof(window.__smartNav.hif) != "undefined") && (window.__smartNav.hif != null))
|
||||
window.__smartNav.hif.removeNode();
|
||||
if ((typeof(window.__smartNav.sHif) != "undefined") && (window.__smartNav.sHif != null)
|
||||
&& (typeof(document.all[window.__smartNav.siHif]) != "undefined")
|
||||
&& (document.all[window.__smartNav.siHif] != null)) {
|
||||
document.all[window.__smartNav.siHif].insertAdjacentElement(
|
||||
"BeforeBegin", window.__smartNav.sHif);
|
||||
}
|
||||
}
|
||||
window.__smartNav.stopHif = function()
|
||||
{
|
||||
document.detachEvent("onstop", window.__smartNav.stopHif);
|
||||
var sn = window.__smartNav;
|
||||
if (((typeof(sn.hifDoc) == "undefined") || (sn.hifDoc == null)) &&
|
||||
(typeof(sn.hif) != "undefined") && (sn.hif != null))
|
||||
{
|
||||
try {sn.hifDoc = sn.hif.contentWindow.document;}
|
||||
catch(e){sn.hifDoc=null}
|
||||
}
|
||||
if (sn.hifDoc != null)
|
||||
{
|
||||
try {sn.hifDoc.execCommand("stop");} catch (e){}
|
||||
}
|
||||
}
|
||||
window.__smartNav.init = function()
|
||||
{
|
||||
var sn = window.__smartNav;
|
||||
window.__smartNav.form.__smartNavPostBack.value = 'true';
|
||||
document.detachEvent("onstop", sn.stopHif);
|
||||
document.attachEvent("onstop", sn.stopHif);
|
||||
try { if (window.event.returnValue == false) return; } catch(e) {}
|
||||
sn.inPost = true;
|
||||
if ((typeof(document.activeElement) != "undefined") && (document.activeElement != null))
|
||||
{
|
||||
var ae = document.activeElement.id;
|
||||
if (ae.length == 0)
|
||||
ae = document.activeElement.name;
|
||||
sn.ae = ae;
|
||||
}
|
||||
else
|
||||
sn.ae = null;
|
||||
try {document.selection.empty();} catch (e) {}
|
||||
if ((typeof(sn.hif) == "undefined") || (sn.hif == null))
|
||||
{
|
||||
sn.hif = document.all("__hifSmartNav");
|
||||
sn.hifDoc = sn.hif.contentWindow.document;
|
||||
}
|
||||
if ((typeof(sn.hifDoc) != "undefined") && (sn.hifDoc != null))
|
||||
try {sn.hifDoc.designMode = "On";} catch(e){};
|
||||
if ((typeof(sn.hif.parentElement) == "undefined") || (sn.hif.parentElement == null))
|
||||
document.body.appendChild(sn.hif);
|
||||
var hif = sn.hif;
|
||||
hif.detachEvent("onload", sn.update);
|
||||
hif.attachEvent("onload", sn.update);
|
||||
window.__smartNav.fInit = true;
|
||||
};
|
||||
window.__smartNav.submit = function()
|
||||
{
|
||||
window.__smartNav.fInit = false;
|
||||
try { window.__smartNav.init(); } catch(e) {}
|
||||
if (window.__smartNav.fInit) {
|
||||
window.__smartNav.form._submit();
|
||||
}
|
||||
};
|
||||
window.__smartNav.attachForm = function()
|
||||
{
|
||||
var cf = document.forms;
|
||||
for (var i=0; i<cf.length; i++)
|
||||
{
|
||||
if ((typeof(cf[i].__smartNavEnabled) != "undefined") && (cf[i].__smartNavEnabled != null))
|
||||
{
|
||||
window.__smartNav.form = cf[i];
|
||||
window.__smartNav.form.insertAdjacentHTML("beforeEnd", "<input type='hidden' name='__smartNavPostBack' value='false' />");
|
||||
break;
|
||||
}
|
||||
}
|
||||
var snfm = window.__smartNav.form;
|
||||
if ((typeof(snfm) == "undefined") || (snfm == null)) return false;
|
||||
var sft = snfm.target;
|
||||
if (sft.length != 0 && sft.indexOf("__hifSmartNav") != 0) return false;
|
||||
var sfc = snfm.action.split("?")[0];
|
||||
var url = window.location.href.split("?")[0];
|
||||
if (url.charAt(url.length-1) != '/' && url.lastIndexOf(sfc) + sfc.length != url.length) return false;
|
||||
if (snfm.__formAttached == true) return true;
|
||||
snfm.__formAttached = true;
|
||||
snfm.attachEvent("onsubmit", window.__smartNav.init);
|
||||
snfm._submit = snfm.submit;
|
||||
snfm.submit = window.__smartNav.submit;
|
||||
snfm.target = window.__smartNav.hifName;
|
||||
return true;
|
||||
};
|
||||
window.__smartNav.hifName = "__hifSmartNav" + (new Date()).getTime();
|
||||
window.__smartNav.ie5 = navigator.appVersion.indexOf("MSIE 5") > 0;
|
||||
var rc = window.__smartNav.attachForm();
|
||||
var hif = document.all("__hifSmartNav");
|
||||
if ((typeof(snSrc) == "undefined") || (snSrc == null)) {
|
||||
if (typeof(window.dialogHeight) != "undefined") {
|
||||
snSrc = "IEsmartnav1";
|
||||
hif.src = snSrc;
|
||||
} else {
|
||||
snSrc = hif.src;
|
||||
}
|
||||
}
|
||||
if (rc)
|
||||
{
|
||||
var fsn = frames["__hifSmartNav"];
|
||||
fsn.name = window.__smartNav.hifName;
|
||||
window.__smartNav.siHif = hif.sourceIndex;
|
||||
try {
|
||||
if (fsn.document.location != snSrc)
|
||||
{
|
||||
fsn.document.designMode = "On";
|
||||
hif.attachEvent("onload",window.__smartNav.update);
|
||||
window.__smartNav.hif = hif;
|
||||
}
|
||||
}
|
||||
catch (e) { window.__smartNav.hif = hif; }
|
||||
window.attachEvent("onbeforeunload", window.__smartNav.saveHistory);
|
||||
}
|
||||
else
|
||||
window.__smartNav = null;
|
||||
}
|
||||
220
WebFormApp/Scripts/WebForms/TreeView.js
Normal file
220
WebFormApp/Scripts/WebForms/TreeView.js
Normal file
@@ -0,0 +1,220 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/TreeView.js
|
||||
function TreeView_HoverNode(data, node) {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
node.hoverClass = data.hoverClass;
|
||||
WebForm_AppendToClassName(node, data.hoverClass);
|
||||
if (__nonMSDOMBrowser) {
|
||||
node = node.childNodes[node.childNodes.length - 1];
|
||||
}
|
||||
else {
|
||||
node = node.children[node.children.length - 1];
|
||||
}
|
||||
node.hoverHyperLinkClass = data.hoverHyperLinkClass;
|
||||
WebForm_AppendToClassName(node, data.hoverHyperLinkClass);
|
||||
}
|
||||
function TreeView_GetNodeText(node) {
|
||||
var trNode = WebForm_GetParentByTagName(node, "TR");
|
||||
var outerNodes;
|
||||
if (trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName) {
|
||||
outerNodes = trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName("A");
|
||||
if (!outerNodes || outerNodes.length == 0) {
|
||||
outerNodes = trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName("SPAN");
|
||||
}
|
||||
}
|
||||
var textNode = (outerNodes && outerNodes.length > 0) ?
|
||||
outerNodes[0].childNodes[0] :
|
||||
trNode.childNodes[trNode.childNodes.length - 1].childNodes[0];
|
||||
return (textNode && textNode.nodeValue) ? textNode.nodeValue : "";
|
||||
}
|
||||
function TreeView_PopulateNode(data, index, node, selectNode, selectImageNode, lineType, text, path, databound, datapath, parentIsLast) {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
var context = new Object();
|
||||
context.data = data;
|
||||
context.node = node;
|
||||
context.selectNode = selectNode;
|
||||
context.selectImageNode = selectImageNode;
|
||||
context.lineType = lineType;
|
||||
context.index = index;
|
||||
context.isChecked = "f";
|
||||
var tr = WebForm_GetParentByTagName(node, "TR");
|
||||
if (tr) {
|
||||
var checkbox = tr.getElementsByTagName("INPUT");
|
||||
if (checkbox && (checkbox.length > 0)) {
|
||||
for (var i = 0; i < checkbox.length; i++) {
|
||||
if (checkbox[i].type.toLowerCase() == "checkbox") {
|
||||
if (checkbox[i].checked) {
|
||||
context.isChecked = "t";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var param = index + "|" + data.lastIndex + "|" + databound + context.isChecked + parentIsLast + "|" +
|
||||
text.length + "|" + text + datapath.length + "|" + datapath + path;
|
||||
TreeView_PopulateNodeDoCallBack(context, param);
|
||||
}
|
||||
function TreeView_ProcessNodeData(result, context) {
|
||||
var treeNode = context.node;
|
||||
if (result.length > 0) {
|
||||
var ci = result.indexOf("|", 0);
|
||||
context.data.lastIndex = result.substring(0, ci);
|
||||
ci = result.indexOf("|", ci + 1);
|
||||
var newExpandState = result.substring(context.data.lastIndex.length + 1, ci);
|
||||
context.data.expandState.value += newExpandState;
|
||||
var chunk = result.substr(ci + 1);
|
||||
var newChildren, table;
|
||||
if (__nonMSDOMBrowser) {
|
||||
var newDiv = document.createElement("div");
|
||||
newDiv.innerHTML = chunk;
|
||||
table = WebForm_GetParentByTagName(treeNode, "TABLE");
|
||||
newChildren = null;
|
||||
if ((typeof(table.nextSibling) == "undefined") || (table.nextSibling == null)) {
|
||||
table.parentNode.insertBefore(newDiv.firstChild, table.nextSibling);
|
||||
newChildren = table.previousSibling;
|
||||
}
|
||||
else {
|
||||
table = table.nextSibling;
|
||||
table.parentNode.insertBefore(newDiv.firstChild, table);
|
||||
newChildren = table.previousSibling;
|
||||
}
|
||||
newChildren = document.getElementById(treeNode.id + "Nodes");
|
||||
}
|
||||
else {
|
||||
table = WebForm_GetParentByTagName(treeNode, "TABLE");
|
||||
table.insertAdjacentHTML("afterEnd", chunk);
|
||||
newChildren = document.all[treeNode.id + "Nodes"];
|
||||
}
|
||||
if ((typeof(newChildren) != "undefined") && (newChildren != null)) {
|
||||
TreeView_ToggleNode(context.data, context.index, treeNode, context.lineType, newChildren);
|
||||
treeNode.href = document.getElementById ?
|
||||
"javascript:TreeView_ToggleNode(" + context.data.name + "," + context.index + ",document.getElementById('" + treeNode.id + "'),'" + context.lineType + "',document.getElementById('" + newChildren.id + "'))" :
|
||||
"javascript:TreeView_ToggleNode(" + context.data.name + "," + context.index + "," + treeNode.id + ",'" + context.lineType + "'," + newChildren.id + ")";
|
||||
if ((typeof(context.selectNode) != "undefined") && (context.selectNode != null) && context.selectNode.href &&
|
||||
(context.selectNode.href.indexOf("javascript:TreeView_PopulateNode", 0) == 0)) {
|
||||
context.selectNode.href = treeNode.href;
|
||||
}
|
||||
if ((typeof(context.selectImageNode) != "undefined") && (context.selectImageNode != null) && context.selectNode.href &&
|
||||
(context.selectImageNode.href.indexOf("javascript:TreeView_PopulateNode", 0) == 0)) {
|
||||
context.selectImageNode.href = treeNode.href;
|
||||
}
|
||||
}
|
||||
context.data.populateLog.value += context.index + ",";
|
||||
}
|
||||
else {
|
||||
var img = treeNode.childNodes ? treeNode.childNodes[0] : treeNode.children[0];
|
||||
if ((typeof(img) != "undefined") && (img != null)) {
|
||||
var lineType = context.lineType;
|
||||
if (lineType == "l") {
|
||||
img.src = context.data.images[13];
|
||||
}
|
||||
else if (lineType == "t") {
|
||||
img.src = context.data.images[10];
|
||||
}
|
||||
else if (lineType == "-") {
|
||||
img.src = context.data.images[16];
|
||||
}
|
||||
else {
|
||||
img.src = context.data.images[3];
|
||||
}
|
||||
var pe;
|
||||
if (__nonMSDOMBrowser) {
|
||||
pe = treeNode.parentNode;
|
||||
pe.insertBefore(img, treeNode);
|
||||
pe.removeChild(treeNode);
|
||||
}
|
||||
else {
|
||||
pe = treeNode.parentElement;
|
||||
treeNode.style.visibility="hidden";
|
||||
treeNode.style.display="none";
|
||||
pe.insertAdjacentElement("afterBegin", img);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function TreeView_SelectNode(data, node, nodeId) {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
if ((typeof(data.selectedClass) != "undefined") && (data.selectedClass != null)) {
|
||||
var id = data.selectedNodeID.value;
|
||||
if (id.length > 0) {
|
||||
var selectedNode = document.getElementById(id);
|
||||
if ((typeof(selectedNode) != "undefined") && (selectedNode != null)) {
|
||||
WebForm_RemoveClassName(selectedNode, data.selectedHyperLinkClass);
|
||||
selectedNode = WebForm_GetParentByTagName(selectedNode, "TD");
|
||||
WebForm_RemoveClassName(selectedNode, data.selectedClass);
|
||||
}
|
||||
}
|
||||
WebForm_AppendToClassName(node, data.selectedHyperLinkClass);
|
||||
node = WebForm_GetParentByTagName(node, "TD");
|
||||
WebForm_AppendToClassName(node, data.selectedClass)
|
||||
}
|
||||
data.selectedNodeID.value = nodeId;
|
||||
}
|
||||
function TreeView_ToggleNode(data, index, node, lineType, children) {
|
||||
if (!data) {
|
||||
return;
|
||||
}
|
||||
var img = node.childNodes[0];
|
||||
var newExpandState;
|
||||
try {
|
||||
if (children.style.display == "none") {
|
||||
children.style.display = "block";
|
||||
newExpandState = "e";
|
||||
if ((typeof(img) != "undefined") && (img != null)) {
|
||||
if (lineType == "l") {
|
||||
img.src = data.images[15];
|
||||
}
|
||||
else if (lineType == "t") {
|
||||
img.src = data.images[12];
|
||||
}
|
||||
else if (lineType == "-") {
|
||||
img.src = data.images[18];
|
||||
}
|
||||
else {
|
||||
img.src = data.images[5];
|
||||
}
|
||||
img.alt = data.collapseToolTip.replace(/\{0\}/, TreeView_GetNodeText(node));
|
||||
}
|
||||
}
|
||||
else {
|
||||
children.style.display = "none";
|
||||
newExpandState = "c";
|
||||
if ((typeof(img) != "undefined") && (img != null)) {
|
||||
if (lineType == "l") {
|
||||
img.src = data.images[14];
|
||||
}
|
||||
else if (lineType == "t") {
|
||||
img.src = data.images[11];
|
||||
}
|
||||
else if (lineType == "-") {
|
||||
img.src = data.images[17];
|
||||
}
|
||||
else {
|
||||
img.src = data.images[4];
|
||||
}
|
||||
img.alt = data.expandToolTip.replace(/\{0\}/, TreeView_GetNodeText(node));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(e) {}
|
||||
data.expandState.value = data.expandState.value.substring(0, index) + newExpandState + data.expandState.value.slice(index + 1);
|
||||
}
|
||||
function TreeView_UnhoverNode(node) {
|
||||
if (!node.hoverClass) {
|
||||
return;
|
||||
}
|
||||
WebForm_RemoveClassName(node, node.hoverClass);
|
||||
if (__nonMSDOMBrowser) {
|
||||
node = node.childNodes[node.childNodes.length - 1];
|
||||
}
|
||||
else {
|
||||
node = node.children[node.children.length - 1];
|
||||
}
|
||||
WebForm_RemoveClassName(node, node.hoverHyperLinkClass);
|
||||
}
|
||||
567
WebFormApp/Scripts/WebForms/WebForms.js
Normal file
567
WebFormApp/Scripts/WebForms/WebForms.js
Normal file
@@ -0,0 +1,567 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js
|
||||
function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
|
||||
this.eventTarget = eventTarget;
|
||||
this.eventArgument = eventArgument;
|
||||
this.validation = validation;
|
||||
this.validationGroup = validationGroup;
|
||||
this.actionUrl = actionUrl;
|
||||
this.trackFocus = trackFocus;
|
||||
this.clientSubmit = clientSubmit;
|
||||
}
|
||||
function WebForm_DoPostBackWithOptions(options) {
|
||||
var validationResult = true;
|
||||
if (options.validation) {
|
||||
if (typeof(Page_ClientValidate) == 'function') {
|
||||
validationResult = Page_ClientValidate(options.validationGroup);
|
||||
}
|
||||
}
|
||||
if (validationResult) {
|
||||
if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {
|
||||
theForm.action = options.actionUrl;
|
||||
}
|
||||
if (options.trackFocus) {
|
||||
var lastFocus = theForm.elements["__LASTFOCUS"];
|
||||
if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) {
|
||||
if (typeof(document.activeElement) == "undefined") {
|
||||
lastFocus.value = options.eventTarget;
|
||||
}
|
||||
else {
|
||||
var active = document.activeElement;
|
||||
if ((typeof(active) != "undefined") && (active != null)) {
|
||||
if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) {
|
||||
lastFocus.value = active.id;
|
||||
}
|
||||
else if (typeof(active.name) != "undefined") {
|
||||
lastFocus.value = active.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.clientSubmit) {
|
||||
__doPostBack(options.eventTarget, options.eventArgument);
|
||||
}
|
||||
}
|
||||
var __pendingCallbacks = new Array();
|
||||
var __synchronousCallBackIndex = -1;
|
||||
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {
|
||||
var postData = __theFormPostData +
|
||||
"__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
|
||||
"&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
|
||||
if (theForm["__EVENTVALIDATION"]) {
|
||||
postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
|
||||
}
|
||||
var xmlRequest,e;
|
||||
try {
|
||||
xmlRequest = new XMLHttpRequest();
|
||||
}
|
||||
catch(e) {
|
||||
try {
|
||||
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
catch(e) {
|
||||
}
|
||||
}
|
||||
var setRequestHeaderMethodExists = true;
|
||||
try {
|
||||
setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
|
||||
}
|
||||
catch(e) {}
|
||||
var callback = new Object();
|
||||
callback.eventCallback = eventCallback;
|
||||
callback.context = context;
|
||||
callback.errorCallback = errorCallback;
|
||||
callback.async = useAsync;
|
||||
var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
|
||||
if (!useAsync) {
|
||||
if (__synchronousCallBackIndex != -1) {
|
||||
__pendingCallbacks[__synchronousCallBackIndex] = null;
|
||||
}
|
||||
__synchronousCallBackIndex = callbackIndex;
|
||||
}
|
||||
if (setRequestHeaderMethodExists) {
|
||||
xmlRequest.onreadystatechange = WebForm_CallbackComplete;
|
||||
callback.xmlRequest = xmlRequest;
|
||||
// e.g. http:
|
||||
var action = theForm.action || document.location.pathname, fragmentIndex = action.indexOf('#');
|
||||
if (fragmentIndex !== -1) {
|
||||
action = action.substr(0, fragmentIndex);
|
||||
}
|
||||
if (!__nonMSDOMBrowser) {
|
||||
var queryIndex = action.indexOf('?');
|
||||
if (queryIndex !== -1) {
|
||||
var path = action.substr(0, queryIndex);
|
||||
if (path.indexOf("%") === -1) {
|
||||
action = encodeURI(path) + action.substr(queryIndex);
|
||||
}
|
||||
}
|
||||
else if (action.indexOf("%") === -1) {
|
||||
action = encodeURI(action);
|
||||
}
|
||||
}
|
||||
xmlRequest.open("POST", action, true);
|
||||
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
|
||||
xmlRequest.send(postData);
|
||||
return;
|
||||
}
|
||||
callback.xmlRequest = new Object();
|
||||
var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
|
||||
var xmlRequestFrame = document.frames[callbackFrameID];
|
||||
if (!xmlRequestFrame) {
|
||||
xmlRequestFrame = document.createElement("IFRAME");
|
||||
xmlRequestFrame.width = "1";
|
||||
xmlRequestFrame.height = "1";
|
||||
xmlRequestFrame.frameBorder = "0";
|
||||
xmlRequestFrame.id = callbackFrameID;
|
||||
xmlRequestFrame.name = callbackFrameID;
|
||||
xmlRequestFrame.style.position = "absolute";
|
||||
xmlRequestFrame.style.top = "-100px"
|
||||
xmlRequestFrame.style.left = "-100px";
|
||||
try {
|
||||
if (callBackFrameUrl) {
|
||||
xmlRequestFrame.src = callBackFrameUrl;
|
||||
}
|
||||
}
|
||||
catch(e) {}
|
||||
document.body.appendChild(xmlRequestFrame);
|
||||
}
|
||||
var interval = window.setInterval(function() {
|
||||
xmlRequestFrame = document.frames[callbackFrameID];
|
||||
if (xmlRequestFrame && xmlRequestFrame.document) {
|
||||
window.clearInterval(interval);
|
||||
xmlRequestFrame.document.write("");
|
||||
xmlRequestFrame.document.close();
|
||||
xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>');
|
||||
xmlRequestFrame.document.close();
|
||||
xmlRequestFrame.document.forms[0].action = theForm.action;
|
||||
var count = __theFormPostCollection.length;
|
||||
var element;
|
||||
for (var i = 0; i < count; i++) {
|
||||
element = __theFormPostCollection[i];
|
||||
if (element) {
|
||||
var fieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||
fieldElement.type = "hidden";
|
||||
fieldElement.name = element.name;
|
||||
fieldElement.value = element.value;
|
||||
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
|
||||
}
|
||||
}
|
||||
var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||
callbackIdFieldElement.type = "hidden";
|
||||
callbackIdFieldElement.name = "__CALLBACKID";
|
||||
callbackIdFieldElement.value = eventTarget;
|
||||
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
|
||||
var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||
callbackParamFieldElement.type = "hidden";
|
||||
callbackParamFieldElement.name = "__CALLBACKPARAM";
|
||||
callbackParamFieldElement.value = eventArgument;
|
||||
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);
|
||||
if (theForm["__EVENTVALIDATION"]) {
|
||||
var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||
callbackValidationFieldElement.type = "hidden";
|
||||
callbackValidationFieldElement.name = "__EVENTVALIDATION";
|
||||
callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value;
|
||||
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);
|
||||
}
|
||||
var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||
callbackIndexFieldElement.type = "hidden";
|
||||
callbackIndexFieldElement.name = "__CALLBACKINDEX";
|
||||
callbackIndexFieldElement.value = callbackIndex;
|
||||
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);
|
||||
xmlRequestFrame.document.forms[0].submit();
|
||||
}
|
||||
}, 10);
|
||||
}
|
||||
function WebForm_CallbackComplete() {
|
||||
for (var i = 0; i < __pendingCallbacks.length; i++) {
|
||||
callbackObject = __pendingCallbacks[i];
|
||||
if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
|
||||
if (!__pendingCallbacks[i].async) {
|
||||
__synchronousCallBackIndex = -1;
|
||||
}
|
||||
__pendingCallbacks[i] = null;
|
||||
var callbackFrameID = "__CALLBACKFRAME" + i;
|
||||
var xmlRequestFrame = document.getElementById(callbackFrameID);
|
||||
if (xmlRequestFrame) {
|
||||
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
|
||||
}
|
||||
WebForm_ExecuteCallback(callbackObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebForm_ExecuteCallback(callbackObject) {
|
||||
var response = callbackObject.xmlRequest.responseText;
|
||||
if (response.charAt(0) == "s") {
|
||||
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
|
||||
callbackObject.eventCallback(response.substring(1), callbackObject.context);
|
||||
}
|
||||
}
|
||||
else if (response.charAt(0) == "e") {
|
||||
if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) {
|
||||
callbackObject.errorCallback(response.substring(1), callbackObject.context);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var separatorIndex = response.indexOf("|");
|
||||
if (separatorIndex != -1) {
|
||||
var validationFieldLength = parseInt(response.substring(0, separatorIndex));
|
||||
if (!isNaN(validationFieldLength)) {
|
||||
var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);
|
||||
if (validationField != "") {
|
||||
var validationFieldElement = theForm["__EVENTVALIDATION"];
|
||||
if (!validationFieldElement) {
|
||||
validationFieldElement = document.createElement("INPUT");
|
||||
validationFieldElement.type = "hidden";
|
||||
validationFieldElement.name = "__EVENTVALIDATION";
|
||||
theForm.appendChild(validationFieldElement);
|
||||
}
|
||||
validationFieldElement.value = validationField;
|
||||
}
|
||||
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
|
||||
callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebForm_FillFirstAvailableSlot(array, element) {
|
||||
var i;
|
||||
for (i = 0; i < array.length; i++) {
|
||||
if (!array[i]) break;
|
||||
}
|
||||
array[i] = element;
|
||||
return i;
|
||||
}
|
||||
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);
|
||||
var __theFormPostData = "";
|
||||
var __theFormPostCollection = new Array();
|
||||
var __callbackTextTypes = /^(text|password|hidden|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i;
|
||||
function WebForm_InitCallback() {
|
||||
var formElements = theForm.elements,
|
||||
count = formElements.length,
|
||||
element;
|
||||
for (var i = 0; i < count; i++) {
|
||||
element = formElements[i];
|
||||
var tagName = element.tagName.toLowerCase();
|
||||
if (tagName == "input") {
|
||||
var type = element.type;
|
||||
if ((__callbackTextTypes.test(type) || ((type == "checkbox" || type == "radio") && element.checked))
|
||||
&& (element.id != "__EVENTVALIDATION")) {
|
||||
WebForm_InitCallbackAddField(element.name, element.value);
|
||||
}
|
||||
}
|
||||
else if (tagName == "select") {
|
||||
var selectCount = element.options.length;
|
||||
for (var j = 0; j < selectCount; j++) {
|
||||
var selectChild = element.options[j];
|
||||
if (selectChild.selected == true) {
|
||||
WebForm_InitCallbackAddField(element.name, element.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tagName == "textarea") {
|
||||
WebForm_InitCallbackAddField(element.name, element.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebForm_InitCallbackAddField(name, value) {
|
||||
var nameValue = new Object();
|
||||
nameValue.name = name;
|
||||
nameValue.value = value;
|
||||
__theFormPostCollection[__theFormPostCollection.length] = nameValue;
|
||||
__theFormPostData += WebForm_EncodeCallback(name) + "=" + WebForm_EncodeCallback(value) + "&";
|
||||
}
|
||||
function WebForm_EncodeCallback(parameter) {
|
||||
if (encodeURIComponent) {
|
||||
return encodeURIComponent(parameter);
|
||||
}
|
||||
else {
|
||||
return escape(parameter);
|
||||
}
|
||||
}
|
||||
var __disabledControlArray = new Array();
|
||||
function WebForm_ReEnableControls() {
|
||||
if (typeof(__enabledControlArray) == 'undefined') {
|
||||
return false;
|
||||
}
|
||||
var disabledIndex = 0;
|
||||
for (var i = 0; i < __enabledControlArray.length; i++) {
|
||||
var c;
|
||||
if (__nonMSDOMBrowser) {
|
||||
c = document.getElementById(__enabledControlArray[i]);
|
||||
}
|
||||
else {
|
||||
c = document.all[__enabledControlArray[i]];
|
||||
}
|
||||
if ((typeof(c) != "undefined") && (c != null) && (c.disabled == true)) {
|
||||
c.disabled = false;
|
||||
__disabledControlArray[disabledIndex++] = c;
|
||||
}
|
||||
}
|
||||
setTimeout("WebForm_ReDisableControls()", 0);
|
||||
return true;
|
||||
}
|
||||
function WebForm_ReDisableControls() {
|
||||
for (var i = 0; i < __disabledControlArray.length; i++) {
|
||||
__disabledControlArray[i].disabled = true;
|
||||
}
|
||||
}
|
||||
function WebForm_SimulateClick(element, event) {
|
||||
var clickEvent;
|
||||
if (element) {
|
||||
if (element.click) {
|
||||
element.click();
|
||||
} else {
|
||||
clickEvent = document.createEvent("MouseEvents");
|
||||
clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||
if (!element.dispatchEvent(clickEvent)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) {
|
||||
event.stopPropagation();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebForm_FireDefaultButton(event, target) {
|
||||
if (event.keyCode == 13) {
|
||||
var src = event.srcElement || event.target;
|
||||
if (src &&
|
||||
((src.tagName.toLowerCase() == "input") &&
|
||||
(src.type.toLowerCase() == "submit" || src.type.toLowerCase() == "button")) ||
|
||||
((src.tagName.toLowerCase() == "a") &&
|
||||
(src.href != null) && (src.href != "")) ||
|
||||
(src.tagName.toLowerCase() == "textarea")) {
|
||||
return true;
|
||||
}
|
||||
var defaultButton;
|
||||
if (__nonMSDOMBrowser) {
|
||||
defaultButton = document.getElementById(target);
|
||||
}
|
||||
else {
|
||||
defaultButton = document.all[target];
|
||||
}
|
||||
if (defaultButton) {
|
||||
return WebForm_SimulateClick(defaultButton, event);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebForm_GetScrollX() {
|
||||
if (__nonMSDOMBrowser) {
|
||||
return window.pageXOffset;
|
||||
}
|
||||
else {
|
||||
if (document.documentElement && document.documentElement.scrollLeft) {
|
||||
return document.documentElement.scrollLeft;
|
||||
}
|
||||
else if (document.body) {
|
||||
return document.body.scrollLeft;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
function WebForm_GetScrollY() {
|
||||
if (__nonMSDOMBrowser) {
|
||||
return window.pageYOffset;
|
||||
}
|
||||
else {
|
||||
if (document.documentElement && document.documentElement.scrollTop) {
|
||||
return document.documentElement.scrollTop;
|
||||
}
|
||||
else if (document.body) {
|
||||
return document.body.scrollTop;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
function WebForm_SaveScrollPositionSubmit() {
|
||||
if (__nonMSDOMBrowser) {
|
||||
theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset;
|
||||
theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset;
|
||||
}
|
||||
else {
|
||||
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
|
||||
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
|
||||
}
|
||||
if ((typeof(this.oldSubmit) != "undefined") && (this.oldSubmit != null)) {
|
||||
return this.oldSubmit();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebForm_SaveScrollPositionOnSubmit() {
|
||||
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
|
||||
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
|
||||
if ((typeof(this.oldOnSubmit) != "undefined") && (this.oldOnSubmit != null)) {
|
||||
return this.oldOnSubmit();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebForm_RestoreScrollPosition() {
|
||||
if (__nonMSDOMBrowser) {
|
||||
window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);
|
||||
}
|
||||
else {
|
||||
window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);
|
||||
}
|
||||
if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) {
|
||||
return theForm.oldOnLoad();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebForm_TextBoxKeyHandler(event) {
|
||||
if (event.keyCode == 13) {
|
||||
var target;
|
||||
if (__nonMSDOMBrowser) {
|
||||
target = event.target;
|
||||
}
|
||||
else {
|
||||
target = event.srcElement;
|
||||
}
|
||||
if ((typeof(target) != "undefined") && (target != null)) {
|
||||
if (typeof(target.onchange) != "undefined") {
|
||||
target.onchange();
|
||||
event.cancelBubble = true;
|
||||
if (event.stopPropagation) event.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebForm_TrimString(value) {
|
||||
return value.replace(/^\s+|\s+$/g, '')
|
||||
}
|
||||
function WebForm_AppendToClassName(element, className) {
|
||||
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' ';
|
||||
className = WebForm_TrimString(className);
|
||||
var index = currentClassName.indexOf(' ' + className + ' ');
|
||||
if (index === -1) {
|
||||
element.className = (element.className === '') ? className : element.className + ' ' + className;
|
||||
}
|
||||
}
|
||||
function WebForm_RemoveClassName(element, className) {
|
||||
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' ';
|
||||
className = WebForm_TrimString(className);
|
||||
var index = currentClassName.indexOf(' ' + className + ' ');
|
||||
if (index >= 0) {
|
||||
element.className = WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
|
||||
currentClassName.substring(index + className.length + 1, currentClassName.length));
|
||||
}
|
||||
}
|
||||
function WebForm_GetElementById(elementId) {
|
||||
if (document.getElementById) {
|
||||
return document.getElementById(elementId);
|
||||
}
|
||||
else if (document.all) {
|
||||
return document.all[elementId];
|
||||
}
|
||||
else return null;
|
||||
}
|
||||
function WebForm_GetElementByTagName(element, tagName) {
|
||||
var elements = WebForm_GetElementsByTagName(element, tagName);
|
||||
if (elements && elements.length > 0) {
|
||||
return elements[0];
|
||||
}
|
||||
else return null;
|
||||
}
|
||||
function WebForm_GetElementsByTagName(element, tagName) {
|
||||
if (element && tagName) {
|
||||
if (element.getElementsByTagName) {
|
||||
return element.getElementsByTagName(tagName);
|
||||
}
|
||||
if (element.all && element.all.tags) {
|
||||
return element.all.tags(tagName);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function WebForm_GetElementDir(element) {
|
||||
if (element) {
|
||||
if (element.dir) {
|
||||
return element.dir;
|
||||
}
|
||||
return WebForm_GetElementDir(element.parentNode);
|
||||
}
|
||||
return "ltr";
|
||||
}
|
||||
function WebForm_GetElementPosition(element) {
|
||||
var result = new Object();
|
||||
result.x = 0;
|
||||
result.y = 0;
|
||||
result.width = 0;
|
||||
result.height = 0;
|
||||
if (element.offsetParent) {
|
||||
result.x = element.offsetLeft;
|
||||
result.y = element.offsetTop;
|
||||
var parent = element.offsetParent;
|
||||
while (parent) {
|
||||
result.x += parent.offsetLeft;
|
||||
result.y += parent.offsetTop;
|
||||
var parentTagName = parent.tagName.toLowerCase();
|
||||
if (parentTagName != "table" &&
|
||||
parentTagName != "body" &&
|
||||
parentTagName != "html" &&
|
||||
parentTagName != "div" &&
|
||||
parent.clientTop &&
|
||||
parent.clientLeft) {
|
||||
result.x += parent.clientLeft;
|
||||
result.y += parent.clientTop;
|
||||
}
|
||||
parent = parent.offsetParent;
|
||||
}
|
||||
}
|
||||
else if (element.left && element.top) {
|
||||
result.x = element.left;
|
||||
result.y = element.top;
|
||||
}
|
||||
else {
|
||||
if (element.x) {
|
||||
result.x = element.x;
|
||||
}
|
||||
if (element.y) {
|
||||
result.y = element.y;
|
||||
}
|
||||
}
|
||||
if (element.offsetWidth && element.offsetHeight) {
|
||||
result.width = element.offsetWidth;
|
||||
result.height = element.offsetHeight;
|
||||
}
|
||||
else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
|
||||
result.width = element.style.pixelWidth;
|
||||
result.height = element.style.pixelHeight;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function WebForm_GetParentByTagName(element, tagName) {
|
||||
var parent = element.parentNode;
|
||||
var upperTagName = tagName.toUpperCase();
|
||||
while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
|
||||
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
|
||||
}
|
||||
return parent;
|
||||
}
|
||||
function WebForm_SetElementHeight(element, height) {
|
||||
if (element && element.style) {
|
||||
element.style.height = height + "px";
|
||||
}
|
||||
}
|
||||
function WebForm_SetElementWidth(element, width) {
|
||||
if (element && element.style) {
|
||||
element.style.width = width + "px";
|
||||
}
|
||||
}
|
||||
function WebForm_SetElementX(element, x) {
|
||||
if (element && element.style) {
|
||||
element.style.left = x + "px";
|
||||
}
|
||||
}
|
||||
function WebForm_SetElementY(element, y) {
|
||||
if (element && element.style) {
|
||||
element.style.top = y + "px";
|
||||
}
|
||||
}
|
||||
647
WebFormApp/Scripts/WebForms/WebParts.js
Normal file
647
WebFormApp/Scripts/WebForms/WebParts.js
Normal file
@@ -0,0 +1,647 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebParts.js
|
||||
var __wpm = null;
|
||||
function Point(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
function __wpTranslateOffset(x, y, offsetElement, relativeToElement, includeScroll) {
|
||||
while ((typeof(offsetElement) != "undefined") && (offsetElement != null) && (offsetElement != relativeToElement)) {
|
||||
x += offsetElement.offsetLeft;
|
||||
y += offsetElement.offsetTop;
|
||||
var tagName = offsetElement.tagName;
|
||||
if ((tagName != "TABLE") && (tagName != "BODY")) {
|
||||
x += offsetElement.clientLeft;
|
||||
y += offsetElement.clientTop;
|
||||
}
|
||||
if (includeScroll && (tagName != "BODY")) {
|
||||
x -= offsetElement.scrollLeft;
|
||||
y -= offsetElement.scrollTop;
|
||||
}
|
||||
offsetElement = offsetElement.offsetParent;
|
||||
}
|
||||
return new Point(x, y);
|
||||
}
|
||||
function __wpGetPageEventLocation(event, includeScroll) {
|
||||
if ((typeof(event) == "undefined") || (event == null)) {
|
||||
event = window.event;
|
||||
}
|
||||
return __wpTranslateOffset(event.offsetX, event.offsetY, event.srcElement, null, includeScroll);
|
||||
}
|
||||
function __wpClearSelection() {
|
||||
document.selection.empty();
|
||||
}
|
||||
function WebPart(webPartElement, webPartTitleElement, zone, zoneIndex, allowZoneChange) {
|
||||
this.webPartElement = webPartElement;
|
||||
this.allowZoneChange = allowZoneChange;
|
||||
this.zone = zone;
|
||||
this.zoneIndex = zoneIndex;
|
||||
this.title = ((typeof(webPartTitleElement) != "undefined") && (webPartTitleElement != null)) ?
|
||||
webPartTitleElement.innerText : "";
|
||||
webPartElement.__webPart = this;
|
||||
if ((typeof(webPartTitleElement) != "undefined") && (webPartTitleElement != null)) {
|
||||
webPartTitleElement.style.cursor = "move";
|
||||
webPartTitleElement.attachEvent("onmousedown", WebPart_OnMouseDown);
|
||||
webPartElement.attachEvent("ondragstart", WebPart_OnDragStart);
|
||||
webPartElement.attachEvent("ondrag", WebPart_OnDrag);
|
||||
webPartElement.attachEvent("ondragend", WebPart_OnDragEnd);
|
||||
}
|
||||
this.UpdatePosition = WebPart_UpdatePosition;
|
||||
this.Dispose = WebPart_Dispose;
|
||||
}
|
||||
function WebPart_Dispose() {
|
||||
this.webPartElement.__webPart = null
|
||||
}
|
||||
function WebPart_OnMouseDown() {
|
||||
var currentEvent = window.event;
|
||||
var draggedWebPart = WebPart_GetParentWebPartElement(currentEvent.srcElement);
|
||||
if ((typeof(draggedWebPart) == "undefined") || (draggedWebPart == null)) {
|
||||
return;
|
||||
}
|
||||
document.selection.empty();
|
||||
try {
|
||||
__wpm.draggedWebPart = draggedWebPart;
|
||||
__wpm.DragDrop();
|
||||
}
|
||||
catch (e) {
|
||||
__wpm.draggedWebPart = draggedWebPart;
|
||||
window.setTimeout("__wpm.DragDrop()", 0);
|
||||
}
|
||||
currentEvent.returnValue = false;
|
||||
currentEvent.cancelBubble = true;
|
||||
}
|
||||
function WebPart_OnDragStart() {
|
||||
var currentEvent = window.event;
|
||||
var webPartElement = currentEvent.srcElement;
|
||||
if ((typeof(webPartElement.__webPart) == "undefined") || (webPartElement.__webPart == null)) {
|
||||
currentEvent.returnValue = false;
|
||||
currentEvent.cancelBubble = true;
|
||||
return;
|
||||
}
|
||||
var dataObject = currentEvent.dataTransfer;
|
||||
dataObject.effectAllowed = __wpm.InitiateWebPartDragDrop(webPartElement);
|
||||
}
|
||||
function WebPart_OnDrag() {
|
||||
__wpm.ContinueWebPartDragDrop();
|
||||
}
|
||||
function WebPart_OnDragEnd() {
|
||||
__wpm.CompleteWebPartDragDrop();
|
||||
}
|
||||
function WebPart_GetParentWebPartElement(containedElement) {
|
||||
var elem = containedElement;
|
||||
while ((typeof(elem.__webPart) == "undefined") || (elem.__webPart == null)) {
|
||||
elem = elem.parentElement;
|
||||
if ((typeof(elem) == "undefined") || (elem == null)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return elem;
|
||||
}
|
||||
function WebPart_UpdatePosition() {
|
||||
var location = __wpTranslateOffset(0, 0, this.webPartElement, null, false);
|
||||
this.middleX = location.x + this.webPartElement.offsetWidth / 2;
|
||||
this.middleY = location.y + this.webPartElement.offsetHeight / 2;
|
||||
}
|
||||
function Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor) {
|
||||
var webPartTable = null;
|
||||
if (zoneElement.rows.length == 1) {
|
||||
webPartTableContainer = zoneElement.rows[0].cells[0];
|
||||
}
|
||||
else {
|
||||
webPartTableContainer = zoneElement.rows[1].cells[0];
|
||||
}
|
||||
var i;
|
||||
for (i = 0; i < webPartTableContainer.childNodes.length; i++) {
|
||||
var node = webPartTableContainer.childNodes[i];
|
||||
if (node.tagName == "TABLE") {
|
||||
webPartTable = node;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.zoneElement = zoneElement;
|
||||
this.zoneIndex = zoneIndex;
|
||||
this.webParts = new Array();
|
||||
this.uniqueID = uniqueID;
|
||||
this.isVertical = isVertical;
|
||||
this.allowLayoutChange = allowLayoutChange;
|
||||
this.allowDrop = false;
|
||||
this.webPartTable = webPartTable;
|
||||
this.highlightColor = highlightColor;
|
||||
this.savedBorderColor = (webPartTable != null) ? webPartTable.style.borderColor : null;
|
||||
this.dropCueElements = new Array();
|
||||
if (webPartTable != null) {
|
||||
if (isVertical) {
|
||||
for (i = 0; i < webPartTable.rows.length; i += 2) {
|
||||
this.dropCueElements[i / 2] = webPartTable.rows[i].cells[0].childNodes[0];
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i = 0; i < webPartTable.rows[0].cells.length; i += 2) {
|
||||
this.dropCueElements[i / 2] = webPartTable.rows[0].cells[i].childNodes[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
this.AddWebPart = Zone_AddWebPart;
|
||||
this.GetWebPartIndex = Zone_GetWebPartIndex;
|
||||
this.ToggleDropCues = Zone_ToggleDropCues;
|
||||
this.UpdatePosition = Zone_UpdatePosition;
|
||||
this.Dispose = Zone_Dispose;
|
||||
webPartTable.__zone = this;
|
||||
webPartTable.attachEvent("ondragenter", Zone_OnDragEnter);
|
||||
webPartTable.attachEvent("ondrop", Zone_OnDrop);
|
||||
}
|
||||
function Zone_Dispose() {
|
||||
for (var i = 0; i < this.webParts.length; i++) {
|
||||
this.webParts[i].Dispose();
|
||||
}
|
||||
this.webPartTable.__zone = null;
|
||||
}
|
||||
function Zone_OnDragEnter() {
|
||||
var handled = __wpm.ProcessWebPartDragEnter();
|
||||
var currentEvent = window.event;
|
||||
if (handled) {
|
||||
currentEvent.returnValue = false;
|
||||
currentEvent.cancelBubble = true;
|
||||
}
|
||||
}
|
||||
function Zone_OnDragOver() {
|
||||
var handled = __wpm.ProcessWebPartDragOver();
|
||||
var currentEvent = window.event;
|
||||
if (handled) {
|
||||
currentEvent.returnValue = false;
|
||||
currentEvent.cancelBubble = true;
|
||||
}
|
||||
}
|
||||
function Zone_OnDrop() {
|
||||
var handled = __wpm.ProcessWebPartDrop();
|
||||
var currentEvent = window.event;
|
||||
if (handled) {
|
||||
currentEvent.returnValue = false;
|
||||
currentEvent.cancelBubble = true;
|
||||
}
|
||||
}
|
||||
function Zone_GetParentZoneElement(containedElement) {
|
||||
var elem = containedElement;
|
||||
while ((typeof(elem.__zone) == "undefined") || (elem.__zone == null)) {
|
||||
elem = elem.parentElement;
|
||||
if ((typeof(elem) == "undefined") || (elem == null)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return elem;
|
||||
}
|
||||
function Zone_AddWebPart(webPartElement, webPartTitleElement, allowZoneChange) {
|
||||
var webPart = null;
|
||||
var zoneIndex = this.webParts.length;
|
||||
if (this.allowLayoutChange && __wpm.IsDragDropEnabled()) {
|
||||
webPart = new WebPart(webPartElement, webPartTitleElement, this, zoneIndex, allowZoneChange);
|
||||
}
|
||||
else {
|
||||
webPart = new WebPart(webPartElement, null, this, zoneIndex, allowZoneChange);
|
||||
}
|
||||
this.webParts[zoneIndex] = webPart;
|
||||
return webPart;
|
||||
}
|
||||
function Zone_ToggleDropCues(show, index, ignoreOutline) {
|
||||
if (ignoreOutline == false) {
|
||||
this.webPartTable.style.borderColor = (show ? this.highlightColor : this.savedBorderColor);
|
||||
}
|
||||
if (index == -1) {
|
||||
return;
|
||||
}
|
||||
var dropCue = this.dropCueElements[index];
|
||||
if (dropCue && dropCue.style) {
|
||||
if (dropCue.style.height == "100%" && !dropCue.webPartZoneHorizontalCueResized) {
|
||||
var oldParentHeight = dropCue.parentElement.clientHeight;
|
||||
var realHeight = oldParentHeight - 10;
|
||||
dropCue.style.height = realHeight + "px";
|
||||
var dropCueVerticalBar = dropCue.getElementsByTagName("DIV")[0];
|
||||
if (dropCueVerticalBar && dropCueVerticalBar.style) {
|
||||
dropCueVerticalBar.style.height = dropCue.style.height;
|
||||
var heightDiff = (dropCue.parentElement.clientHeight - oldParentHeight);
|
||||
if (heightDiff) {
|
||||
dropCue.style.height = (realHeight - heightDiff) + "px";
|
||||
dropCueVerticalBar.style.height = dropCue.style.height;
|
||||
}
|
||||
}
|
||||
dropCue.webPartZoneHorizontalCueResized = true;
|
||||
}
|
||||
dropCue.style.visibility = (show ? "visible" : "hidden");
|
||||
}
|
||||
}
|
||||
function Zone_GetWebPartIndex(location) {
|
||||
var x = location.x;
|
||||
var y = location.y;
|
||||
if ((x < this.webPartTableLeft) || (x > this.webPartTableRight) ||
|
||||
(y < this.webPartTableTop) || (y > this.webPartTableBottom)) {
|
||||
return -1;
|
||||
}
|
||||
var vertical = this.isVertical;
|
||||
var webParts = this.webParts;
|
||||
var webPartsCount = webParts.length;
|
||||
for (var i = 0; i < webPartsCount; i++) {
|
||||
var webPart = webParts[i];
|
||||
if (vertical) {
|
||||
if (y < webPart.middleY) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (x < webPart.middleX) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
return webPartsCount;
|
||||
}
|
||||
function Zone_UpdatePosition() {
|
||||
var topLeft = __wpTranslateOffset(0, 0, this.webPartTable, null, false);
|
||||
this.webPartTableLeft = topLeft.x;
|
||||
this.webPartTableTop = topLeft.y;
|
||||
this.webPartTableRight = (this.webPartTable != null) ? topLeft.x + this.webPartTable.offsetWidth : topLeft.x;
|
||||
this.webPartTableBottom = (this.webPartTable != null) ? topLeft.y + this.webPartTable.offsetHeight : topLeft.y;
|
||||
for (var i = 0; i < this.webParts.length; i++) {
|
||||
this.webParts[i].UpdatePosition();
|
||||
}
|
||||
}
|
||||
function WebPartDragState(webPartElement, effect) {
|
||||
this.webPartElement = webPartElement;
|
||||
this.dropZoneElement = null;
|
||||
this.dropIndex = -1;
|
||||
this.effect = effect;
|
||||
this.dropped = false;
|
||||
}
|
||||
function WebPartMenu(menuLabelElement, menuDropDownElement, menuElement) {
|
||||
this.menuLabelElement = menuLabelElement;
|
||||
this.menuDropDownElement = menuDropDownElement;
|
||||
this.menuElement = menuElement;
|
||||
this.menuLabelElement.__menu = this;
|
||||
this.menuLabelElement.attachEvent('onclick', WebPartMenu_OnClick);
|
||||
this.menuLabelElement.attachEvent('onkeypress', WebPartMenu_OnKeyPress);
|
||||
this.menuLabelElement.attachEvent('onmouseenter', WebPartMenu_OnMouseEnter);
|
||||
this.menuLabelElement.attachEvent('onmouseleave', WebPartMenu_OnMouseLeave);
|
||||
if ((typeof(this.menuDropDownElement) != "undefined") && (this.menuDropDownElement != null)) {
|
||||
this.menuDropDownElement.__menu = this;
|
||||
}
|
||||
this.menuItemStyle = "";
|
||||
this.menuItemHoverStyle = "";
|
||||
this.popup = null;
|
||||
this.hoverClassName = "";
|
||||
this.hoverColor = "";
|
||||
this.oldColor = this.menuLabelElement.style.color;
|
||||
this.oldTextDecoration = this.menuLabelElement.style.textDecoration;
|
||||
this.oldClassName = this.menuLabelElement.className;
|
||||
this.Show = WebPartMenu_Show;
|
||||
this.Hide = WebPartMenu_Hide;
|
||||
this.Hover = WebPartMenu_Hover;
|
||||
this.Unhover = WebPartMenu_Unhover;
|
||||
this.Dispose = WebPartMenu_Dispose;
|
||||
var menu = this;
|
||||
this.disposeDelegate = function() { menu.Dispose(); };
|
||||
window.attachEvent('onunload', this.disposeDelegate);
|
||||
}
|
||||
function WebPartMenu_Dispose() {
|
||||
this.menuLabelElement.__menu = null;
|
||||
this.menuDropDownElement.__menu = null;
|
||||
window.detachEvent('onunload', this.disposeDelegate);
|
||||
}
|
||||
function WebPartMenu_Show() {
|
||||
if ((typeof(__wpm.menu) != "undefined") && (__wpm.menu != null)) {
|
||||
__wpm.menu.Hide();
|
||||
}
|
||||
var menuHTML =
|
||||
"<html><head><style>" +
|
||||
"a.menuItem, a.menuItem:Link { display: block; padding: 1px; text-decoration: none; " + this.itemStyle + " }" +
|
||||
"a.menuItem:Hover { " + this.itemHoverStyle + " }" +
|
||||
"</style><body scroll=\"no\" style=\"border: none; margin: 0; padding: 0;\" ondragstart=\"window.event.returnValue=false;\" onclick=\"popup.hide()\">" +
|
||||
this.menuElement.innerHTML +
|
||||
"</body></html>";
|
||||
var width = 16;
|
||||
var height = 16;
|
||||
this.popup = window.createPopup();
|
||||
__wpm.menu = this;
|
||||
var popupDocument = this.popup.document;
|
||||
popupDocument.write(menuHTML);
|
||||
this.popup.show(0, 0, width, height);
|
||||
var popupBody = popupDocument.body;
|
||||
width = popupBody.scrollWidth;
|
||||
height = popupBody.scrollHeight;
|
||||
if (width < this.menuLabelElement.offsetWidth) {
|
||||
width = this.menuLabelElement.offsetWidth + 16;
|
||||
}
|
||||
if (this.menuElement.innerHTML.indexOf("progid:DXImageTransform.Microsoft.Shadow") != -1) {
|
||||
popupBody.style.paddingRight = "4px";
|
||||
}
|
||||
popupBody.__wpm = __wpm;
|
||||
popupBody.__wpmDeleteWarning = __wpmDeleteWarning;
|
||||
popupBody.__wpmCloseProviderWarning = __wpmCloseProviderWarning;
|
||||
popupBody.popup = this.popup;
|
||||
this.popup.hide();
|
||||
this.popup.show(0, this.menuLabelElement.offsetHeight, width, height, this.menuLabelElement);
|
||||
}
|
||||
function WebPartMenu_Hide() {
|
||||
if (__wpm.menu == this) {
|
||||
__wpm.menu = null;
|
||||
if ((typeof(this.popup) != "undefined") && (this.popup != null)) {
|
||||
this.popup.hide();
|
||||
this.popup = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebPartMenu_Hover() {
|
||||
if (this.labelHoverClassName != "") {
|
||||
this.menuLabelElement.className = this.menuLabelElement.className + " " + this.labelHoverClassName;
|
||||
}
|
||||
if (this.labelHoverColor != "") {
|
||||
this.menuLabelElement.style.color = this.labelHoverColor;
|
||||
}
|
||||
}
|
||||
function WebPartMenu_Unhover() {
|
||||
if (this.labelHoverClassName != "") {
|
||||
this.menuLabelElement.style.textDecoration = this.oldTextDecoration;
|
||||
this.menuLabelElement.className = this.oldClassName;
|
||||
}
|
||||
if (this.labelHoverColor != "") {
|
||||
this.menuLabelElement.style.color = this.oldColor;
|
||||
}
|
||||
}
|
||||
function WebPartMenu_OnClick() {
|
||||
var menu = window.event.srcElement.__menu;
|
||||
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||
window.event.returnValue = false;
|
||||
window.event.cancelBubble = true;
|
||||
menu.Show();
|
||||
}
|
||||
}
|
||||
function WebPartMenu_OnKeyPress() {
|
||||
if (window.event.keyCode == 13) {
|
||||
var menu = window.event.srcElement.__menu;
|
||||
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||
window.event.returnValue = false;
|
||||
window.event.cancelBubble = true;
|
||||
menu.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebPartMenu_OnMouseEnter() {
|
||||
var menu = window.event.srcElement.__menu;
|
||||
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||
menu.Hover();
|
||||
}
|
||||
}
|
||||
function WebPartMenu_OnMouseLeave() {
|
||||
var menu = window.event.srcElement.__menu;
|
||||
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||
menu.Unhover();
|
||||
}
|
||||
}
|
||||
function WebPartManager() {
|
||||
this.overlayContainerElement = null;
|
||||
this.zones = new Array();
|
||||
this.dragState = null;
|
||||
this.menu = null;
|
||||
this.draggedWebPart = null;
|
||||
this.AddZone = WebPartManager_AddZone;
|
||||
this.IsDragDropEnabled = WebPartManager_IsDragDropEnabled;
|
||||
this.DragDrop = WebPartManager_DragDrop;
|
||||
this.InitiateWebPartDragDrop = WebPartManager_InitiateWebPartDragDrop;
|
||||
this.CompleteWebPartDragDrop = WebPartManager_CompleteWebPartDragDrop;
|
||||
this.ContinueWebPartDragDrop = WebPartManager_ContinueWebPartDragDrop;
|
||||
this.ProcessWebPartDragEnter = WebPartManager_ProcessWebPartDragEnter;
|
||||
this.ProcessWebPartDragOver = WebPartManager_ProcessWebPartDragOver;
|
||||
this.ProcessWebPartDrop = WebPartManager_ProcessWebPartDrop;
|
||||
this.ShowHelp = WebPartManager_ShowHelp;
|
||||
this.ExportWebPart = WebPartManager_ExportWebPart;
|
||||
this.Execute = WebPartManager_Execute;
|
||||
this.SubmitPage = WebPartManager_SubmitPage;
|
||||
this.UpdatePositions = WebPartManager_UpdatePositions;
|
||||
window.attachEvent("onunload", WebPartManager_Dispose);
|
||||
}
|
||||
function WebPartManager_Dispose() {
|
||||
for (var i = 0; i < __wpm.zones.length; i++) {
|
||||
__wpm.zones[i].Dispose();
|
||||
}
|
||||
window.detachEvent("onunload", WebPartManager_Dispose);
|
||||
}
|
||||
function WebPartManager_AddZone(zoneElement, uniqueID, isVertical, allowLayoutChange, highlightColor) {
|
||||
var zoneIndex = this.zones.length;
|
||||
var zone = new Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor);
|
||||
this.zones[zoneIndex] = zone;
|
||||
return zone;
|
||||
}
|
||||
function WebPartManager_IsDragDropEnabled() {
|
||||
return ((typeof(this.overlayContainerElement) != "undefined") && (this.overlayContainerElement != null));
|
||||
}
|
||||
function WebPartManager_DragDrop() {
|
||||
if ((typeof(this.draggedWebPart) != "undefined") && (this.draggedWebPart != null)) {
|
||||
var tempWebPart = this.draggedWebPart;
|
||||
this.draggedWebPart = null;
|
||||
tempWebPart.dragDrop();
|
||||
window.setTimeout("__wpClearSelection()", 0);
|
||||
}
|
||||
}
|
||||
function WebPartManager_InitiateWebPartDragDrop(webPartElement) {
|
||||
var webPart = webPartElement.__webPart;
|
||||
this.UpdatePositions();
|
||||
this.dragState = new WebPartDragState(webPartElement, "move");
|
||||
var location = __wpGetPageEventLocation(window.event, true);
|
||||
var overlayContainerElement = this.overlayContainerElement;
|
||||
overlayContainerElement.style.left = location.x - webPartElement.offsetWidth / 2;
|
||||
overlayContainerElement.style.top = location.y + 4 + (webPartElement.clientTop ? webPartElement.clientTop : 0);
|
||||
overlayContainerElement.style.display = "block";
|
||||
overlayContainerElement.style.width = webPartElement.offsetWidth;
|
||||
overlayContainerElement.style.height = webPartElement.offsetHeight;
|
||||
overlayContainerElement.appendChild(webPartElement.cloneNode(true));
|
||||
if (webPart.allowZoneChange == false) {
|
||||
webPart.zone.allowDrop = true;
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < __wpm.zones.length; i++) {
|
||||
var zone = __wpm.zones[i];
|
||||
if (zone.allowLayoutChange) {
|
||||
zone.allowDrop = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
document.body.attachEvent("ondragover", Zone_OnDragOver);
|
||||
return "move";
|
||||
}
|
||||
function WebPartManager_CompleteWebPartDragDrop() {
|
||||
var dragState = this.dragState;
|
||||
this.dragState = null;
|
||||
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
|
||||
}
|
||||
document.body.detachEvent("ondragover", Zone_OnDragOver);
|
||||
for (var i = 0; i < __wpm.zones.length; i++) {
|
||||
__wpm.zones[i].allowDrop = false;
|
||||
}
|
||||
this.overlayContainerElement.removeChild(this.overlayContainerElement.firstChild);
|
||||
this.overlayContainerElement.style.display = "none";
|
||||
if ((typeof(dragState) != "undefined") && (dragState != null) && (dragState.dropped == true)) {
|
||||
var currentZone = dragState.webPartElement.__webPart.zone;
|
||||
var currentZoneIndex = dragState.webPartElement.__webPart.zoneIndex;
|
||||
if ((currentZone != dragState.dropZoneElement.__zone) ||
|
||||
((currentZoneIndex != dragState.dropIndex) &&
|
||||
(currentZoneIndex != (dragState.dropIndex - 1)))) {
|
||||
var eventTarget = dragState.dropZoneElement.__zone.uniqueID;
|
||||
var eventArgument = "Drag:" + dragState.webPartElement.id + ":" + dragState.dropIndex;
|
||||
this.SubmitPage(eventTarget, eventArgument);
|
||||
}
|
||||
}
|
||||
}
|
||||
function WebPartManager_ContinueWebPartDragDrop() {
|
||||
var dragState = this.dragState;
|
||||
if ((typeof(dragState) != "undefined") && (dragState != null)) {
|
||||
var style = this.overlayContainerElement.style;
|
||||
var location = __wpGetPageEventLocation(window.event, true);
|
||||
style.left = location.x - dragState.webPartElement.offsetWidth / 2;
|
||||
style.top = location.y + 4 + (dragState.webPartElement.clientTop ? dragState.webPartElement.clientTop : 0);
|
||||
}
|
||||
}
|
||||
function WebPartManager_Execute(script) {
|
||||
if (this.menu) {
|
||||
this.menu.Hide();
|
||||
}
|
||||
var scriptReference = new Function(script);
|
||||
return (scriptReference() != false);
|
||||
}
|
||||
function WebPartManager_ProcessWebPartDragEnter() {
|
||||
var dragState = __wpm.dragState;
|
||||
if ((typeof(dragState) != "undefined") && (dragState != null)) {
|
||||
var currentEvent = window.event;
|
||||
var newDropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
|
||||
if ((typeof(newDropZoneElement.__zone) == "undefined") || (newDropZoneElement.__zone == null) ||
|
||||
(newDropZoneElement.__zone.allowDrop == false)) {
|
||||
newDropZoneElement = null;
|
||||
}
|
||||
var newDropIndex = -1;
|
||||
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
|
||||
newDropIndex = newDropZoneElement.__zone.GetWebPartIndex(__wpGetPageEventLocation(currentEvent, false));
|
||||
if (newDropIndex == -1) {
|
||||
newDropZoneElement = null;
|
||||
}
|
||||
}
|
||||
if (dragState.dropZoneElement != newDropZoneElement) {
|
||||
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
|
||||
}
|
||||
dragState.dropZoneElement = newDropZoneElement;
|
||||
dragState.dropIndex = newDropIndex;
|
||||
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
|
||||
newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
|
||||
}
|
||||
}
|
||||
else if (dragState.dropIndex != newDropIndex) {
|
||||
if (dragState.dropIndex != -1) {
|
||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
|
||||
}
|
||||
dragState.dropIndex = newDropIndex;
|
||||
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
|
||||
newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
|
||||
}
|
||||
}
|
||||
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||
currentEvent.dataTransfer.effectAllowed = dragState.effect;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function WebPartManager_ProcessWebPartDragOver() {
|
||||
var dragState = __wpm.dragState;
|
||||
var currentEvent = window.event;
|
||||
var handled = false;
|
||||
if ((typeof(dragState) != "undefined") && (dragState != null) &&
|
||||
(typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||
var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
|
||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) {
|
||||
dropZoneElement = null;
|
||||
}
|
||||
if (((typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) &&
|
||||
(typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false);
|
||||
dragState.dropZoneElement = null;
|
||||
dragState.dropIndex = -1;
|
||||
}
|
||||
else if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) {
|
||||
var location = __wpGetPageEventLocation(currentEvent, false);
|
||||
var newDropIndex = dropZoneElement.__zone.GetWebPartIndex(location);
|
||||
if (newDropIndex == -1) {
|
||||
dropZoneElement = null;
|
||||
}
|
||||
if (dragState.dropZoneElement != dropZoneElement) {
|
||||
if ((dragState.dropIndex != -1) || (typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) {
|
||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false);
|
||||
}
|
||||
dragState.dropZoneElement = dropZoneElement;
|
||||
}
|
||||
else {
|
||||
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, true);
|
||||
}
|
||||
dragState.dropIndex = newDropIndex;
|
||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) {
|
||||
dropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
|
||||
}
|
||||
}
|
||||
handled = true;
|
||||
}
|
||||
if ((typeof(dragState) == "undefined") || (dragState == null) ||
|
||||
(typeof(dragState.dropZoneElement) == "undefined") || (dragState.dropZoneElement == null)) {
|
||||
currentEvent.dataTransfer.effectAllowed = "none";
|
||||
}
|
||||
return handled;
|
||||
}
|
||||
function WebPartManager_ProcessWebPartDrop() {
|
||||
var dragState = this.dragState;
|
||||
if ((typeof(dragState) != "undefined") && (dragState != null)) {
|
||||
var currentEvent = window.event;
|
||||
var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
|
||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) {
|
||||
dropZoneElement = null;
|
||||
}
|
||||
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dragState.dropZoneElement == dropZoneElement)) {
|
||||
dragState.dropped = true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function WebPartManager_ShowHelp(helpUrl, helpMode) {
|
||||
if ((typeof(this.menu) != "undefined") && (this.menu != null)) {
|
||||
this.menu.Hide();
|
||||
}
|
||||
if (helpMode == 0 || helpMode == 1) {
|
||||
if (helpMode == 0) {
|
||||
var dialogInfo = "edge: Sunken; center: yes; help: no; resizable: yes; status: no";
|
||||
window.showModalDialog(helpUrl, null, dialogInfo);
|
||||
}
|
||||
else {
|
||||
window.open(helpUrl, null, "scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no");
|
||||
}
|
||||
}
|
||||
else if (helpMode == 2) {
|
||||
window.location = helpUrl;
|
||||
}
|
||||
}
|
||||
function WebPartManager_ExportWebPart(exportUrl, warn, confirmOnly) {
|
||||
if (warn == true && __wpmExportWarning.length > 0 && this.personalizationScopeShared != true) {
|
||||
if (confirm(__wpmExportWarning) == false) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (confirmOnly == false) {
|
||||
window.location = exportUrl;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function WebPartManager_UpdatePositions() {
|
||||
for (var i = 0; i < this.zones.length; i++) {
|
||||
this.zones[i].UpdatePosition();
|
||||
}
|
||||
}
|
||||
function WebPartManager_SubmitPage(eventTarget, eventArgument) {
|
||||
if ((typeof(this.menu) != "undefined") && (this.menu != null)) {
|
||||
this.menu.Hide();
|
||||
}
|
||||
__doPostBack(eventTarget, eventArgument);
|
||||
}
|
||||
684
WebFormApp/Scripts/WebForms/WebUIValidation.js
Normal file
684
WebFormApp/Scripts/WebForms/WebUIValidation.js
Normal file
@@ -0,0 +1,684 @@
|
||||
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebUIValidation.js
|
||||
var Page_ValidationVer = "125";
|
||||
var Page_IsValid = true;
|
||||
var Page_BlockSubmit = false;
|
||||
var Page_InvalidControlToBeFocused = null;
|
||||
var Page_TextTypes = /^(text|password|file|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i;
|
||||
function ValidatorUpdateDisplay(val) {
|
||||
if (typeof(val.display) == "string") {
|
||||
if (val.display == "None") {
|
||||
return;
|
||||
}
|
||||
if (val.display == "Dynamic") {
|
||||
val.style.display = val.isvalid ? "none" : "inline";
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((navigator.userAgent.indexOf("Mac") > -1) &&
|
||||
(navigator.userAgent.indexOf("MSIE") > -1)) {
|
||||
val.style.display = "inline";
|
||||
}
|
||||
val.style.visibility = val.isvalid ? "hidden" : "visible";
|
||||
}
|
||||
function ValidatorUpdateIsValid() {
|
||||
Page_IsValid = AllValidatorsValid(Page_Validators);
|
||||
}
|
||||
function AllValidatorsValid(validators) {
|
||||
if ((typeof(validators) != "undefined") && (validators != null)) {
|
||||
var i;
|
||||
for (i = 0; i < validators.length; i++) {
|
||||
if (!validators[i].isvalid) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function ValidatorHookupControlID(controlID, val) {
|
||||
if (typeof(controlID) != "string") {
|
||||
return;
|
||||
}
|
||||
var ctrl = document.getElementById(controlID);
|
||||
if ((typeof(ctrl) != "undefined") && (ctrl != null)) {
|
||||
ValidatorHookupControl(ctrl, val);
|
||||
}
|
||||
else {
|
||||
val.isvalid = true;
|
||||
val.enabled = false;
|
||||
}
|
||||
}
|
||||
function ValidatorHookupControl(control, val) {
|
||||
if (typeof(control.tagName) != "string") {
|
||||
return;
|
||||
}
|
||||
if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") {
|
||||
var i;
|
||||
for (i = 0; i < control.childNodes.length; i++) {
|
||||
ValidatorHookupControl(control.childNodes[i], val);
|
||||
}
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (typeof(control.Validators) == "undefined") {
|
||||
control.Validators = new Array;
|
||||
var eventType;
|
||||
if (control.type == "radio") {
|
||||
eventType = "onclick";
|
||||
} else {
|
||||
eventType = "onchange";
|
||||
if (typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
|
||||
ValidatorHookupEvent(control, "onblur", "ValidatedControlOnBlur(event); ");
|
||||
}
|
||||
}
|
||||
ValidatorHookupEvent(control, eventType, "ValidatorOnChange(event); ");
|
||||
if (Page_TextTypes.test(control.type)) {
|
||||
ValidatorHookupEvent(control, "onkeypress",
|
||||
"event = event || window.event; if (!ValidatedTextBoxOnKeyPress(event)) { event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false; } ");
|
||||
}
|
||||
}
|
||||
control.Validators[control.Validators.length] = val;
|
||||
}
|
||||
}
|
||||
function ValidatorHookupEvent(control, eventType, functionPrefix) {
|
||||
var ev = control[eventType];
|
||||
if (typeof(ev) == "function") {
|
||||
ev = ev.toString();
|
||||
ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
|
||||
}
|
||||
else {
|
||||
ev = "";
|
||||
}
|
||||
control[eventType] = new Function("event", functionPrefix + " " + ev);
|
||||
}
|
||||
function ValidatorGetValue(id) {
|
||||
var control;
|
||||
control = document.getElementById(id);
|
||||
if (typeof(control.value) == "string") {
|
||||
return control.value;
|
||||
}
|
||||
return ValidatorGetValueRecursive(control);
|
||||
}
|
||||
function ValidatorGetValueRecursive(control)
|
||||
{
|
||||
if (typeof(control.value) == "string" && (control.type != "radio" || control.checked == true)) {
|
||||
return control.value;
|
||||
}
|
||||
var i, val;
|
||||
for (i = 0; i<control.childNodes.length; i++) {
|
||||
val = ValidatorGetValueRecursive(control.childNodes[i]);
|
||||
if (val != "") return val;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
function Page_ClientValidate(validationGroup) {
|
||||
Page_InvalidControlToBeFocused = null;
|
||||
if (typeof(Page_Validators) == "undefined") {
|
||||
return true;
|
||||
}
|
||||
var i;
|
||||
for (i = 0; i < Page_Validators.length; i++) {
|
||||
ValidatorValidate(Page_Validators[i], validationGroup, null);
|
||||
}
|
||||
ValidatorUpdateIsValid();
|
||||
ValidationSummaryOnSubmit(validationGroup);
|
||||
Page_BlockSubmit = !Page_IsValid;
|
||||
return Page_IsValid;
|
||||
}
|
||||
function ValidatorCommonOnSubmit() {
|
||||
Page_InvalidControlToBeFocused = null;
|
||||
var result = !Page_BlockSubmit;
|
||||
if ((typeof(window.event) != "undefined") && (window.event != null)) {
|
||||
window.event.returnValue = result;
|
||||
}
|
||||
Page_BlockSubmit = false;
|
||||
return result;
|
||||
}
|
||||
function ValidatorEnable(val, enable) {
|
||||
val.enabled = (enable != false);
|
||||
ValidatorValidate(val);
|
||||
ValidatorUpdateIsValid();
|
||||
}
|
||||
function ValidatorOnChange(event) {
|
||||
event = event || window.event;
|
||||
Page_InvalidControlToBeFocused = null;
|
||||
var targetedControl;
|
||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||
targetedControl = event.srcElement;
|
||||
}
|
||||
else {
|
||||
targetedControl = event.target;
|
||||
}
|
||||
var vals;
|
||||
if (typeof(targetedControl.Validators) != "undefined") {
|
||||
vals = targetedControl.Validators;
|
||||
}
|
||||
else {
|
||||
if (targetedControl.tagName.toLowerCase() == "label") {
|
||||
targetedControl = document.getElementById(targetedControl.htmlFor);
|
||||
vals = targetedControl.Validators;
|
||||
}
|
||||
}
|
||||
if (vals) {
|
||||
for (var i = 0; i < vals.length; i++) {
|
||||
ValidatorValidate(vals[i], null, event);
|
||||
}
|
||||
}
|
||||
ValidatorUpdateIsValid();
|
||||
}
|
||||
function ValidatedTextBoxOnKeyPress(event) {
|
||||
event = event || window.event;
|
||||
if (event.keyCode == 13) {
|
||||
ValidatorOnChange(event);
|
||||
var vals;
|
||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||
vals = event.srcElement.Validators;
|
||||
}
|
||||
else {
|
||||
vals = event.target.Validators;
|
||||
}
|
||||
return AllValidatorsValid(vals);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function ValidatedControlOnBlur(event) {
|
||||
event = event || window.event;
|
||||
var control;
|
||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||
control = event.srcElement;
|
||||
}
|
||||
else {
|
||||
control = event.target;
|
||||
}
|
||||
if ((typeof(control) != "undefined") && (control != null) && (Page_InvalidControlToBeFocused == control)) {
|
||||
control.focus();
|
||||
Page_InvalidControlToBeFocused = null;
|
||||
}
|
||||
}
|
||||
function ValidatorValidate(val, validationGroup, event) {
|
||||
val.isvalid = true;
|
||||
if ((typeof(val.enabled) == "undefined" || val.enabled != false) && IsValidationGroupMatch(val, validationGroup)) {
|
||||
if (typeof(val.evaluationfunction) == "function") {
|
||||
val.isvalid = val.evaluationfunction(val);
|
||||
if (!val.isvalid && Page_InvalidControlToBeFocused == null &&
|
||||
typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
|
||||
ValidatorSetFocus(val, event);
|
||||
}
|
||||
}
|
||||
}
|
||||
ValidatorUpdateDisplay(val);
|
||||
}
|
||||
function ValidatorSetFocus(val, event) {
|
||||
var ctrl;
|
||||
if (typeof(val.controlhookup) == "string") {
|
||||
var eventCtrl;
|
||||
if ((typeof(event) != "undefined") && (event != null)) {
|
||||
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||
eventCtrl = event.srcElement;
|
||||
}
|
||||
else {
|
||||
eventCtrl = event.target;
|
||||
}
|
||||
}
|
||||
if ((typeof(eventCtrl) != "undefined") && (eventCtrl != null) &&
|
||||
(typeof(eventCtrl.id) == "string") &&
|
||||
(eventCtrl.id == val.controlhookup)) {
|
||||
ctrl = eventCtrl;
|
||||
}
|
||||
}
|
||||
if ((typeof(ctrl) == "undefined") || (ctrl == null)) {
|
||||
ctrl = document.getElementById(val.controltovalidate);
|
||||
}
|
||||
if ((typeof(ctrl) != "undefined") && (ctrl != null) &&
|
||||
(ctrl.tagName.toLowerCase() != "table" || (typeof(event) == "undefined") || (event == null)) &&
|
||||
((ctrl.tagName.toLowerCase() != "input") || (ctrl.type.toLowerCase() != "hidden")) &&
|
||||
(typeof(ctrl.disabled) == "undefined" || ctrl.disabled == null || ctrl.disabled == false) &&
|
||||
(typeof(ctrl.visible) == "undefined" || ctrl.visible == null || ctrl.visible != false) &&
|
||||
(IsInVisibleContainer(ctrl))) {
|
||||
if ((ctrl.tagName.toLowerCase() == "table" && (typeof(__nonMSDOMBrowser) == "undefined" || __nonMSDOMBrowser)) ||
|
||||
(ctrl.tagName.toLowerCase() == "span")) {
|
||||
var inputElements = ctrl.getElementsByTagName("input");
|
||||
var lastInputElement = inputElements[inputElements.length -1];
|
||||
if (lastInputElement != null) {
|
||||
ctrl = lastInputElement;
|
||||
}
|
||||
}
|
||||
if (typeof(ctrl.focus) != "undefined" && ctrl.focus != null) {
|
||||
ctrl.focus();
|
||||
Page_InvalidControlToBeFocused = ctrl;
|
||||
}
|
||||
}
|
||||
}
|
||||
function IsInVisibleContainer(ctrl) {
|
||||
if (typeof(ctrl.style) != "undefined" &&
|
||||
( ( typeof(ctrl.style.display) != "undefined" &&
|
||||
ctrl.style.display == "none") ||
|
||||
( typeof(ctrl.style.visibility) != "undefined" &&
|
||||
ctrl.style.visibility == "hidden") ) ) {
|
||||
return false;
|
||||
}
|
||||
else if (typeof(ctrl.parentNode) != "undefined" &&
|
||||
ctrl.parentNode != null &&
|
||||
ctrl.parentNode != ctrl) {
|
||||
return IsInVisibleContainer(ctrl.parentNode);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function IsValidationGroupMatch(control, validationGroup) {
|
||||
if ((typeof(validationGroup) == "undefined") || (validationGroup == null)) {
|
||||
return true;
|
||||
}
|
||||
var controlGroup = "";
|
||||
if (typeof(control.validationGroup) == "string") {
|
||||
controlGroup = control.validationGroup;
|
||||
}
|
||||
return (controlGroup == validationGroup);
|
||||
}
|
||||
function ValidatorOnLoad() {
|
||||
if (typeof(Page_Validators) == "undefined")
|
||||
return;
|
||||
var i, val;
|
||||
for (i = 0; i < Page_Validators.length; i++) {
|
||||
val = Page_Validators[i];
|
||||
if (typeof(val.evaluationfunction) == "string") {
|
||||
eval("val.evaluationfunction = " + val.evaluationfunction + ";");
|
||||
}
|
||||
if (typeof(val.isvalid) == "string") {
|
||||
if (val.isvalid == "False") {
|
||||
val.isvalid = false;
|
||||
Page_IsValid = false;
|
||||
}
|
||||
else {
|
||||
val.isvalid = true;
|
||||
}
|
||||
} else {
|
||||
val.isvalid = true;
|
||||
}
|
||||
if (typeof(val.enabled) == "string") {
|
||||
val.enabled = (val.enabled != "False");
|
||||
}
|
||||
if (typeof(val.controltovalidate) == "string") {
|
||||
ValidatorHookupControlID(val.controltovalidate, val);
|
||||
}
|
||||
if (typeof(val.controlhookup) == "string") {
|
||||
ValidatorHookupControlID(val.controlhookup, val);
|
||||
}
|
||||
}
|
||||
Page_ValidationActive = true;
|
||||
}
|
||||
function ValidatorConvert(op, dataType, val) {
|
||||
function GetFullYear(year) {
|
||||
var twoDigitCutoffYear = val.cutoffyear % 100;
|
||||
var cutoffYearCentury = val.cutoffyear - twoDigitCutoffYear;
|
||||
return ((year > twoDigitCutoffYear) ? (cutoffYearCentury - 100 + year) : (cutoffYearCentury + year));
|
||||
}
|
||||
var num, cleanInput, m, exp;
|
||||
if (dataType == "Integer") {
|
||||
exp = /^\s*[-\+]?\d+\s*$/;
|
||||
if (op.match(exp) == null)
|
||||
return null;
|
||||
num = parseInt(op, 10);
|
||||
return (isNaN(num) ? null : num);
|
||||
}
|
||||
else if(dataType == "Double") {
|
||||
exp = new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + "?(\\d*)\\s*$");
|
||||
m = op.match(exp);
|
||||
if (m == null)
|
||||
return null;
|
||||
if (m[2].length == 0 && m[3].length == 0)
|
||||
return null;
|
||||
cleanInput = (m[1] != null ? m[1] : "") + (m[2].length>0 ? m[2] : "0") + (m[3].length>0 ? "." + m[3] : "");
|
||||
num = parseFloat(cleanInput);
|
||||
return (isNaN(num) ? null : num);
|
||||
}
|
||||
else if (dataType == "Currency") {
|
||||
var hasDigits = (val.digits > 0);
|
||||
var beginGroupSize, subsequentGroupSize;
|
||||
var groupSizeNum = parseInt(val.groupsize, 10);
|
||||
if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
|
||||
beginGroupSize = "{1," + groupSizeNum + "}";
|
||||
subsequentGroupSize = "{" + groupSizeNum + "}";
|
||||
}
|
||||
else {
|
||||
beginGroupSize = subsequentGroupSize = "+";
|
||||
}
|
||||
exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
|
||||
+ (hasDigits ? "\\" + val.decimalchar + "?(\\d{0," + val.digits + "})" : "")
|
||||
+ "\\s*$");
|
||||
m = op.match(exp);
|
||||
if (m == null)
|
||||
return null;
|
||||
if (m[2].length == 0 && hasDigits && m[5].length == 0)
|
||||
return null;
|
||||
cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : "");
|
||||
num = parseFloat(cleanInput);
|
||||
return (isNaN(num) ? null : num);
|
||||
}
|
||||
else if (dataType == "Date") {
|
||||
var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\.?\\s*$");
|
||||
m = op.match(yearFirstExp);
|
||||
var day, month, year;
|
||||
if (m != null && (((typeof(m[2]) != "undefined") && (m[2].length == 4)) || val.dateorder == "ymd")) {
|
||||
day = m[6];
|
||||
month = m[5];
|
||||
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
|
||||
}
|
||||
else {
|
||||
if (val.dateorder == "ymd"){
|
||||
return null;
|
||||
}
|
||||
var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})(?:\\s|\\2)((\\d{4})|(\\d{2}))(?:\\s\u0433\\.|\\.)?\\s*$");
|
||||
m = op.match(yearLastExp);
|
||||
if (m == null) {
|
||||
return null;
|
||||
}
|
||||
if (val.dateorder == "mdy") {
|
||||
day = m[3];
|
||||
month = m[1];
|
||||
}
|
||||
else {
|
||||
day = m[1];
|
||||
month = m[3];
|
||||
}
|
||||
year = ((typeof(m[5]) != "undefined") && (m[5].length == 4)) ? m[5] : GetFullYear(parseInt(m[6], 10));
|
||||
}
|
||||
month -= 1;
|
||||
var date = new Date(year, month, day);
|
||||
if (year < 100) {
|
||||
date.setFullYear(year);
|
||||
}
|
||||
return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null;
|
||||
}
|
||||
else {
|
||||
return op.toString();
|
||||
}
|
||||
}
|
||||
function ValidatorCompare(operand1, operand2, operator, val) {
|
||||
var dataType = val.type;
|
||||
var op1, op2;
|
||||
if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)
|
||||
return false;
|
||||
if (operator == "DataTypeCheck")
|
||||
return true;
|
||||
if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)
|
||||
return true;
|
||||
switch (operator) {
|
||||
case "NotEqual":
|
||||
return (op1 != op2);
|
||||
case "GreaterThan":
|
||||
return (op1 > op2);
|
||||
case "GreaterThanEqual":
|
||||
return (op1 >= op2);
|
||||
case "LessThan":
|
||||
return (op1 < op2);
|
||||
case "LessThanEqual":
|
||||
return (op1 <= op2);
|
||||
default:
|
||||
return (op1 == op2);
|
||||
}
|
||||
}
|
||||
function CompareValidatorEvaluateIsValid(val) {
|
||||
var value = ValidatorGetValue(val.controltovalidate);
|
||||
if (ValidatorTrim(value).length == 0)
|
||||
return true;
|
||||
var compareTo = "";
|
||||
if ((typeof(val.controltocompare) != "string") ||
|
||||
(typeof(document.getElementById(val.controltocompare)) == "undefined") ||
|
||||
(null == document.getElementById(val.controltocompare))) {
|
||||
if (typeof(val.valuetocompare) == "string") {
|
||||
compareTo = val.valuetocompare;
|
||||
}
|
||||
}
|
||||
else {
|
||||
compareTo = ValidatorGetValue(val.controltocompare);
|
||||
}
|
||||
var operator = "Equal";
|
||||
if (typeof(val.operator) == "string") {
|
||||
operator = val.operator;
|
||||
}
|
||||
return ValidatorCompare(value, compareTo, operator, val);
|
||||
}
|
||||
function CustomValidatorEvaluateIsValid(val) {
|
||||
var value = "";
|
||||
if (typeof(val.controltovalidate) == "string") {
|
||||
value = ValidatorGetValue(val.controltovalidate);
|
||||
if ((ValidatorTrim(value).length == 0) &&
|
||||
((typeof(val.validateemptytext) != "string") || (val.validateemptytext != "true"))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
var args = { Value:value, IsValid:true };
|
||||
if (typeof(val.clientvalidationfunction) == "string") {
|
||||
eval(val.clientvalidationfunction + "(val, args) ;");
|
||||
}
|
||||
return args.IsValid;
|
||||
}
|
||||
function RegularExpressionValidatorEvaluateIsValid(val) {
|
||||
var value = ValidatorGetValue(val.controltovalidate);
|
||||
if (ValidatorTrim(value).length == 0)
|
||||
return true;
|
||||
var rx = new RegExp(val.validationexpression);
|
||||
var matches = rx.exec(value);
|
||||
return (matches != null && value == matches[0]);
|
||||
}
|
||||
function ValidatorTrim(s) {
|
||||
var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
|
||||
return (m == null) ? "" : m[1];
|
||||
}
|
||||
function RequiredFieldValidatorEvaluateIsValid(val) {
|
||||
return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue))
|
||||
}
|
||||
function RangeValidatorEvaluateIsValid(val) {
|
||||
var value = ValidatorGetValue(val.controltovalidate);
|
||||
if (ValidatorTrim(value).length == 0)
|
||||
return true;
|
||||
return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) &&
|
||||
ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val));
|
||||
}
|
||||
function ValidationSummaryOnSubmit(validationGroup) {
|
||||
if (typeof(Page_ValidationSummaries) == "undefined")
|
||||
return;
|
||||
var summary, sums, s;
|
||||
var headerSep, first, pre, post, end;
|
||||
for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
|
||||
summary = Page_ValidationSummaries[sums];
|
||||
if (!summary) continue;
|
||||
summary.style.display = "none";
|
||||
if (!Page_IsValid && IsValidationGroupMatch(summary, validationGroup)) {
|
||||
var i;
|
||||
if (summary.showsummary != "False") {
|
||||
summary.style.display = "";
|
||||
if (typeof(summary.displaymode) != "string") {
|
||||
summary.displaymode = "BulletList";
|
||||
}
|
||||
switch (summary.displaymode) {
|
||||
case "List":
|
||||
headerSep = "<br>";
|
||||
first = "";
|
||||
pre = "";
|
||||
post = "<br>";
|
||||
end = "";
|
||||
break;
|
||||
case "BulletList":
|
||||
default:
|
||||
headerSep = "";
|
||||
first = "<ul>";
|
||||
pre = "<li>";
|
||||
post = "</li>";
|
||||
end = "</ul>";
|
||||
break;
|
||||
case "SingleParagraph":
|
||||
headerSep = " ";
|
||||
first = "";
|
||||
pre = "";
|
||||
post = " ";
|
||||
end = "<br>";
|
||||
break;
|
||||
}
|
||||
s = "";
|
||||
if (typeof(summary.headertext) == "string") {
|
||||
s += summary.headertext + headerSep;
|
||||
}
|
||||
s += first;
|
||||
for (i=0; i<Page_Validators.length; i++) {
|
||||
if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
|
||||
s += pre + Page_Validators[i].errormessage + post;
|
||||
}
|
||||
}
|
||||
s += end;
|
||||
summary.innerHTML = s;
|
||||
window.scrollTo(0,0);
|
||||
}
|
||||
if (summary.showmessagebox == "True") {
|
||||
s = "";
|
||||
if (typeof(summary.headertext) == "string") {
|
||||
s += summary.headertext + "\r\n";
|
||||
}
|
||||
var lastValIndex = Page_Validators.length - 1;
|
||||
for (i=0; i<=lastValIndex; i++) {
|
||||
if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
|
||||
switch (summary.displaymode) {
|
||||
case "List":
|
||||
s += Page_Validators[i].errormessage;
|
||||
if (i < lastValIndex) {
|
||||
s += "\r\n";
|
||||
}
|
||||
break;
|
||||
case "BulletList":
|
||||
default:
|
||||
s += "- " + Page_Validators[i].errormessage;
|
||||
if (i < lastValIndex) {
|
||||
s += "\r\n";
|
||||
}
|
||||
break;
|
||||
case "SingleParagraph":
|
||||
s += Page_Validators[i].errormessage + " ";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
alert(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (window.jQuery) {
|
||||
(function ($) {
|
||||
var dataValidationAttribute = "data-val",
|
||||
dataValidationSummaryAttribute = "data-valsummary",
|
||||
normalizedAttributes = { validationgroup: "validationGroup", focusonerror: "focusOnError" };
|
||||
function getAttributesWithPrefix(element, prefix) {
|
||||
var i,
|
||||
attribute,
|
||||
list = {},
|
||||
attributes = element.attributes,
|
||||
length = attributes.length,
|
||||
prefixLength = prefix.length;
|
||||
prefix = prefix.toLowerCase();
|
||||
for (i = 0; i < length; i++) {
|
||||
attribute = attributes[i];
|
||||
if (attribute.specified && attribute.name.substr(0, prefixLength).toLowerCase() === prefix) {
|
||||
list[attribute.name.substr(prefixLength)] = attribute.value;
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
function normalizeKey(key) {
|
||||
key = key.toLowerCase();
|
||||
return normalizedAttributes[key] === undefined ? key : normalizedAttributes[key];
|
||||
}
|
||||
function addValidationExpando(element) {
|
||||
var attributes = getAttributesWithPrefix(element, dataValidationAttribute + "-");
|
||||
$.each(attributes, function (key, value) {
|
||||
element[normalizeKey(key)] = value;
|
||||
});
|
||||
}
|
||||
function dispose(element) {
|
||||
var index = $.inArray(element, Page_Validators);
|
||||
if (index >= 0) {
|
||||
Page_Validators.splice(index, 1);
|
||||
}
|
||||
}
|
||||
function addNormalizedAttribute(name, normalizedName) {
|
||||
normalizedAttributes[name.toLowerCase()] = normalizedName;
|
||||
}
|
||||
function parseSpecificAttribute(selector, attribute, validatorsArray) {
|
||||
return $(selector).find("[" + attribute + "='true']").each(function (index, element) {
|
||||
addValidationExpando(element);
|
||||
element.dispose = function () { dispose(element); element.dispose = null; };
|
||||
if ($.inArray(element, validatorsArray) === -1) {
|
||||
validatorsArray.push(element);
|
||||
}
|
||||
}).length;
|
||||
}
|
||||
function parse(selector) {
|
||||
var length = parseSpecificAttribute(selector, dataValidationAttribute, Page_Validators);
|
||||
length += parseSpecificAttribute(selector, dataValidationSummaryAttribute, Page_ValidationSummaries);
|
||||
return length;
|
||||
}
|
||||
function loadValidators() {
|
||||
if (typeof (ValidatorOnLoad) === "function") {
|
||||
ValidatorOnLoad();
|
||||
}
|
||||
if (typeof (ValidatorOnSubmit) === "undefined") {
|
||||
window.ValidatorOnSubmit = function () {
|
||||
return Page_ValidationActive ? ValidatorCommonOnSubmit() : true;
|
||||
};
|
||||
}
|
||||
}
|
||||
function registerUpdatePanel() {
|
||||
if (window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) {
|
||||
var prm = Sys.WebForms.PageRequestManager.getInstance(),
|
||||
postBackElement, endRequestHandler;
|
||||
if (prm.get_isInAsyncPostBack()) {
|
||||
endRequestHandler = function (sender, args) {
|
||||
if (parse(document)) {
|
||||
loadValidators();
|
||||
}
|
||||
prm.remove_endRequest(endRequestHandler);
|
||||
endRequestHandler = null;
|
||||
};
|
||||
prm.add_endRequest(endRequestHandler);
|
||||
}
|
||||
prm.add_beginRequest(function (sender, args) {
|
||||
postBackElement = args.get_postBackElement();
|
||||
});
|
||||
prm.add_pageLoaded(function (sender, args) {
|
||||
var i, panels, valFound = 0;
|
||||
if (typeof (postBackElement) === "undefined") {
|
||||
return;
|
||||
}
|
||||
panels = args.get_panelsUpdated();
|
||||
for (i = 0; i < panels.length; i++) {
|
||||
valFound += parse(panels[i]);
|
||||
}
|
||||
panels = args.get_panelsCreated();
|
||||
for (i = 0; i < panels.length; i++) {
|
||||
valFound += parse(panels[i]);
|
||||
}
|
||||
if (valFound) {
|
||||
loadValidators();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
$(function () {
|
||||
if (typeof (Page_Validators) === "undefined") {
|
||||
window.Page_Validators = [];
|
||||
}
|
||||
if (typeof (Page_ValidationSummaries) === "undefined") {
|
||||
window.Page_ValidationSummaries = [];
|
||||
}
|
||||
if (typeof (Page_ValidationActive) === "undefined") {
|
||||
window.Page_ValidationActive = false;
|
||||
}
|
||||
$.WebFormValidator = {
|
||||
addNormalizedAttribute: addNormalizedAttribute,
|
||||
parse: parse
|
||||
};
|
||||
if (parse(document)) {
|
||||
loadValidators();
|
||||
}
|
||||
registerUpdatePanel();
|
||||
});
|
||||
} (jQuery));
|
||||
}
|
||||
Reference in New Issue
Block a user