// stuff inside here will run when the DOM is ready
// onload replacement
$(function(){
	// Uncomment and Optimize the selector below for rollover images. 
	// Should select the ID of the element containing the nav w/ rollover images.
	// HINT: You can add more image containers by separating IDs with a space, just like in CSS: $('#navBar1 #navBar2')
	$('.pNav').rollovers();
	
	// Uncomment the following to make a search box automagically add and remove the default value of that field
	//    on focus and blur.
	$('.searchField').searchField();

	//fix for IE6 security warning when doing a site search on a secure page
	if (cfg_has_search)
	{
		var ieVer = parseInt(navigator.appVersion.split('MSIE')[1]);
		if (ieVer == 6) {
			$('.searchForm').attr('action', $('.searchForm').attr('action').replace( /https/, 'http' ));
		}
	}
	
	// Back-to-top button generator ; use <attr name="noBackToTop" value="true" /> in navigation.xml to disable
	backToTopCode = '<br /><a href="#"><img src="'+fiImages+'/btn_backtotop.gif" border="0" alt="Back to Top" /></a>';
	if (cfg_layout!="home")
	{
		var scrollableArea = $( '.content' ).outerHeight() + $( '.content' ).offset().top;
		if( scrollableArea > $(window).height() && !noBackToTop) {
			$('.content').append( backToTopCode );
		}
	}

	// This turns on the DIMenus plugin, modify the selector to suit your template needs
	if(cfg_menu_system=="dimenus") $('div.pNav ul li.parentMenu').DIMenus({columns:3});
	
	// removes hand cursor from main nav items that link to javascript:void()
	$(".pNav a[href*='javascript:void']").addClass("nocursor");
	
	$('#utility_'+selectItemName).addClass('selected');
	
	/*
	$comingSoon = $('.coming_soon').add( $('.content a[href=""]') );
	$comingSoon.css('color','red').css('font-size','1.4em').addClass('comingSoonLink');
	$comingSoon.click( function() {
		alert('Coming Soon!');
		return false;
	});	
	*/
	
	$('.select_link').change( function() {
		window.location.href = $(this).val();
	});
	
	$('.tabs a').click( function() {
		$('.tabbed_content').hide();
		$('.'+ $(this).attr('id')).show();
		return false;
	});
	
	/********* Expanding/collapsing content *********/
	$(".collapsible").hide();
	
	$(".collapseLink a").click(function(){
		if( $(this).parents('.collapsible').size() && $(this).attr('href') != '#' ) return;
		var hed = $(this).parent();
		var collapsibleDiv = hed.next();
		while (collapsibleDiv.length==1 && !collapsibleDiv.hasClass("collapsible"))
		{
			collapsibleDiv = hed.next();
		}
		if (!collapsibleDiv.length) {
			if( $(this).parents('.collapsible').size() ) { return true; }
			return false;
		}

		$('.expandedContent').removeClass('expandedContent');
		$('.expandedLink').removeClass('expandedLink');
		if (collapsibleDiv.filter(":hidden").length)
		{
			collapsibleDiv.slideDown();
			hed.addClass('expandedLink');
			hed.siblings('.collapsible').addClass('expandedContent');
		}
		else
		{
			collapsibleDiv.slideUp();
			hed.removeClass('expandedLink');
		}
		$(this).parents('.collapsible').addClass('expandedContent');
		$(".collapsible:not(.expandedContent)").slideUp();
		return false;
	});
	
	var expandAnchor = $("a[name='"+String(document.location).split('#')[1]+"']");
	if (expandAnchor.length)
	{
		expandAnchor.parents('.collapseLink').find('.collapsible').slideDown();
	}

	$(".collapseLinkTop a").click(function(){
		var e = $(this);
		e.children().toggle();
		e.children().children().toggle();
	});

	/********* Expanding/collapsing content *********/
	
	
	//code for inputs behind login fields
	$('input, textarea').live('keydown', toggleLabel);
    $('input, textarea').live('paste', toggleLabel);
    $('select').live('change', toggleLabel);

    $('input, textarea').live('focusin', function() {
        $(this).prev('span').css('color', '#ccc');
    });
    
	$('input, textarea').live('focusout', function() {
        $(this).prev('span').css('color', '#6E6E6E');
    });
	
	$('.input span').click( function() {
		if (ieVer == 7) {
			//alert( $(this).siblings('input').size() );
			$(this).hide();
			$(this).parent().children('input').focus();
		}
	})

    $('input, textarea').each(function() { toggleLabel.call(this); });
	
	if( $('input[name=userNumber]').size() ) $('input[name=userNumber]').focus();
	
});


function toggleLabel() {
    var input = $(this);
    setTimeout(function() {
        var def = input.attr('title');
        if (!input.val() || (input.val() == def)) {
            input.prev('span').css('visibility', '');
            if (def) {
                var dummy = $('<label></label>').text(def).css('visibility','hidden').appendTo('body');
                input.prev('span').css('margin-left', dummy.width() + 3 + 'px');
                dummy.remove();
            }
        } else {
            input.prev('span').css('visibility', 'hidden');
        }
    }, 0);
}

function resetField() {
    var def = $(this).attr('title');
    if (!$(this).val() || ($(this).val() == def)) {
        $(this).val(def);
        $(this).prev('span').css('visibility', '');
    }
}



// pdf link detection and click event now handled here with .live()
// no need to place in the page onload
$("a[href$='.pdf'],a[href*='.pdf#']").live("click", function() {
	var $this = $(this);
	var linkOnclick = $this.attr('onclick');
	if (linkOnclick){
		linkOnclick = linkOnclick.toString();
		if (linkOnclick.indexOf("displayThirdPartyAlert")>-1)
		{
			return false;
		}
	}
	if (this.target=='_blank') this.target='';
	openPDF($this.attr('href'));
	return false;
});
$("a[href*='javascript:openPDF']").live("click", function() {
	if (this.target=='_blank') this.target = '';
	return true;
});

// for Cool Menus
if(window.event + "" == "undefined") event = null;
function showMenu(){return false};
oM = {mout:function(){return false;}};

function target_blank(url){
    tmp = window.open(url);
    tmp = null;
}

function wcInternalPopup(url, height, width, opts) {
	wcPopup(url, height, width, false, opts);
}

function wcPopup(url, height, width, disclaimer, opts){
	var disclaimer = parseInt(disclaimer);
	var wide = parseInt(width);
	var tall = parseInt(height);
	var halfwide = (wide/2);
	var halftall = (tall/2);
	var pWidth = (((parseInt(screen.width) / 2)) - halfwide);
	var pHeight = (((parseInt(screen.height) / 2)) - halftall);
	var features = opts || 'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width='+wide+',height='+tall+',top='+pHeight+',left='+pWidth;
	if (disclaimer)
		showWarning("javascript:void(window.open('"+url+"','externalpopup','"+features+"').focus())", url, false, disclaimer)
	else
		window.open(url,'wc_popup',features).focus();
}

function openDisc(page){
	var pWidth = (((parseInt(screen.width) / 2)) - 300)
	var pHeight = (((parseInt(screen.height) / 2)) - 400)
	bWindow = window.open(page,'discwin',"scrollbars=1,toolbar=0,location=0,directories=0,status=0,menubar=0,width=600,height=600,top=" + pHeight + ",left=" + pWidth);
	bWindow = null;
}

/*
 * Opens a PDF in a second window
 * Params:
 *  pdfname - either a full path to the pdf -or- the filename of the pdf in 'documents' folder of fiFiles
 *  isFullPath - DEPRECATED :: set this to true if you do not want the 'documents' folder path prepended to the pdf name
 *  fullscreen - set this to true if you want the new window to fill the user's screen instead of opening at 780 x 580
 * Usage:
 *  openPDF('filename.pdf')
 *  openPDF('//www.domain.com/pdfs/filename.pdf', true)
 *  etc...
 */
function openPDF(pdfname, fullscreen)
{
	pdfname = /^http/.test(pdfname) ? pdfname : RegExp(fiDir+'/documents/').test(pdfname) ? pdfname : fiDir+'/documents/'+pdfname;
	width = fullscreen ? screen.width : 780;
	height = fullscreen ? screen.height : 580;
	var domExp = new RegExp("^(http|https)\:\/\/(www\.)?(\w*\.)+(org|com|net|gov)"),
		domain = pdfname.match(domExp);
	if (domain && document.location.href.indexOf(domain[2]+domain[3]+domain[4]) == -1) {
		wcPopup(pdfname, height, width);
	} else {
		wcInternalPopup(pdfname, height, width);
	}
} // openPDF()


/************************************************************************************************************
* This function is used in the onclick of the a tag to display the external site warning. 
* @param msg - Integer specifying the which message to display.
* @param lk - The a link object
* Usage: <a href="http://wwww.mysite.com" onclick="return displayThirdPartyAlert(1,this);">My Site</a>
**************************************************************************************************************/
function displayThirdPartyAlert(msg,lk){
	var description = lk.innerHTML;
	if(description.indexOf('alt="') != -1){
		var x = description.indexOf('alt="')+5;
		var temp = description.substring(x);
		description = temp.substring(0,temp.indexOf("\""));
	}
	showWarning(lk.href, description, lk.target, msg)
	return false;
}

/************************************************************************************************************
* This function is used in the href of the a tag to display the external site warning. 
* @param lk - The url of the site to be opened
* @param desc - The description of the site to be opened, i.e. the name of the site.
* @param target - Allows for the window to opened in a new window
* @param msg - Integer specifying the which message to display.
* Usage: <a href="javascript:showWarning('http://wwww.mysite.com');">My Site</a>
**************************************************************************************************************/

function showWarning(lk, desc, target, msg){
	desc = (desc) ? desc : "Third Party Site";
	if(cfg_tpw_new_window=="true")target = (target) ? target : "_blank";
	if (lk.indexOf("http:")!=0&&lk.indexOf("https:")!=0&&lk.indexOf("mailto:")!=0) target = "_self";
	msg = (msg) ? msg : 0;
	
	var messages = new Array(6);
	// Standard 3rd Party Warning
	messages[0] = messages[1] = '<h2 style="text-align:center">Third Party Site Disclaimer</h2><p>By accessing the noted link you will be leaving '+fiName+'\'s website and entering a website hosted by another party. '+fiName+' has not approved this as a reliable partner site. Please be advised that you will no longer be subject to, or under the protection of, the privacy and security policies of '+fiName+'\'s website. We encourage you to read and evaluate the privacy and security policies of the site you are entering, which may be different than those of '+fiName+'.</p>';
	// Standard Partner Warning
	messages[2] = '<h2 style="text-align:center">Partner Site Disclaimer</h2><p>By accessing the noted link you will be leaving our website and entering a partner site which is hosted by another party. Please be advised that you will no longer be subject to, or under the protection of, the privacy and security policies of our website. We encourage you to read and evaluate the privacy and security policies of the site which you are entering, which may be different than those of ours.</p>';
	// Standard Affiliate Warning
	messages[3] = '<h2 style="text-align:center">Affiliate Site Disclaimer</h2><p>By accessing the noted link you will be leaving our website and entering an affiliate site located which is hosted by another party. Please be advised that you will no longer be subject to, or under the protection of, the privacy and security policies of our website. We encourage you to read and evaluate the privacy and security policies of the site which you are entering, which may be different than those of ours.</p>';
	// Customize if requested
	messages[4] = messages[0];
	// Standard mailto: Insecure Warning
	messages[5] = '<h2 style="text-align:center">Email Disclaimer</h2><p>This is <strong>NOT</strong> a secured e-mail transmission. Please <strong>do not send personal/financial information</strong> via this method.</p>';
	
	// Custom form message
	messages[6] = '<h2 style="text-align:center">Customer Identification Program</h2><div style="text-align:left;"><p>In accordance with Section 326 of the USA PATRIOT Act signed October 26,2001 all persons are subject to the identity verification requirements even though they may be a long term customer of and well known to the Bank.</p>';
	messages[6] += '<p>For the purpose of the regulation an "account" includes every formal banking relationship that entails ongoing services, dealings or transactions. Some examples are a deposit account, loan, trust relationship or safe deposit box rental.</p>';
	messages[6] += '<p>If you request to open an account or become a signatory on an account with the Bank and the Bank has not previously verified your identity under the new regulatory requirements, the Bank will request documentary verification of your identity, such as driver\'s license or passport and/or it will verify your identity through other non-documentary methods. Similar identification requirements apply to business entities such as corporations and partnerships.</p>';
	messages[6] += '<p>In all cases protection of our customers\' identity and confidentiality is the Banks pledge to you.</p></div>';
	
	var content = new Array();
	var index = 0;
	content[index++] = messages[msg];
	if( msg != 6 )
		content[index++] = '<div style="margin-top:1em;text-align:center"><a href="'+lk+'"'+(target?' target="'+target+'"':'')+' onclick="$(\'#ex_dis\').hide()">Continue</a>&#160;&#160;<a href="#" onclick="$(\'#ex_dis\').hide();return false;">Decline</a></div>';
	else
		content[index++] = '<div style="margin-top:1em;text-align:center"><a href="#" onclick="$(\'#ex_dis\').hide();return false;">Close</a></div>';
	$("#ex_dis").html(content.join("")).show();
	t = setTimeout('scrollTo(0,0)',50); //putting scroll-to on 50 ms timer for IE7
}

function getUrl(){
	var url = document.location.href;
	var urlstart = url.indexOf("newUrl=") + 7;
	var urlToReturn = url.substring(urlstart);
	return urlToReturn;
}

// Array, String, and Date functions
// plus rollover and searchField jQuery plugins
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('A.X.1n=5(b){e c=A.1o({M:\'1p\',Y:\'1q\'},b);8 2.N(5(){e a=2;a.F=c;A(\'1r,1s[1t="1u"]\',2).O(\'[n*="\'+a.F.M+\'."]\').N(5(){q=2;q.P=B Z();q.Q=B Z();q.Q.n=q.n;q.P.n=q.n.l(B 1v(a.F.M+"\\.([a-z]{3,4})$",\'i\'),a.F.Y+".$1")}).1w(5(){2.n=2.P.n},5(){2.n=2.Q.n})})};A.X.1x=5(){8 2.N(5(){e a=A(2);j(2.G&&2.G.h&&!2.u.h){a.1y(2.G);a.1z(\'G\')}j(2.u.h){2.R=2.u;a.1A(5(){j(2.u==2.R)2.u=\'\'}).1B(5(){j(!2.u.h)2.u=2.R})}})};m.10=[\'1C\',\'1D\',\'1E\',\'1F\',\'1G\',\'1H\',\'1I\'];m.11=[\'1J\',\'1K\',\'1L\',\'1M\',\'1N\',\'1O\',\'1P\'];m.12=[\'1Q\',\'1R\',\'1S\',\'1T\',\'13\',\'1U\',\'1V\',\'1W\',\'1X\',\'1Y\',\'1Z\',\'20\'];m.14=[\'21\',\'22\',\'23\',\'24\',\'13\',\'25\',\'26\',\'27\',\'2a\',\'2b\',\'2c\',\'2d\'];(5(){5 9(a,b){j(!m.k[a]){m.k[a]=b}};9("15",5(){e y=2.S();8(y%4==0&&y%2e!=0)||y%2f==0});9("16",5(){8 2.H()==0||2.H()==6});9("2g",5(){8!2.16()});9("2h",5(){8[w,(2.15()?29:28),w,C,w,C,w,w,C,w,C,w][2.I()]});9("2i",5(a){8 a?m.11[2.H()]:m.10[2.H()]});9("2j",5(a){8 a?m.14[2.I()]:m.12[2.I()]});9("17",5(){e a=B m("1/1/"+2.S());8 18.2k((2.19()-a.19())/2l)});9("2m",5(){8 18.2n(2.17()/7)});9("2o",5(a){2.1a(0);2.1b(a);8 2});9("2p",5(a){2.2q(2.S()+a);8 2});9("2r",5(a){e b=2.J();2.1a(2.I()+a);j(b>2.J())2.1c(-2.J());8 2});9("1c",5(a){2.1b(2.J()+a);8 2});9("2s",5(a){2.2t(2.2u()+a);8 2});9("2v",5(a){2.2w(2.2x()+a);8 2});9("2y",5(a){2.2z(2.2A()+a);8 2})})();(5(){5 9(a,b){j(!T.k[a]){T.k[a]=b}};9("2B",5(a,b){b=b||D;x(e i=0;i<2.h;i++)a.E(b,2[i],i,2)});9("2C",5(a,b){b=b||D;x(e i=0;i<2.h;i++)j(!a.E(b,2[i],i,2))8 U;8 1d});9("2D",5(a,b){b=b||D;x(e i=0;i<2.h;i++)j(a.E(b,2[i],i,2))8 1d;8 U});9("2E",5(a,b){b=b||D;e r=[];x(e i=0;i<2.h;i++)r[r.h]=a.E(b,2[i],i,2);8 r});9("O",5(a,b){b=b||D;e r=[];x(e i=0;i<2.h;i++)j(a.E(b,2[i],i,2))r[r.h]=2[i];8 r});9("1e",5(a,b){x(e i=b||0;i<2.h;i++)j(2[i]===a)8 i;8-1});9("2F",5(){8 2.O(5(a,b,c){8 c.1e(a)>=b})})})();(5(){5 9(a,b){j(!1f.k[a]){1f.k[a]=b}}9("2G",5(){8 2.l(/(^\\s+|\\s+$)/g,"")});9("2H",5(){8 2.l(/[-2I]([a-z])/2J,5(z,b){8 b.2K()})});9("2L",5(a,b){e b=b||0;j(b<0||b>2.h)8 U;8 2.1g(b,b+a.h)==a});9("2M",5(a){8 2.1g(2.h-a.h)==a});9("2N",5(a,b){a=a||C;b=b===2O?"...":b;8 2.h>a?2.1h(0,a-b.h)+b:2});9("2P",5(){8 2.l(/<\\/?[^>]+>/o,\'\')});9("2Q",5(){8(2=="")?"&#2R;":2.l(/\\(1i\\)/o,"<1i />").l(/\\(K\\)/o,"<K>").l(/\\(\\/K\\)/o,"</K>").l(/\\(b\\)/o,"<1j>").l(/\\(\\/b\\)/o,"</1j>").l(/\\(i\\)/o,"<1k>").l(/\\(\\/i\\)/o,"</1k>")})})();V.k.L=5(a,b){2.k[a]=b;8 2};V.L(\'2S\',5(b){e d={},p=(2.k=B b());2.L(\'1l\',5 1l(a){j(!(a 2T d)){d[a]=0}e f,r,t=d[a],v=b.k;j(t){2U(t){v=v.2V.k;t-=1}f=v[a]}2W{f=p[a];j(f==2[a]){f=v[a]}}d[a]+=1;r=f.1m(2,T.k.1h.1m(W,[1]));d[a]-=1;8 r});8 2});V.L(\'2X\',5(a){x(e i=1;i<W.h;i+=1){e b=W[i];2.k[b]=a.k[b]}8 2});',62,184,'||this|||function|||return|add|||||var|||length||if|prototype|replace|Date|src|gi||el||||value||31|for|||jQuery|new|30|window|call|opts|title|getDay|getMonth|getDate|sup|method|off|each|filter|overObj|outObj|defaultValue|getFullYear|Array|false|Function|arguments|fn|on|Image|dayNames|abbrDayNames|monthNames|May|abbrMonthNames|isLeapYear|isWeekend|getDayOfYear|Math|getTime|setMonth|setDate|addDays|true|indexOf|String|substring|slice|br|strong|em|uber|apply|rollovers|extend|_off|_on|img|input|type|image|RegExp|hover|searchField|val|removeAttr|focus|blur|Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat|January|February|March|April|June|July|August|September|October|November|December|Jan|Feb|Mar|Apr|Jun|Jul|Aug|||Sep|Oct|Nov|Dec|100|400|isWeekDay|getDaysInMonth|getDayName|getMonthName|floor|86400000|getWeekOfYear|ceil|setDayOfYear|addYears|setFullYear|addMonths|addHours|setHours|getHours|addMinutes|setMinutes|getMinutes|addSeconds|setSeconds|getSeconds|forEach|every|some|map|unique|trim|camelize|_|ig|toUpperCase|startsWith|endsWith|truncate|undefined|stripTags|tagReplace|160|inherits|in|while|constructor|else|swiss'.split('|'),0,{}))
