//----------------- Load events
var arrLoadEvents = new Array();
addLoadEvent(styleMyHeading);
addLoadEvent(setDefaultSignIn);
//----------------- END load events

//----------------- Helper vars and functions, including Flash detection
var DHTML = (document.getElementById || document.all || document.layers);

//Use the syntax addLoadEvent(whichFunction) to add a body.onload event to the page. Do not use this together with onload="foo()" hard-coded in the body tag --  the embedded script call will override the addLoadEvent handler.
function addLoadEvent(whichFunction) { 
	if (window.onload) { 
		if (window.onload != callLoadEvents) { 
			arrLoadEvents[0] = window.onload;
			window.onload = callLoadEvents;	}		
		arrLoadEvents[arrLoadEvents.length] = whichFunction; }
	else { 
		window.onload = whichFunction; } }

function callLoadEvents() {
	for (var i = 0; i < arrLoadEvents.length; i++) { 
		arrLoadEvents[i](); } }

function getObj(name) {
	if (document.getElementById) {
		if(document.getElementById(name) == null) { this.obj = null; return; }
     		this.obj = document.getElementById(name);
     		this.style = document.getElementById(name).style; }
	else if (document.all) {
		if(document.all[name] == null) { this.obj = null; return; }
		this.obj = document.all[name];
		this.style = document.all[name].style; }
	else if (document.layers) {
		if(document.layers[name] == null) { this.obj = null; return; }
		this.obj = document.layers[name];
		this.style = document.layers[name]; } }
//----------------- END helper functions

//----------------- Font-sizing widget on sub-pages
function setCookie(name, value) {
	var curCookie = name + "=" + escape(value) + "; expires=Wed, 07-Jun-2023 11:07:25 GMT; path=/; domain=" + document.domain;
	document.cookie = curCookie;
	//self.location.href = self.location.href;
	window.location.href = window.location.href; }

function setFontCookie(name, value) {
	var curCookie = name + "=" + escape(value) + "; expires=Wed, 07-Jun-2023 11:07:25 GMT; path=/; domain=" + document.domain;
	document.cookie = curCookie;
	//self.location.href = self.location.href;
	window.location.href = window.location.href; }

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) { return null; } } 
		else  { begin += 2; }
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) { end = dc.length; }
	return unescape(dc.substring(begin + prefix.length, end)); }

if (getCookie('fontsize') == null) { var fontsize = 90;	} 
else { var fontsize = getCookie('fontsize'); }

function changeFontSize (fontsize) {
	setFontCookie('fontsize', fontsize); }
	
document.write('<style type="text/css">');
document.write('#content { font-size:'+fontsize+'%; }');
document.write('<\/style>');
//----------------- END font widget

//----------------- Flash detector
/* FlashObject v1.3c: Flash detection and embed - http://blog.deconcept.com/flashobject/
 * FlashObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php */
if(typeof com == "undefined") var com = new Object();
if(typeof com.deconcept == "undefined") com.deconcept = new Object();
if(typeof com.deconcept.util == "undefined") com.deconcept.util = new Object();
if(typeof com.deconcept.FlashObjectUtil == "undefined") com.deconcept.FlashObjectUtil = new Object();
com.deconcept.FlashObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.createElement || !document.getElementById) return;
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = com.deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	this.useExpressInstall = useExpressInstall;

	if(swf) this.setAttribute('swf', swf);
	if(id) this.setAttribute('id', id);
	if(w) this.setAttribute('width', w);
	if(h) this.setAttribute('height', h);
	if(ver) this.setAttribute('version', new com.deconcept.PlayerVersion(ver.toString().split(".")));
	this.installedVer = com.deconcept.FlashObjectUtil.getPlayerVersion(this.getAttribute('version'), useExpressInstall);
	if(c) this.addParam('bgcolor', c);
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) this.setAttribute('redirectUrl', redirectUrl); }
com.deconcept.FlashObject.prototype = {
	setAttribute: function(name, value){ this.attributes[name] = value; },
	getAttribute: function(name){ return this.attributes[name]; },
	addParam: function(name, value){ this.params[name] = value; },
	getParams: function(){ return this.params; },
	addVariable: function(name, value){ this.variables[name] = value; },
	getVariable: function(name){ return this.variables[name]; },
	getVariables: function(){ return this.variables; },
	createParamTag: function(n, v) {
		var p = document.createElement('param');
		p.setAttribute('name', n);
		p.setAttribute('value', v);	
    		return p; },
	getVariablePairs: function() {
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for (key in variables) { variablePairs.push(key +"="+ variables[key]); }
	return variablePairs; },
	getFlashHTML: function() {
		var flashNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType", "PlugIn");
			flashNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
			flashNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			for (var key in params) { flashNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			if (pairs.length > 0){ flashNode += 'flashvars="'+ pairs +'"'; }
			flashNode += '/>'; } 
		else { // PC IE
			if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType", "ActiveX");
			flashNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
			flashNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for (var key in params) { flashNode += '<param name="'+ key +'" value="'+ params[key] +'" />'; }
			var pairs = this.getVariablePairs().join("&");
			if (pairs.length > 0) { flashNode += '<param name="flashvars" value="'+ pairs +'" />'; }
			flashNode += "</object>"; }
		return flashNode; },
	write: function(elementId) {
	if(this.useExpressInstall) { // check to see if we need to do an express install
		var expressInstallReqVer = new com.deconcept.PlayerVersion([6,0,65]);
		if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
			this.setAttribute('doExpressInstall', true);
			this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
			document.title = document.title.slice(0, 47) + " - Flash Player Installation";
			this.addVariable("MMdoctitle", document.title); } } 
		else { this.setAttribute('doExpressInstall', false); }
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))) {
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getFlashHTML(); }
		else { 
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl')); } } } }
/* ---- detection functions ---- */
com.deconcept.FlashObjectUtil.getPlayerVersion = function(reqVer, xiInstall) {
	var PlayerVersion = new com.deconcept.PlayerVersion(0,0,0);
	if(navigator.plugins && navigator.mimeTypes.length) {
		var x = navigator.plugins["Shockwave Flash"];
		if (x && x.description) {
			PlayerVersion = new com.deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); } }
		else {
			try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				for (var i=3; axo!=null; i++) {
					axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
					PlayerVersion = new com.deconcept.PlayerVersion([i,0,0]); } }
			catch(e) {}
	if (reqVer && PlayerVersion.major > reqVer.major) return PlayerVersion; // version is ok, skip minor detection
	// this only does the minor rev lookup if the user's major version is not 6 or we are checking for a specific minor or revision number see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
	if (!reqVer || ((reqVer.minor != 0 || reqVer.rev != 0) && PlayerVersion.major == reqVer.major) || PlayerVersion.major != 6 || xiInstall) {
		try {
			PlayerVersion = new com.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); }
			catch(e) {} } }
	return PlayerVersion; }
com.deconcept.PlayerVersion = function(arrVersion){
	this.major = parseInt(arrVersion[0]) || 0;
	this.minor = parseInt(arrVersion[1]) || 0;
	this.rev = parseInt(arrVersion[2]) || 0; }
com.deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true; }
/* ---- get value of query string param ---- */
com.deconcept.util = {
	getRequestParameter: function(param){
	var q = document.location.search || document.location.hash;
	if(q) {
		var startIndex = q.indexOf(param +"=");
		var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
		if (q.length > 1 && startIndex > -1) {
			return q.substring(q.indexOf("=", startIndex)+1, endIndex); } }
	return ""; } }
/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; } }
/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = com.deconcept.util.getRequestParameter;
var FlashObject = com.deconcept.FlashObject;
//----------------- END Flash detector

//----------------- Hack to style top-level header differently for each section
function styleMyHeading() { 
	if(!document.getElementById('subRight') || !document.getElementById) { return; }
	var objHeading = document.getElementById('subRight').getElementsByTagName('h1')[0];
	if (document.getElementById('subRight').getElementsByTagName('h1')[0]) {
		if (typeof(g_navNode_Path) != 'undefined') { 
			switch(g_navNode_Path[1]) { 
				case '2' :
					objHeading.style.backgroundColor = '#9c3'; //Personal
					break;
				case '3' :
					objHeading.style.backgroundColor = '#c93'; //small biz
					break;
				case '4' :
					objHeading.style.backgroundColor = '#903'; //commercial
					break;
				case '5' :
					objHeading.style.backgroundColor = '#039'; //about
					break;
				case '411' :
					objHeading.style.backgroundColor = '#666'; //generic
					break; } } } }
//----------------- END heading hack

//----------------- Select default function for commercial and small-biz landing page log-in forms
function setDefaultSignIn() {
	if(!document.getElementById || document.getElementById('signinto') == null) { return false }
	var objSelect = document.getElementById('signinto');
	if (g_navNode_Path[1] == '3') { //small biz
		for (i = 0; i < objSelect.options.length; i++) { 
			if (objSelect.options[i].value == 'personalOnlineBanking' && i > 1) { objSelect.options[i].selected = true } } }
	else if (g_navNode_Path[1] == '4') { //commercial
		for (i = 0; i < objSelect.options.length; i++) { 
			if (objSelect.options[i].value == 'commercialLandingPage' && i > 5) { objSelect.options[i].selected = true } } } }

//----------------- Show and hide "pop-up" log-in and branch search boxes
function hidediv(pass) {
	var divs = document.getElementsByTagName('div');
	for (i=0; i < divs.length; i++) {
		if(divs[i].id.match(pass)) { //if they are 'see' divs
			if (document.getElementById) {// DOM3 = IE5, NS6  
				divs[i].style.visibility = "hidden"; } // show/hide
			else { 
				if (document.layers) { // Netscape 4
					document.layers[divs[i]].display = 'hidden'; }
				else { // IE 4
					document.all.hideshow.divs[i].visibility = 'hidden'; } } } } }
function showdiv(pass) {
	var divs = document.getElementsByTagName('div');
	for (i=0; i < divs.length;i++) {
		if(divs[i].id.match(pass)) {
			if (document.getElementById) {
				divs[i].style.visibility = "visible"; }
		else {
			if (document.layers) { // Netscape 4 
				document.layers[divs[i]].display = 'visible'; }
			else { // IE 4 
				document.all.hideshow.divs[i].visibility = 'visible'; } } } } }
//----------------- END show and hide "pop-up" log-in and branch search boxes

//----------------- AJAX object initiator 
var objXML;
function setObjXML(strURL, strParams, strMethod) { 
	if (!document.all && !XMLHttpRequest) { 
		alert('We\'re sorry! Your browser does not support this feature.')
		objXML = null; }
	if (document.all) { //IE
		objXML = new ActiveXObject("Microsoft.XMLHTTP") }
	else if (XMLHttpRequest) { //Decent browsers
		objXML = new XMLHttpRequest(); }
	objXML.open(strMethod, strURL, true);
	objXML.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	objXML.setRequestHeader("Content-length", strParams.length);
	objXML.send(strParams);
	return objXML; }
//----------------- END AJAX object initiator