browserName = navigator.appName;browserVer = parseInt(navigator.appVersion);        if ((browserName == "Netscape" && browserVer >= 3) || (browserName=="Microsoft Internet Explorer" && browserVer >=4)) version = "n3";        else version = "x";var typing="";var z=0;var a=0;var myCount=0;var undefined;function TimeStamp()	{	var clock=new Date();	var hr = clock.getHours();	var minute = clock.getMinutes();	var sec = clock.getSeconds();	if (hr<12) 		{		if (hr<10) hr="0"+hr;		Suffix = "AM";		}	else		{		if (hr>12) hr = Math.abs(hr-12);		if (hr<10) hr="0"+hr;		Suffix = "PM";		}	if (minute<10) minute="0"+minute;	if (sec<10) sec="0"+sec;	// Time Zone test code	var d=new Date()	var s = d.toString();		// In case we aren't able to parse from string	var offset=d.getTimezoneOffset();	inx = s.indexOf("GMT");	if(inx==-1)		{		inx=s.indexOf("UTC");    		}	if(inx>=0 && s.length >=8)		{ 		s=s.substring(inx+3)		s=s.substring(0,5);		// to make offset the same as getTimezoneOffset return		// we need to invert sign;		sig=-1;		if(s.charAt(0)=='+') sig=-1;		var min=parseInt(s.substring(3));        		var hour=parseInt(s.substring(1,3));		offset = sig* hour*60 + minute;		}	myTZ = d.toString();		myEnd = myTZ.length -5	myStart = myEnd-3	TimeZone = myTZ.slice(myStart,myEnd);	myTimeZone = TimeZone	//document.writeln(offset);	//End TestCode	myShortTime = (hr+":"+minute);	myTime = (hr+":"+minute+":"+sec);	myFullTime = (hr+":"+minute+":"+sec+" "+Suffix);	return myFullTime;	}function update(num,element,xmonth)	{	// ******************************************	// Generate a date based on an offset of today's date and return a MM/DD/YYYY formatted string.	// This script is used for placing a current date in an HTML page without a form.	// ******************************************	now = new Date();	date = now.getDate();	if (isNaN(xmonth)) xmonth = 0;	month = now.getMonth()+1+xmonth;	lastMonth = month-1;	year= now.getYear();	date = (date - eval(num));	if (month<=0)		{		if (month==0)			{			month = "12";			year = year - 1;			}		else			{			month = month+12;			year = year -1;			}		}	if (date<=0)		{		month = month-1;		if (month==0)			{			month = "12";			year = year - 1;			}		if (month==2)			{			date = 28 + date;			}		if (month=="4" || month=="6" || month=="9" || month=="11")			{			date = 30 + date;			}		else			{			date = 31 + date;			}		}		if (month>12)			{			month = "1";			year = year + 1;			}	if (month==2 && date>28)		{		month = month + 1;		date = date - 28;		}	if ((month=="4" || month=="6" || month=="9" || month=="11") && date>30)		{		month = month + 1;		date = date - 30;		}	else		{		if (date>31)			{			month = month + 1;			date = date - 31;			}		}	if (year < 1000) year += 1900;	//Building varchar date.	if (month == "1") monthName="January";	if (month == "2") monthName="February";	if (month == "3") monthName="March";	if (month == "4") monthName="April";	if (month == "5") monthName="May";	if (month == "6") monthName="June";	if (month == "7") monthName="July";	if (month == "8") monthName="August";	if (month == "9") monthName="September";	if (month == "10") monthName="October";	if (month == "11") monthName="November";	if (month == "12") monthName="December";	myFullDate = monthName + " " + date + ", " + year;	// Building numerical date.	if (date<10)		{		date = "0" + date;		}	if (month<10)		{		dateStr= "0" + month + "/" + date + "/" + year;		}	else		{		dateStr = month + "/" + date + "/" + year;		}	myDate = dateStr;		// Writing date to specified field.	if (element == undefined) element=-1;	if (element >= 0) document.dateform.elements[element].value = dateStr;	return dateStr;	}function updatePayment(num)	{	// ******************************************	// Generate a date based on an offset of today's date and return a MM/DD/YYYY formatted string.	// This script is used for placing a current date in an HTML form with one (1) date field.	// ******************************************	now = new Date();	date = now.getDate();	month = now.getMonth()+1;	lastMonth = month-1;	year= now.getYear();	date = (date - eval(num));	if (date<=0)		{		month = month-1;		if (month==0)			{			month = "12";			year = year - 1;			}		if (month==2)			{			date = 28 + date;			}		if (month=="4" || month=="6" || month=="9" || month=="11")			{			date = 30 + date;			}		else			{			date = 31 + date;			}		}		if (month>12)		{		month = "1";		year = year + 1;		}	if (month==2 && date>28)		{		month = month + 1;		date = date - 28;		}	if ((month=="4" || month=="6" || month=="9" || month=="11") && date>30)		{		month = month + 1;		date = date - 30;		}	else		{		if (date>31)			{			month = month + 1;			date = date - 31;			}		}	if (date<10)		{		date = "0" + date;		}	if (year < 1000) year += 1900;	if (month<10)		{		dateStr= "0" + month + "/" + date + "/" + year;		}	else		{		dateStr = month + "/" + date + "/" + year;		}	document.dateform.date.value = dateStr;	}function updateForm(num)	{	// ******************************************	// Generate a date based on an offset of today's date and return a MM/DD/YYYY formatted string.	// This script is used for placing a current date in an HTML form with "To" and "From" date fields.	// ******************************************	now = new Date();	date = now.getDate();	month = now.getMonth()+1;	lastMonth = month-1;	year= now.getYear();	year2 = year;	date2 = (date - eval(num));	if (date<=0)		{		month = month-1;		if (month==0)			{			month = "12";			year = year - 1;			}		if (month==2)			{			date = 28 + date;			}		if (month=="4" || month=="6" || month=="9" || month=="11")			{			date = 30 + date;			}		else			{			date = 31 + date;			}		}		if (month>12)		{		month = "1";		year = year + 1;		}	if (month==2 && date>28)		{		month = month + 1;		date = date - 28;		}	if ((month=="4" || month=="6" || month=="9" || month=="11") && date>30)		{		month = month + 1;		date = date - 30;		}	else		{		if (date>31)			{			month = month + 1;			date = date - 31;			}		}	if (date<10)		{		date = "0" + date;		}	if (year < 1000) year += 1900;	if (month<10)		{		dateStr= "0" + month + "/" + date + "/" + year;		}	else		{		dateStr = month + "/" + date + "/" + year;		}	document.dateform.to.value = dateStr;	if (date2<=0)		{		lastMonth = lastMonth-1;		if (lastMonth==0)			{			lastMonth = "12";			year2 = year2 - 1;			}		if (lastMonth==2)			{			date2 = 28 + date2;			}		if (lastMonth=="4" || lastMonth=="6" || lastMonth=="9" || lastMonth=="11")			{			date2 = 30 + date2;			}		else			{			date2 = 31 + date2;			}		}		if (lastMonth>12)		{		lastMonth = "1";		year2 = year2 + 1;		}	if (lastMonth==0)		{		lastMonth=12;		year2=year2-1;		}	if (lastMonth==2 && date2>28)		{		lastMonth = lastMonth + 1;		date2 = date2 - 28;		}	if ((lastMonth=="4" || lastMonth=="6" || lastMonth=="9" || lastMonth=="11") && date2>30)		{		lastMonth = lastMonth + 1;		date2 = date2 - 30;		}	else		{		if (date2>31)			{			lastMonth = lastMonth + 1;			date2 = date2 - 31;			}		}	if (lastMonth == 0) 		{		lastMonth = 12;		year2 = year2 - 1;		}	if (date2<10)		{		date2 = "0" + date2;		}	if (year2 < 1000) year2 += 1900;	if (lastMonth<10)		{		dateStr2= "0" + lastMonth + "/" + date2 + "/" + year2;		}	else		{		dateStr2 = lastMonth + "/" + date2 + "/" + year2;		}	document.dateform.from.value = dateStr2;	}function launchBalance()         {	// ******************************************	// Opens Quick Balance window. NOT CURRENTLY USED.	// ******************************************        myWindow = open("../accounts/balances/balance_inquiry.htm","myWindow","height=150,width=250,directories=no,location=no,menubar= no,scrollbars=yes,status=no,toolbar=no,resizable=yes");        }function LaunchLink(URL, target, attributes)	{	// ******************************************	// Hyperlink to a new page. This is used for hyperlinking using HTML submit buttons.	// ******************************************	if (URL=="" || URL==undefined) return false;	WindowURL=URL;	WindowTarget=target;	if (WindowTarget=="" || WindowTarget==undefined) WindowTarget="_self"	WindowAttributes=attributes;	//window.open(URL,"_self");	window.open(WindowURL,WindowTarget,WindowAttributes);	return false;	}function RefreshLink(URL,delay)	{	// ******************************************	// This script will automatically refresh a page after a given interval.	// For use on pages which use Dreamweaver templates and cannot use a Meta Refresh tag.	// ******************************************	myLink = URL;	setTimeout("LaunchLink(myLink);",delay);	return false;	}function launchGuide()         {	// ******************************************	// Opens Help window.	// ******************************************        myHelp = open("../help/index.htm","myHelp","height=300,width=550,directories=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=no");        }function MM_jumpMenu(targ,selObj,restore)	{ //v3.0	// ******************************************	// Dreamweaver OnSelect jump-menu script.	// ******************************************  	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");  	if (restore) selObj.selectedIndex=0;	}function MM_findObj(n, d) 	{ //v3.0	// ******************************************	// Dreamweaver script used by MM_jumpMenuGo script.	// ******************************************	var p,i,x;	if(!d) d=document;	if((p=n.indexOf("?"))>0&&parent.frames.length) 		{		d=parent.frames[n.substring(p+1)].document;		n=n.substring(0,p);		}	if(!(x=d[n])&&d.all) x=d.all[n];	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];	for(i=0;!x&&d.layers&&i>d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;	}function MM_jumpMenuGo(selName,targ,restore)	{ //v3.0	// ******************************************	// Dreamweaver Go button jump-menu script.	// ******************************************	var selObj = MM_findObj(selName); 	if (selObj) MM_jumpMenu(targ,selObj,restore);	}function findPosX(obj){	var curleft = 0;	if (obj.offsetParent)	{		while (obj.offsetParent)		{			curleft += obj.offsetLeft			obj = obj.offsetParent;		}	}	else if (obj.x)		curleft += obj.x;	return curleft;}//This functiono returns the y-coordinate of a specified page element.function findPosY(obj){	var curtop = 0;	var printstring = '';	if (obj.offsetParent)	{		while (obj.offsetParent)		{			printstring += ' element ' + obj.tagName + ' has ' + obj.offsetTop;			curtop += obj.offsetTop			obj = obj.offsetParent;		}	}	else if (obj.y)		curtop += obj.y;	//window.status = printstring;	return curtop;}function TypeMessage(message)	{	// ******************************************	// Retrieves a string to be automatically typed into a form field. Compensates for browser setTimeout errors.	// ******************************************	myMessage = message;	myLength = myMessage.length;	a=a+1;		if (z<myLength && z!=myLength)			{			myLetter=myMessage.charAt(z);			typing = typing + myLetter			document.searchForm.elements[myCount].value = typing;			setTimeout("z=z+1;TypeMessage(myMessage);",250);			}		else			{			typing = "";			z=0;			if (myCount<3) myCount=myCount+1;			if (myCount==1) setTimeout("TypeMessage('123456789');",250);			if (myCount==2) setTimeout("TypeMessage('123456789');",250);			}	}		function ReportSelector(myCheck)	{	myOption = "";	if (myCheck==undefined)		{		if (BalanceReports.Transactions[1].checked==false && (BalanceReports.CreditDeposits.checked || BalanceReports.CreditACH.checked || BalanceReports.CreditWires.checked || BalanceReports.CreditOther.checked)) 			{			myOption = 1;				document.BalanceReports.DebitChecks.checked=false;			document.BalanceReports.DebitACH.checked=false;			document.BalanceReports.DebitWires.checked=false;			document.BalanceReports.DebitOther.checked=false;			}		if (BalanceReports.Transactions[2].checked==false && (BalanceReports.DebitChecks.checked || BalanceReports.DebitACH.checked || BalanceReports.DebitWires.checked || BalanceReports.DebitOther.checked)) 			{			myOption = 2;				document.BalanceReports.CreditDeposits.checked=false;			document.BalanceReports.CreditACH.checked=false;			document.BalanceReports.CreditWires.checked=false;			document.BalanceReports.CreditOther.checked=false;			}		}	if (myCheck=="ALL")		{		myOption = 0;		document.BalanceReports.CreditDeposits.checked=false;		document.BalanceReports.CreditACH.checked=false;		document.BalanceReports.CreditWires.checked=false;		document.BalanceReports.CreditOther.checked=false;		document.BalanceReports.DebitChecks.checked=false;		document.BalanceReports.DebitACH.checked=false;		document.BalanceReports.DebitWires.checked=false;		document.BalanceReports.DebitOther.checked=false;		}	if (myOption!="") document.BalanceReports.Transactions[myOption].checked=true;	}var argName;var argValue;var pairs;var args;function GetQuery()	{	args = new Array();	query = location.search.substring(1);	pairs = query.split("&");	for (i=0;i<pairs.length;i++)		{		args[i] = pairs[i].split('=');		}	}	function RequestQueryString(myVariable)	{	GetQuery();	for (i=0;i<pairs.length;i++)		{		if (args[i][0]==myVariable) return args[i][1];		}	}	function Request(arg) {	return RequestQueryString(arg);	}function ShowAccount(element,desc) {	desc_contents = document.getElementById(element);	desc_contents.innerHTML = desc;	}function JumpMenu(account,action) {	if (action!="_transfer_to" && action!="_transfer_from") LaunchLink(action + '?id=' + account);	if (action=="_transfer_to") LaunchLink("../transfers/index.htm?id="+account+"&type=to");	if (action=="_transfer_from") LaunchLink("../transfers/index.htm?id="+account+"&type=from");	}function print_page(URL) {	if (URL==undefined) URL = "printer-friendly-page.htm";	LaunchLink(URL, 'printer_frielndly','width=600,height=400,scrollbars=yes,resizable=yes');	}function getexpirydate( nodays){	var UTCstring;	Today = new Date();	nomilli=Date.parse(Today);	Today.setTime(nomilli+nodays*24*60*60*1000);	UTCstring = Today.toUTCString();	return UTCstring;	}function getcookie(cookiename) {	var cookiestring = "" + document.cookie;	args = Array();	args = cookiestring.split(";");	for (i=0;i<args.length;i++) {		args[i] = args[i].split("=");		if (trimAll(args[i][0])==cookiename) return args[i][1];		}	}function setcookie(name,value,duration){	cookiestring=name+"="+escape(value)+";"; //+";EXPIRES="+getexpirydate(duration); // uncomment this to add tell the cookie whent to expire	document.cookie=cookiestring;	if(!getcookie(name)){		return false;		}	else {		return true;		}	}function trimAll(sString) 	{	while (sString.substring(0,1) == ' ') {		sString = sString.substring(1, sString.length);		}	while (sString.substring(sString.length-1, sString.length) == ' ') {		sString = sString.substring(0,sString.length-1);		}	return sString;	}function formatCurrency(num) {	num = num.toString().replace(/\$|\,/g,'');	if(isNaN(num)) 	num = "0";	sign = (num == (num = Math.abs(num)));	num = Math.floor(num*100+0.50000000001);	cents = num%100;	num = Math.floor(num/100).toString();	if(cents<10)	cents = "0" + cents;	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)	num = num.substring(0,num.length-(4*i+3))+','+	num.substring(num.length-(4*i+3));	return (((sign)?'':'-') + num + '.' + cents);	}function strip_num(num) {	num = num.replace("$","");	while (num.indexOf(",")>0) {		num = num.replace(",","");		}	return num;	}function totalArray(arry) {	total = 0;	for (i=0;i<arry.length;i++) {		total = total + Number(arry[i]);		}	return(total);	}function accountMask(acct,limit) {	if (limit==undefined) limit = 4;	str = "";	for (x=0; x<acct.length; x++) {		if ((acct.length-x)>limit) str = str + "*";		else str = str + acct.charAt(x);		}	return(str);	}function drawCategorySelectBox(acct,sel) {	input = '<SELECT id=category name=category onChange="if (this.selectedIndex==1) LaunchLink(\'add_category.htm?account='+acct+'\');">';    input = input +  '<option>Select One</option>\n';    input = input +  '<option>ADD NEW CATEGORY</option>\n';	for (c=0;c<parent.transaction_categories.length;c++) {		selected = (parent.transaction_categories[c][1]==sel) ? " selected": "";		input = input +  '<option value="'+j+'"'+selected+'>'+parent.transaction_categories[c][1]+'</option>\n';		}    input = input + '</SELECT>';	return(input);	} function urlDecode(psEncodeString){  // Create a regular expression to search all +s in the string  var lsRegExp = /\+/g;  msg = escape(psEncodeString);  while (msg.indexOf("%250A")>0) {  	msg = msg.replace("%250A","<br>");  	}  while (msg.indexOf("%92;")>0) {  	msg = msg.replace("%92;","'");  	}  psEncodeString = unescape(msg);    // Return the decoded string  return unescape(String(psEncodeString).replace(lsRegExp, " "));}function get_date_offset(new_date) {	t = new Date(update(0));	today = t.getTime();	target_date = (new_date!=undefined && new_date!="") ? new_date : update(0);	d = new Date(target_date);	d_date = d.getTime();	d_offset = Math.floor((today - d_date)/(60*60*24*1000));	return d_offset;	}function getPaymentMethod(pymt,type) {	if (type=='history') {		switch(parent.payment_history[pymt].Method) {			case "Electronic":				msg = "Electronic (allow 3 days)";				break;			case "Paper Check":				msg = "Paper Check (allow 5-7 days)";				break;			default: msg = "Unknown (allow 5-7 days)";			}		}	else {		switch(parent.payments[pymt].Method) {			case "Electronic":				msg = "Electronic (allow 3 days)";				break;			case "Paper Check":				msg = "Paper Check (allow 5-7 days)";				break;			default: msg = "Unknown (allow 5-7 days)";			}		}	return msg;	}// Create a repeat-string-N-times method for all String objectsfunction str_rep(n) {   var s = "", t = this.toString()   while (--n >= 0) s += t   return s}String.prototype.rep = str_rep;
