/* Wachovia Shared Utility Script / Version: 2.0 10/4/2007 */
/* Copyright Wachovia Corporation All rights reserved. */
function $(obj) {
	if (typeof obj == "string") {
		var objID = obj;
		var currObj = null;
		if(document.getElementById || document.getElementsByName) {
			if(document.getElementById(objID) !== null) { currObj = document.getElementById(objID); } else { currObj = document.getElementsByName(objID)[0]; }
			if(currObj !== null) { return currObj; } else { return null; }
		} else { return null; }
	} else {
		return obj;
	}
};
getObj = $;

function getElementsByClassName(className, tag, elm) {
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*", elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [], current, length = elements.length;
	for(var i=0; i<length; i++){ current = elements[i]; if(testClass.test(current.className)){ returnElements.push(current); } }
	return returnElements;
}

function getChildElementsByType(tag, elm) { var returnElements = []; returnElements = elm.getElementsByTagName(tag); return returnElements; }

function relocateObject(objID,targetID,objIDToReference,blnInsertBefore,blnCloneObj) {
	var obj = $(objID), targetObj = $(targetID);
	if (blnCloneObj) { obj = obj.cloneNode(true); }
	if (objIDToReference) {
		var refObj = $(objIDToReference);
		if (blnInsertBefore) { targetObj.insertBefore(obj,refObj); } 
		else { refObj.parentNode.insertBefore(obj,refObj.nextSibling); }
	} else { targetObj.appendChild(obj); }
}

function getStyle(el, prop) {
	if (document.defaultView && document.defaultView.getComputedStyle) { return document.defaultView.getComputedStyle(el, null)[prop]; } 
	else if (el.currentStyle) { return el.currentStyle[prop]; } 
	else { return el.style[prop]; }
}

function toggleObjDisplay(objID,objVisState) {
	var currObj = $(objID);
	if(currObj !== null) {
		if(objVisState == "hide") { currObj.style.display = "none"; } else if(objVisState == "show") { currObj.style.display = "block"; } else {}
	} else {}
	return false;
}

function toggleObj(objIDs,forceClass,noPulse) {
	var objIDArr = objIDs.split(",");
	var objID = "";
	var currObj = null;
	var isSingle = objIDArr.length == 1;
	for(var i=0; i<objIDArr.length; i++ ) {
		objID = objIDArr[i];
		currObj = $(objID);
		if(currObj !== null) {
			if(!forceClass) {
				if(hasClassName(objID,"show")) { replaceClassName(objID,"show","hide"); } 
				else if(hasClassName(objID,"hide")) { replaceClassName(objID,"hide","show"); if(isSingle && !noPulse) { spotlight(objID); }} 
				else {}
			} else {
				if(hasClassName(objID,"show")) { replaceClassName(objID,"show",forceClass); } 
				else if(hasClassName(objID,"hide")) { replaceClassName(objID,"hide",forceClass); if(isSingle && !noPulse) { spotlight(objID); }} 
				else {}
			}
		} else {}
	}
	return false;
}

var intHandler = null, fadeObj = null, originalBGColor = "";
function spotlight(objID) {
	fadeObj = $(objID);
	if (fadeObj.style.backgroundColor == "") {
		if (!window.getComputedStyle) {
			fadeObj.style.backgroundColor = fadeObj.currentStyle.backgroundColor;
		} else {
			fadeObj.style.backgroundColor = getComputedStyle(fadeObj, "").getPropertyValue("background-color");
		}
	}
	if (fadeObj.style.backgroundColor !== originalBGColor && originalBGColor !== "") { fadeObj.style.backgroundColor = originalBGColor; }
	clearInterval(intHandler);
	originalBGColor = fadeObj.style.backgroundColor;
	fadeObj.style.backgroundColor="rgb(255,255,205)";
	intHandler = setInterval(fade,200);
}

function fade() {
	var bgStr = fadeObj.style.backgroundColor;
	var colorInt = (trim(bgStr.substring(bgStr.lastIndexOf(",")+1,bgStr.length-1))-0);
	if(colorInt < 255) { fadeObj.style.backgroundColor="rgb(255,255,"+(colorInt + 10)+")"; }
	else {
		fadeObj.style.backgroundColor="rgb(255,255,255)";
		clearInterval(intHandler);
		if (fadeObj.style.backgroundColor !== originalBGColor && originalBGColor !== "") { fadeObj.style.backgroundColor = originalBGColor; }
	}
}

function randGen() { randGen.seed = (randGen.seed*randGen.a+randGen.c) % randGen.m; return Math.floor((randGen.seed / randGen.m)*100); }
randGen.m=714025; randGen.a=4096; randGen.c=150889; randGen.seed = (new Date()).getTime()%randGen.m;

function popWinStnd(url) {
	window.open(url,"popupwin","toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=550,height=350,top=10,left=10");
	return false;
}

function popWinCust(url,name,toolbar,location,directories,status,menubar,scrollbars,resizable,width,height,top,left) {
	window.open(url,name,"toolbar="+toolbar+",location="+location+",directories="+directories+",status="+status+",menubar="+menubar+",scrollbars="+scrollbars+",resizable="+resizable+",width="+width+",height="+height+",top="+top+",left="+left+"");
	return false;
}

function popWinPost(formID,windowName,width,height,top,left) {
	var formObj = $(formID);
	formObj.target = windowName;
	popWinCust('',windowName,'no','no','no','no','no','yes','yes',width,height,top,left);
	formObj.submit();
	return false;
}

function popWinCal(urlBase,formField,format,language) {
	var url = urlBase+"?formField="+formField+"&format="+format+"&lang="+language;
	var winObj = window.open(url,'popupcal',"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=232,height=244,top=10,left=10");
	winObj.focus();
	return false;
}

function setFieldValue(formID,fieldID,fieldValue) { var formObj = $(formID), fieldObj = $(fieldID); fieldObj.value = fieldValue; }

function replaceImage(imgID,newImgSrc,newImgAlt) { var imgObj = $(imgID); imgObj.src = newImgSrc; imgObj.alt = newImgAlt; return false; }

function submitForm(formID) { var formObj = $(formID); formObj.submit(); return false; }

function setAndSubmitForm(formID,fieldID,fieldValue) { setFieldValue(formID,fieldID,fieldValue); submitForm(formID); return false; }

function closeWindow() { window.close(); return false; }

function closeWindowGoOpener(url) { window.opener.location=url; window.close(); return false; }

function printWindow() { window.print(); return false; }

function navigateBack(distance) { var dist = (distance === "" || distance === null || distance === null) ? -1 : (0 - distance); history.go(dist); return false; }

var formObjs = document.forms;
function disableSubmits(formObj) {
	var fieldName = "";
	for(i=0;i<formObjs.length;i++) {
		for(j=0;j<formObjs[i].elements.length;j++) {
			if(formObjs[i].elements[j].type === null) { j++; } else {}
			fieldName = formObjs[i].elements[j].name.toLowerCase();
			if((formObjs[i].elements[j].type == "submit") || ((formObjs[i].elements[j].type == "button") && (fieldName.indexOf("submit") != -1))) {
				formObjs[i].elements[j].disabled = true;
			}
		}
	}
	return true;
}

function enableSubmits() {
	var fieldName = "";
	for(i=0;i<formObjs.length;i++) {
		for(j=0;j<formObjs[i].elements.length;j++) {
			if(formObjs[i].elements[j].type === null) { j++; } else {}
			fieldName = formObjs[i].elements[j].name.toLowerCase();
			if((formObjs[i].elements[j].type == "submit") || ((formObjs[i].elements[j].type == "button") && (fieldName.indexOf("submit") != -1))) {
				formObjs[i].elements[j].disabled = false;
			}
		}
	}
	return true;
}

function trim(s) {
	while(s.substring(0,1) == ' ') { s = s.substring(1,s.length); }
	while(s.substring(s.length-1,s.length) == ' ') { s = s.substring(0,s.length-1); }
	return s;
}

function hideObjs() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.style.display = "none"; } }

function showObjs() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.style.display = "block"; } }

function getSelectedRadioIndex(fieldID) {
	var fieldObj = $(fieldID), selRadioValue = -1, i = 0;
	if(fieldObj) { for(i=0; i<fieldObj.length; i++) { if(fieldObj[i].checked) { selRadioValue = i; } } }
	return selRadioValue;
}

function clearValues() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.value = ""; } }

function resetSelects() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.selectedIndex = 0; } }

function resetValues() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.value = currObj.title; } }

function resetCheckedTrue() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.checked = "true"; } }

function resetCheckedFalse() { var currObj = null; for(i=0; i<arguments.length; i++) { currObj = $(arguments[i]); currObj.checked = "false"; } }

function focusField(objID) { var currObj = $(objID); currObj.focus(); }

function selectField(objID) { var currObj = $(objID); currObj.focus(); currObj.select(); }

function clearForm(formID) {
	var formObj = $(formID), formLen = formObj.elements.length, selectLen = 0;
	for(i=0; i<formLen; i++) {
		if(formObj.elements[i].type=="text") { formObj.elements[i].value=""; }
		else if(formObj.elements[i].type=="textarea") { formObj.elements[i].value=""; }
		else if(formObj.elements[i].type=="radio") { formObj.elements[i].checked=false; }
		else if(formObj.elements[i].type=="checkbox") { formObj.elements[i].checked=false; }
		else if(formObj.elements[i].type=="select-one") { formObj.elements[i].selectedIndex=0; }
		else if(formObj.elements[i].type=="select-multiple") {
			selectLen = formObj.elements[i].options.length;
			for(j=0; j<selectLen; j++) { formObj.elements[i].options[j].selected = false; }
		}
		else {}
	}
}

function hasClassName(objID,targetClassName) {
	var currObj = $(objID), currClasses = currObj.className.split(" ");
	for(i=0;i<currClasses.length;i++) { if(currClasses[i] == targetClassName) { return true; } }
	return false;
}

function addClassName(objID,newClassName) { var currObj = $(objID); currObj.className = trim(currObj.className + " " + newClassName); }

function removeClassName(objID,targetClassName) { replaceClassName(objID,targetClassName,""); }

function replaceClassName(objID,targetClassName,replacementClassName) {
	var currObj = $(objID), currClasses = currObj.className.split(" "), updatedClasses = "";
	for(i=0;i<currClasses.length;i++) { if(currClasses[i] == targetClassName) { currClasses[i] = replacementClassName; } }
	for(i=0;i<currClasses.length;i++) { updatedClasses += currClasses[i] + " "; }
	currObj.className = trim(updatedClasses);
}

try { alert = console.log; }
catch (err) { /*fail gracefully*/ }

function onDomContentLoaded(fn) {
	var d = window.document, u = window.navigator.userAgent.toLowerCase();
	function init(e) { if(!arguments.callee.done) { arguments.callee.done = true; fn(e); } }
	if(/khtml|safari|webkit/.test(u)) {
		(function() {
			if(/complete|loaded/.test(d.readyState)) { init('poll'); } else { setTimeout(arguments.callee, 10); }
		})();
	} else if(/msie/.test(u) && !window.opera) {
		(function () {
			try { d.documentElement.doScroll('left'); } catch (e) { setTimeout(arguments.callee, 10); return; }
			init('poll');
		})();
		d.attachEvent('onreadystatechange',
			function(e) { if(d.readyState == 'complete') { d.detachEvent('on'+e.type, arguments.callee); init(e.type); } }
		);
	} else if(d.addEventListener &&
		(/gecko/.test(u) && parseFloat(u.split('rv:')[1]) >= 1.8) ||
		(/opera/.test(u) && (parseFloat(u.split('opera/')[1]) > 9) || parseFloat(u.split('opera ')[1]) > 9)) {
		d.addEventListener('DOMContentLoaded',
			function(e) { this.removeEventListener(e.type, arguments.callee, false); init(e.type); }, false
		);
	} else {
		var prevOnload = window.onload;
		window.onload = function (e) {
			if(typeof prevOnload == 'function') { prevOnload(e || window.event); }
			init((e || window.event).type);
		};
	}
}

/* Handler for window.onload */
/* Usage: WindowOnload( function Object)  */
function WindowOnload(f) { var prev=window.onload; window.onload=function() { if(prev) { prev(); } f(); }; }
