// ----------------------------------------------------------------------------
// browser / feature detection
// ----------------------------------------------------------------------------
// stolen from youngpup!
isIE = window.clientInformation ? true : false
isIEDTD = ((document.doctype && document.doctype.name.indexOf(".dtd")>-1) || document.compatMode == "CSS1Compat") ? true : false;
isN4 = document.layers ? true : false
isN6 = navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 5
isO5 = navigator.userAgent.indexOf("Opera") != -1 && parseInt(navigator.appVersion) >= 4
ie = document.all != null && !isO5;
safari = navigator.userAgent.indexOf("Safari/125") != -1;
moz = !ie && !safari && document.getElementById != null && document.layers == null && navigator.userAgent.indexOf("Netscape/7.02") == -1 && (navigator.userAgent.indexOf("Gecko") || navigator.userAgent.indexOf("Firefox"));
mac = (navigator.userAgent.indexOf("Macintosh") != -1 || navigator.userAgent.indexOf("Mac_PowerPC") != -1);
if (safari) {
document.write("");
}
// ----------------------------------------------------------------------------
// auto login state reconstruction helpers
// ----------------------------------------------------------------------------
function ql_nt(loc) {
n = new Array();
qidx = loc.indexOf('?');
if (qidx == -1) {
return( loc );
}
p = loc.substring(0, qidx);
s = loc.substring(qidx+1).split('&');
for( i = 0; i < s.length; ++i ) {
if(!(s[i].indexOf('returnUrl') == 0) && !(s[i].indexOf('SS_CSAT') == 0) && !(s[i].indexOf('SS_SERIALIZED_FORM_STATE') == 0) && !(s[i].indexOf('SS_INPUT_FORM_STATE') == 0) && SS_INPUT_FORM_STATE.indexOf(s[i]) == -1) {
n[n.length] = s[i];
}
}
return( p + (n.length ?—?' :—') + n.join('&') );
}
function ql_sifs() {
return(SS_INPUT_FORM_STATE ? SS_INPUT_FORM_STATE :—');
}
function ql_sfs() {
v='';
f=document.getElementById('dataform');
if(!f)f=document.dataform;
if(f){
for( i = 0; i0?'&':'')+escape(e.name)+'='+escape(e.value);
}
}
}
return(v);
}
function ql_csat() {
var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var i = 40;
var key = String();
while( i-- > 0 ) { key += letters.charAt( random(0, 25) ); }
return( key );
}
function deserializeFormState(state) {
f=document.getElementById('dataform');
if(!f)f=document.dataform;
if(f){
s = state.split('&');
for( i = 0; i < s.length; ++i ) {
c = s[i].split('=');
for( j = 0; j < c.length; ++j ) {
e = f.elements[unescape(c[0])];
if (e && e.type != 'hidden') { e.value = unescape(c[1]); }
}
}
}
}
// ----------------------------------------------------------------------------
// a nice rng
// ----------------------------------------------------------------------------
function NextRandomNumber() {
var hi = this.seed / this.Q;
var lo = this.seed % this.Q;
var test = this.A * lo - this.R * hi;
if (test > 0)
this.seed = test;
else
this.seed = test + this.M;
return (this.seed * this.oneOverM);
}
function RandomNumberGenerator() {
var d = new Date();
this.seed = 2345678901 +
(d.getSeconds() * 0xFFFFFF) +
(d.getMinutes() * 0xFFFF);
this.A = 48271;
this.M = 2147483647;
this.Q = this.M / this.A;
this.R = this.M % this.A;
this.oneOverM = 1.0 / this.M;
this.next = NextRandomNumber;
return this;
}
function random(lrn, urn) {
// Random LowerRange Number (lrn)
// Random UpperRange Number (urn)
return Math.floor((urn - lrn + 1) * rand.next() + lrn);
}
var rand = new RandomNumberGenerator();
// ----------------------------------------------------------------------------
// form submission / effects processing
// ----------------------------------------------------------------------------
function statusifyElements(root) {
var as = root.getElementsByTagName("a");
for (var i = 0; i < as.length; i++) {
var anchor = as[i];
if (anchor.title) {
anchor.onmouseover = function() { window.status = this.title; return true; }
anchor.onmouseout = function() { window.status =—'; return true; }
}
}
var as = root.getElementsByTagName("img");
for (var i = 0; i < as.length; i++) {
var img = as[i];
if (img.title) {
img.onmouseover = function() { window.status = this.title; return true; }
img.onmouseout = function() { window.status =—'; return true; }
}
}
}
function urlAttributeAdjust(url, name, val) {
if (url.match(new RegExp("(\\?|\\&)" + name + "=([^&]*)", "g"))) {
url= url.replace(new RegExp("(\\?|\\&)" + name + "=([^&]*)", "g"), "$1" + name + "=" + val);
} else {
if (url.indexOf("?") == -1) {
url = url + "?" + name + "=" + val;
} else {
url = url + "&" + name + "=" + val;
}
}
return( url );
}
function disableButtonForAction(buttonObj) {
buttonObj.disabled = 'true';
// buttonObj.value = 'Submitting..';
}
function smartSubmit(buttonObj, formName) {
disableButtonForAction( buttonObj );
document.forms[formName].submit();
return true;
}
function smartLocation(buttonObj, loc) {
disableButtonForAction( buttonObj );
document.location = loc;
return true;
}
function smartGoBack(buttonObj) {
disableButtonForAction( buttonObj );
history.go(-1);
return true;
}
function smartCancel() {
window.close();
}
function scrollToElement(name) {
window.scrollTo(0, getYCoord(document.getElementById(name)) - 100 );
}
functionMap = new Array();
oldButtonColors = new Array();
numericChars = "0123456789";
function inputContainsErrors(targetId) {
// method 1: fine errorText in it's standard title
var titleObj = document.getElementById(targetId +—_title');
if (titleObj) {
var scanDivs = titleObj.getElementsByTagName("div");
for (var i = 0; i < scanDivs.length; ++i) {
if (scanDivs[i].className == "errorText") { return( true ); }
}
}
return( false );
}
function autoFocus(formName, defaultFocus) {
var f = document.forms[formName];
if (!f) return;
var elCount = f.elements.length;
var errorsSeen = false;
var focusEl = false;
for (var i = 0; i < elCount; ++i) {
el = f.elements[i];
if (el.type == 'text' || el.type == 'edit' || el.type == 'password' || el.type == 'textarea' || el.type == 'checkbox' || el.type == 'radio' || el.type == 'select-one') {
if (inputContainsErrors( el.id ) && !focusEl) {
errorsSeen = true;
focusEl = el;
} else if (defaultFocus && !focusEl) {
focusEl = el;
}
}
}
if (focusEl) focusEl.focus();
}
function initFormEffects(formName) {
var f = document.forms[formName];
if (!f) return;
var elCount = f.elements.length;
for (var i = 0; i < elCount; i++) {
el = f.elements[i];
if (el.type == 'text' || el.type == 'edit' || el.type == 'password' || el.type == 'textarea' || el.type == 'checkbox' || el.type == 'select-one' || el.type == 'input') {
var inSequence = false;
var elNum, elName;
var n = el.name;
for (j=0; j < n.length; j++) {
if (numericChars.indexOf( n.charAt(j) ) == -1) continue; // if we found a number in the string
elName = n.substring(0, j);
elNum = n.substring(j);
// if this is not the first item, and it doesnt have its own title, its part of a sequence
if (elNum != "1" && document.getElementById(elName +—_title')) { inSequence = true; }
break;
}
if (inSequence) {
focusObjName = elName + '1_title';
} else {
focusObjName = el.name +—_title';
}
o = document.getElementById(focusObjName);
if (o != null) {
functionMap[el.name] = focusObjName;
if (el.type == 'checkbox') {
functionMap[o.id] = focusObjName;
}
el.onfocus = function() { document.getElementById(functionMap[this.name]).style.fontWeight = 'bold'; };
el.onblur = function() { document.getElementById(functionMap[this.name]).style.fontWeight = 'normal'; };
}
} else if (el.type == 'button' || el.type == 'submit') {
//el.onfocus = function() { oldButtonColors[this.name] = this.style.backgroundColor; this.style.backgroundColor =—#BBBBBB'; };
//el.onblur = function() { this.style.backgroundColor = oldButtonColors[this.name]; };
}
}
}
// ----------------------------------------------------------------------------
// add string helpers
// ----------------------------------------------------------------------------
Date.prototype.getFullYear = function () { return( window.moz || window.safari ? this.getYear() + 1900 : this.getYear() ); }
String.prototype.trim = function () { return this.replace(/^\s+/,'').replace(/\s+$/,''); }
function escapeForJS(str) {
return( str.replace(/"\'"/g, "\\\'").replace(/"\""/g, "\\\"") );
}
function capitalizeFirst(s) {
return( s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase() );
}
String.prototype.endsWith = function(sEnd) {
return (this.substr(this.length-sEnd.length)==sEnd);
}
String.prototype.startsWith = function(sStart) {
return (this.substr(0,sStart.length)==sStart);
}
// ----------------------------------------------------------------------------
// global functions
// ----------------------------------------------------------------------------
function copyToClipboard(resourceName, str, resourceIsText) {
if (!resourceIsText) { resourceName = "\'" + resourceName + "\'"; }
if (window.ie) {
window.clipboardData.setData('text', str);
showHelpTip(window.event, 'URL Copied to Clipboard
The URL for—+ resourceName +—has been copied to your clipboard. To give this file to someone, simply paste this URL to them.' );
} else {
showObject( document.getElementById("clipboardTextContainer") );
document.getElementById("clipboardTextFilename").innerHTML = resourceName + " ";
document.getElementById("clipboardTextContent").innerHTML = str;
}
}
function noop() { }
function getMouseRelativeX() {
return( parseInt(window.event.clientX) );
}
function getMouseRelativeY() {
return( parseInt(window.event.clientY) );
}
function getMouseX(e)
{
if (!e) var e = window.event;
if (e.pageX) return e.pageX;
return e.clientX + getViewportScrollX();
}
function getMouseY(e)
{
if (!e) var e = window.event;
if (e.pageY) return e.pageY;
return e.clientY + getViewportScrollY();
}
function getWidth(obj) {
return( parseInt(obj.offsetWidth) );
}
function getHeight(obj) {
return( parseInt(obj.offsetHeight) );
}
function getLeft(obj) {
return( parseInt(obj.offsetLeft) );
}
function getTop(obj) {
return( parseInt(obj.offsetTop) );
}
function setLeft(obj, distance) {
obj.style.left = distance + "px";
}
function setTop(obj, distance) {
obj.style.top = distance + "px";
}
function getXCoord(obj) {
x = getLeft(obj);
while (obj.offsetParent.tagName != "BODY" && obj.offsetParent.tagName != "HTML") {
obj = obj.offsetParent;
if (obj.offsetParent.tagName != "FORM") { x += getLeft(obj); }
}
return( x );
}
function getYCoord(obj) {
y = getTop(obj);
while (obj.offsetParent.tagName != "BODY" && obj.offsetParent.tagName != "HTML") {
obj = obj.offsetParent;
if (obj.offsetParent.tagName != "FORM") { y += getTop(obj); }
}
return( y );
}
function isHidden(obj) {
return( obj.style.display == "none" );
}
function isVisible(obj) {
return( !isHidden(obj) );
}
function hideObject(obj) {
if (obj) obj.style.display = "none";
}
function showObject(obj) {
if (obj) obj.style.display = "";
}
function toggleVisibility(obj) {
if (isHidden(obj)) {
showObject(obj);
} else {
hideObject(obj);
}
}
function trim(str) {
var idx_start = 0;
var idx_end = str.length - 1;
while (str.charAt(idx_start) ==—') { idx_start++; }
while (str.charAt(idx_end) ==—') { idx_end--; }
return( str.substr(idx_start, (idx_end - idx_start + 1)) );
}
function trimNums(str) {
var idx_start = 0;
var idx_end = str.length - 1;
while (str.charAt(idx_start) ==—' || !isNaN(str.charAt(idx_start)) || str.charAt(idx_start) ==—_') { idx_start++; }
while (str.charAt(idx_end) ==—' || !isNaN(str.charAt(idx_end)) || str.charAt(idx_end) ==—_') { idx_end--; }
return( str.substr(idx_start, (idx_end - idx_start + 1)) );
}
function getWindowHeight() {
if (ie) {
return( document.body.offsetHeight );
} else {
return( window.innerHeight );
}
}
function getWindowWidth() {
if (ie) {
return( document.body.offsetWidth );
} else {
return( window.innerWidth );
}
}
function expandWindowHeight(factor) {
if (ie) {
window.resizeBy( 0, factor );
} else {
window.innerHeight = window.innerHeight + factor;
}
}
function expandWindowWidth(factor) {
if (ie) {
window.resizeBy( factor, 0 );
} else {
window.innerWidth = window.innerWidth + factor;
}
}
function debug(x) {
if( window.status.length > 0 )
window.status = window.status +—|—+ x;
else
window.status = x;
}
function getWindowScroll(w) {
if (!w) {
if (isIEDTD) return document.documentElement.scrollTop;
else if (isIE) return document.body.scrollTop;
else return window.pageYOffset
} else {
if (isIEDTD) return w.document.documentElement.scrollTop;
else if (isIE) return w.document.body.scrollTop;
else return w.pageYOffset
}
}
function getIFrameDocument(fName) {
if (window.safari) {
return( window.frames[fName].document );
} else {
return( document.getElementById(fName).contentWindow.document );
}
}
// ----------------------------------------------------------------------------
// viewport functions
// ----------------------------------------------------------------------------
function getViewportHeight() {
if (self.innerHeight) // all except Explorer
{
y = self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientHeight)
// Explorer 6 Strict Mode
{
y = document.documentElement.clientHeight;
}
else if (document.body) // other Explorers
{
y = document.body.clientHeight;
}
return( y );
}
function getViewportWidth() {
if (self.innerHeight) // all except Explorer
{
x = self.innerWidth;
}
else if (document.documentElement && document.documentElement.clientHeight)
// Explorer 6 Strict Mode
{
x = document.documentElement.clientWidth;
}
else if (document.body) // other Explorers
{
x = document.body.clientWidth;
}
return( x );
}
function getViewportScrollX() {
if (self.pageYOffset) // all except Explorer
{
x = self.pageXOffset;
}
else if (document.documentElement && document.documentElement.scrollTop)
// Explorer 6 Strict
{
x = document.documentElement.scrollLeft;
}
else if (document.body) // all other Explorers
{
x = document.body.scrollLeft;
}
return( x );
}
function getViewportScrollY() {
if (self.pageYOffset) // all except Explorer
{
y = self.pageYOffset;
}
else if (document.documentElement && document.documentElement.scrollTop)
// Explorer 6 Strict
{
y = document.documentElement.scrollTop;
}
else if (document.body) // all other Explorers
{
y = document.body.scrollTop;
}
return( y );
}
// ----------------------------------------------------------------------------
// cookie functions
// ----------------------------------------------------------------------------
function setCookie(sName, sValue, expires, path, domain) {
document.cookie = sName + "=" + escape(sValue) + "; expires=" + (expires == null ? new Date("January 1, 2023").toGMTString() : expires) + "; path=" + ((path == null) ? "/" : path) + ((domain == null) ? "" : "; domain=" + domain);
}
function delCookie(sName, path, domain) {
document.cookie = sName + "=" + escape(getCookie(sName)) + ";expires=" + new Date("December 31, 1975").toGMTString() + "; path=" + ((path == null) ? "/" : path) + ((domain == null) ? "" : "; domain=" + domain);
}
function getCookie(sCookie) {
var aCookie = document.cookie.split(";");
for (var i = 0; i < aCookie.length; i++)
{
var aCrumb = aCookie[i].split("=");
if (sCookie == trim(unescape(aCrumb[0]))) {
return( unescape(aCrumb[1]) );
}
}
return( null );
}
function getCookieDomain(fullhost) {
var hs = fullhost.split("." );
if (hs.length - 2 < 0) {
return( "" );
} else {
return( "." + hs[hs.length - 2] + "." + hs[hs.length - 1] );
}
}
function toggleContentElement(srcCheckbox, tgtElement) {
if ( srcCheckbox.checked ) {
showObject(tgtElement);
} else {
hideObject(tgtElement);
}
}
function toggleContentElementByValue(val, tgtElement) {
if ( val ) {
showObject(tgtElement);
} else {
hideObject(tgtElement);
}
}
// ----------------------------------------------------------------------------
// ie emulation (erik arvidson)
// ----------------------------------------------------------------------------
if (!safari && /Mozilla\/5\.0/.test(navigator.userAgent)) {
HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sText) {
var r = document.createRange();
switch (sWhere) {
case "beforeBegin":
r.setStartBefore(this);
this.parentNode.insertBefore(r.createContextualFragment(sText), this);
break;
case "afterBegin":
r.setStartBefore(this.firstChild);
this.insertBefore(r.createContextualFragment(sText), this.firstChild);
break;
case "beforeEnd":
r.setStartAfter(this.lastChild);
this.appendChild(r.createContextualFragment(sText));
break;
case "afterEnd":
r.setStartAfter(this);
this.parentNode.insertBefore(r.createContextualFragment(sText), this.nextSibling);
break;
}
}
}
// ----------------------------------------------------------------------------
// form radio button helpers
// ----------------------------------------------------------------------------
function setRadioValue(formname, radioname, val) {
obj = document.forms[formname][radioname];
for(i=0;iobj.length;i++) {
if (obj[i].checked) return( obj[i].value );
}
}
function getRadio(formname, radioname, val) {
obj = document.forms[formname][radioname];
for(i=0;i obj.length; ++i) {
if (obj[i].value == val) { return( obj[i].text ); }
}
return( null );
}
function setFieldValue(formname, fieldName, val) {
obj = document.forms[formname][fieldName];
if (obj.tagName.toLowerCase() == "select") {
for (var i = 0; i < obj.length; ++i) {
if (obj[i].value == val) { obj.selectedIndex = i; break; }
}
} else {
obj.value = val;
}
}
function setFieldDisabled(formname, fieldName) {
obj = document.forms[formname][fieldName];
obj.style.color =—#727272';
obj.style.backgroundColor =—#F9F9F9';
obj.readOnly = 1;
}
function setFieldEnabled(formname, fieldName) {
obj = document.forms[formname][fieldName];
obj.style.color =—#000000';
obj.style.backgroundColor =—#FFFFFF';
obj.readOnly = 0;
}
function openGuide(root, name, size) {
var w = 0, h = 0;
if (size == 'small') {
w = 400;
h = 560;
} else if (size == 'medium') {
w = 500;
h = 660;
} else if (size == 'large') {
w = 765;
h = 660;
}
window.open(root.href, name,'width=' + w +—,height=' + h +—,scrollbars=yes,resizable=yes,titlebar=yes,menubar=no,toolbar=no');
}
function addEvent(obj, et, f) {
if (obj.addEventListener) {
obj.addEventListener(et, f, false);
return( true );
} else if (obj.attachEvent) {
var r = obj.attachEvent('on' + ret, f);
return( r );
}
return( false );
}
function cleanForHTML(s) {
return( s );
}