/* ******************************************************** * Common classes ******************************************************** */ Type.registerNamespace('PremierAjax.Common'); PremierAjax.Common.WebCache = function() { PremierAjax.Common.WebCache.initializeBase(this); // public fields } PremierAjax.Common.WebCache.prototype = { // public methods add : function(param, results) { var key = this._generateKey(param); this[key] = results; }, retrieve : function(param) { var key = this._generateKey(param); return this[key]; }, // private methods _generateKey : function(param) { var dictionaryKey = ''; for (var element in param) { dictionaryKey += '|'; dictionaryKey += param[element].toString(); } return dictionaryKey; }, initialize : function() { PremierAjax.Common.WebCache.callBaseMethod(this, 'initialize'); }, dispose : function() { PremierAjax.Common.WebCache.callBaseMethod(this, 'dispose'); } // accessors } PremierAjax.Common.WebCache.registerClass('PremierAjax.Common.WebCache', Sys.Component); /* ******************************************************** * static form helpers ******************************************************** */ Type.registerNamespace('PremierAjax.FormHelper'); PremierAjax.FormHelper.getSelectionStart = function PremierAjax$FormHelper$getSelectionStart(textBox) { var selectionStart = 0; if(textBox.selectionStart != null) { // DOM compliant selectionStart = textBox.selectionStart; } else { // IE craplient var range = document.selection.createRange(); var bookmark = range.getBookmark(); var selectionStart = bookmark.charCodeAt(2) - 3; } return selectionStart; } /* ******************************************************** * static window helpers ******************************************************** */ Type.registerNamespace('PremierAjax.WindowHelper'); PremierAjax.WindowHelper.getWindowWidth = function PremierAjax$WindowHelper$getWindowWidth() { var windowWidth = 0; if(typeof(window.innerWidth) == 'number') { // Netscape compliant windowWidth = window.innerWidth; } else if ((document.documentElement) && (document.documentElement.clientWidth)) { // DOM compliant windowWidth = document.documentElement.clientWidth; } else if ((document.body) && (document.body.clientWidth)) { // IE craplient windowWidth = document.body.clientWidth; } return windowWidth; } PremierAjax.WindowHelper.getWindowHeight = function PremierAjax$WindowHelper$getWindowHeight() { var windowHeight = 0; if(typeof(window.innerHeight) == 'number') { // Netscape compliant windowHeight = window.innerHeight; } else if ((document.documentElement) && (document.documentElement.clientHeight)) { // DOM compliant windowHeight = document.documentElement.clientHeight; } else if ((document.body) && (document.body.clientHeight)) { // IE craplient windowHeight = document.body.clientHeight; } return windowHeight; } PremierAjax.WindowHelper.getScrollXOffset = function PremierAjax$WindowHelper$getScrollXOffset() { var scrollXOffset = 0; if(typeof(window.pageYOffset) == 'number') { // Netscape compliant scrollXOffset = window.pageXOffset; } else if ((document.body) && (document.body.scrollLeft)) { // DOM compliant scrollXOffset = document.body.scrollLeft; } else if ((document.documentElement) && (document.documentElement.scrollLeft)) { // IE crapliant scrollXOffset = document.documentElement.scrollLeft; } return scrollXOffset; } PremierAjax.WindowHelper.getScrollYOffset = function PremierAjax$WindowHelper$getScrollYOffset() { var scrollYOffset = 0; if(typeof(window.pageYOffset) == 'number') { // Netscape compliant scrollYOffset = window.pageYOffset; } else if ((document.body) && (document.body.scrollTop)) { // DOM compliant scrollYOffset = document.body.scrollTop; } else if ((document.documentElement) && (document.documentElement.scrollTop)) { // IE crapliant scrollYOffset = document.documentElement.scrollTop; } return scrollYOffset; } PremierAjax.WindowHelper.getDocumentWidth = function PremierAjax$WindowHelper$getDocumentWidth() { return document.width || document.body.offsetWidth; } PremierAjax.WindowHelper.getDocumentHeight = function PremierAjax$WindowHelper$getDocumentHeight() { return document.height || document.body.offsetHeight; } PremierAjax.WindowHelper.getMouseXPosition = function PremierAjax$WindowHelper$getMouseXPosition(ev) { var xPosition = 0; if (ev.clientX) { // DOM compliant xPosition = ev.clientX; } else if (document.documentElement) { // IE crapliant xPosition = ev.clientX + document.body.scrollLeft; } return xPosition; } PremierAjax.WindowHelper.getMouseYPosition = function PremierAjax$WindowHelper$getMouseYPosition(ev) { var yPosition = 0; if (ev.clientY) { // DOM compliant yPosition = ev.clientY; } else if (document.documentElement) { // IE crapliant yPosition = ev.clientY + document.body.scrollTop; } return yPosition; } PremierAjax.WindowHelper.getElementXPosition = function PremierAjax$WindowHelper$getElementXPosition(element) { var xPosition = 0; var currentElement = element; while(currentElement != null) { xPosition += currentElement.offsetLeft; currentElement = currentElement.offsetParent; } return xPosition; } PremierAjax.WindowHelper.getElementYPosition = function PremierAjax$WindowHelper$getElementYPosition(element) { var yPosition = 0; var currentElement = element; while(currentElement != null) { yPosition += currentElement.offsetTop; currentElement = currentElement.offsetParent; } return yPosition; } PremierAjax.WindowHelper.getElementWidth = function PremierAjax$WindowHelper$getElementWidth(element) { var elementBounds = Sys.UI.DomElement.getBounds(element); return elementBounds.width; } PremierAjax.WindowHelper.getElementHeight = function PremierAjax$WindowHelper$getElementHeight(element) { var height = 0; if (element.clientHeight) { // DOM compliant height = element.clientHeight; } return height; } PremierAjax.WindowHelper.getElementScrollTop = function PremierAjax$WindowHelper$getElementScrollTop(element) { var scrollTop = 0; if (element.scrollTop) { // DOM compliant scrollTop = element.scrollTop; } return scrollTop; } PremierAjax.WindowHelper.setElementScrollTop = function PremierAjax$WindowHelper$setElementScrollTop(element, scrollTop) { // DOM compliant element.scrollTop = scrollTop; } PremierAjax.WindowHelper.isInFixedDiv = function PremierAjax$WindowHelper$isInFixedDiv(element) { var currentElement = element; while(true) { Sys.Debug.trace(PremierAjax.StyleHelper.getElementStyle(currentElement, 'position')); if(currentElement.parentNode.tagName.toLowerCase() == 'body') break; currentElement = currentElement.parentNode; } return false; } /* ******************************************************** * element style helpers ******************************************************** */ Type.registerNamespace('PremierAjax.StyleHelper'); PremierAjax.StyleHelper.getElementStyle = function PremierAjax$StyleHelper$getElementStyle(element, styleProperty) { var style = null; if (element.currentStyle) style = element.currentStyle[styleProperty]; else if (window.getComputedStyle) style = document.defaultView.getComputedStyle(element, null).getPropertyValue(styleProperty); return style; } PremierAjax.StyleHelper.setDisplay = function PremierAjax$StyleHelper$setDisplay(element, show) { if (document.layers) { document.layers[element.id].display = show; } else if (document.all) { document.all[element.id].style.display = show; } else if (document.getElementById) { document.getElementById(element.id).style.display = show; } } /* ******************************************************** * static navigator helpers * http://www.w3schools.com/js/tryit.asp?filename=try_dom_navigator ******************************************************** */ Type.registerNamespace('PremierAjax.NavigatorHelper'); PremierAjax.NavigatorHelper.BrowserName = function PremierAjax$NavigatorHelper$BrowserName() { if(navigator.userAgent.indexOf('Firefox') > -1) { return 'firefox'; } if(navigator.userAgent.indexOf('MSIE') > -1) { return 'ie'; } return 'unknown'; } PremierAjax.NavigatorHelper.BrowserMajorVersion = function PremierAjax$NavigatorHelper$BrowserMajorVersion() { if(PremierAjax.NavigatorHelper.BrowserName() == 'ie') { if(navigator.userAgent.indexOf('MSIE 7') > -1) { return 7; } if(navigator.userAgent.indexOf('MSIE 6') > -1) { return 6; } if(navigator.userAgent.indexOf('MSIE 5.5') > -1) { return 5.5; } } if(PremierAjax.NavigatorHelper.BrowserName() == 'firefox') { return parseInt(navigator.appVersion); } return 0; } /* ******************************************************** * static arrayHelpers ******************************************************** */ Type.registerNamespace('PremierAjax.ArrayHelper'); PremierAjax.ArrayHelper.IndexOf = function PremierAjax$ArrayHelper$IndexOf(array, value) { for(var arrayIndex = 0; arrayIndex < array.length; arrayIndex++) { if(array[arrayIndex] == value) return arrayIndex; } return -1; } /* ******************************************************** * static date helpers ******************************************************** */ Type.registerNamespace('PremierAjax.DateHelper'); PremierAjax.DateHelper.ToString = function PremierAjax$DateHelper$ToString(date) { var year = date.getFullYear(); var month = date.getMonth() + 1; if(month < 10) month = '0' + month; var day = date.getDate(); if(day < 10) day = '0' + day; return year + month + day } if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();