//<script>
// ============================================================= //
//   Copyright (c) Brightcode, LLC 2001 - ALL RIGHTS RESERVED    //
//                                                               //
//   Your Software License Agreement allows you to use this      //
//   code for this installation ONLY.  It is prohibited by       //
//   law to use, sell or give away this code for any purpose     //
//   other than that allowed by the Software License Agreement   //
//   you entered into when you obtained this code.               //
// ============================================================= //

String.prototype.left = Function('n','return this.substr(0,n);');
String.prototype.right = Function('n','return this.substr(this.length-n);');
String.prototype.numericOnly = Function('var n="",c,i=0,d="."; while(i<this.length){c=this.substr(i,1);if((c>="0"&c<="9")|c==d|(c=="-"&i==0))n+=c;if(c==d)d="0";i++}return n;');
String.prototype.integer = Function('var n=this.numericOnly(); while(n.length>0 & n.substr(0,1)=="0") n=n.substr(1); return parseInt(n);');
String.prototype.floating = Function('return parseFloat(this.numericOnly());');
String.prototype.reverse = Function('var s="",i=this.length; while(i>=0)s+=this.substr(i--,1); return s;');
String.prototype.formatNumber = Function('d','z','var s=this+".00000000"; s=s.numericOnly(); i=s.indexOf("."); s=s.substring(0,i+((d)?d+1:((d==0)?0:3))); for(i-=3;i>0;i-=3)s=s.substr(0,i)+","+s.substr(i); if(!z)z=""; return z+s.replace(/-,/,"-");');
//String.prototype.formatUSPhone = Function('var s=this.numericOnly().replace(/\./g,"").reverse(); s=s.substr(0,4)+"-"+s.substr(4,3)+")"+s.substr(7,3)+"("+s.substr(10,1); return s.reverse();');
String.prototype.formatUSPhone = Function('return formatUSPhone(this);');
String.prototype.formatEuroPhone = Function('var s=this.numericOnly().replace(/\./g,"").reverse(); s=s.substr(0,4)+"."+s.substr(4,3)+"."+s.substr(7,3)+"."+s.substr(10,1); s=s.reverse(); if(s.left(1)==".") return s.substr(1); return s;');
//String.prototype.formatDate = Function('var a=this.replace(/ /g,"").replace(/-/g,"/").split("/"); var d=new Date(this.replace(/-/g,"/")); var t=d.shortString().split("/"); if(a[2].int()<1000)a[2]=a[2].int()+1900; if((a[0]!=t[0])|(a[1]!=t[1])|(a[2]!=t[2])) return ""; return d.shortString();');
String.prototype.formatDate = Function('return formatDate(this);');
String.prototype.isEmpty = Function('return ((this == null) || (this.length == 0));');
String.prototype.isDate = Function('return isDate(this);');

Date.prototype.monthString = Function('n','return Array("January","February","March","April","May","June","July","August","September","October","November","December")[this.getMonth()].substr(0,((n)?n:10));');
Date.prototype.dayString = Function('n','return Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")[this.getDay()].substr(0,((n)?n:10));');
Date.prototype.isLeapYear = Function('return (((this.getFullYear() % 4 == 0) && (this.getFullYear() % 100 != 0)) || (this.getFullYear() % 400 == 0));');
Date.prototype.add = Function('s','n','var y=this.getFullYear() + ((s=="yy")?n:0); var m=this.getMonth() + ((s=="mm")?n:0); var d=this.getDate() + ((s=="dd")?n:0); return new Date(y, m, d);');
Date.prototype.lastDayOfMonth = Function('var d = new Date(this.getFullYear(), this.getMonth() + 1, 0); return d.getDate();');
Date.prototype.zeroTime = Function('return this.add("mm", 0);');
Date.prototype.shortString = Function('yy','return (this.getMonth() + 1) + "/" + this.getDate() + "/" + ((yy)?this.getFullYear().toString().substr(2,2):this.getFullYear());');
Date.prototype.wordString = Function('n','return this.monthString(n) + " " + this.getDate() + ", " + this.getFullYear();');
Date.prototype.timeString = Function('var h=this.getHours(); return ((h>12)?h-12:h) + ":" + this.getMinutes() + ((h>12)?" PM":" AM");');
Date.prototype.timeString24 = Function('return this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds();');

function DateToFixedString(d) {
	return "0".substr((d.getMonth() + 1).toString().length - 1) + (d.getMonth() + 1) + "/" + "0".substr(d.getDate().toString().length - 1) + d.getDate() + "/" + d.getYear().toString().substr(2);
}

var isIE = (document.all);

if (!oDoc) {
	var oDoc;
	if (isIE) oDoc = document.all; else oDoc = document;
}

function findObj(o) {
	if (o.toString().substr(0,4) == '[obj') return o;
	return oDoc[o];
}

function dumpObjProps(oObj) {
	var s;
	for (var e in oObj) { if (e && oObj[e]) s += e + ' = ' + oObj[e] + '\n'; }
	var oWin = window.open('', 'Dump', 'resizable=yes,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,width=980,height=670');
	oWin.document.write('<textarea rows=40 cols=117>' + s + '</textarea>');
}

function getControlIndex(oCtlAry, oCtl) {
	for (var i = 0; i < oCtlAry.length; i++)
	{
		if (oCtlAry[i] === oCtl)
			return i;
	}
	return -1;
}

//-- supports prototype!
function formatDate(sDate) {
	var re = /(\d+)\D+(\d+)\D+(\d+)/;

	// -- see if it looks legit
	if (! re.test(sDate)) return "";
	
	var aResult = re.exec(sDate);
	var nMo = aResult[1].integer();
	var nDy = aResult[2].integer();
	var nYr = aResult[3].integer();
	if (nYr < 50)  nYr += 2000;
	if (nYr < 100) nYr += 1900;
	return nMo + "/" + nDy + "/" + nYr;
}

//-- supports prototype!
function formatUSPhone(s) {
	s = s.numericOnly().replace(/\./g,"").reverse();
	s = s.substr(0,4) + "-" + s.substr(4,3) + ")" + s.substr(7,3) + "(" + s.substr(10,1);
	return s.reverse();
}


function isVowel(s) {
	var sVowels = "aeiouAEIOU";
	return ( sVowels.indexOf(s.charAt(0)) >= 0 );
}

//-- supports prototype!
function isDate(sDate) {
	sDate = sDate.formatDate();
	if (sDate == "") return false;
	var re = /(\d+)\D+(\d+)\D+(\d+)/;
	var aResult = re.exec(sDate);
	var nMo = aResult[1].integer();
	var nDy = aResult[2].integer();
	var nYr = aResult[3].integer();
	if (nMo < 1 | nMo > 12)   return false;
	if (nDy < 1 | nDy > 31)   return false;
	if (nYr < 1 | nYr > 2100) return false;
	var dDate = new Date(nMo + "/" + nDy + "/" + nYr);
	return (nDy == dDate.getDate());
}

function str2currency(s) {
	return parseInt(s.floating * 100) / 100;
}

function getRadioValue(oFld) {
	if ( !oFld.length ) {
		if ( oFld.checked ) return oFld.value;
	} else {
		for ( var i = 0; i < oFld.length; i ++ )
			if ( oFld[i].checked ) return oFld[i].value;
	}	

	return "";
}

function putCookie(sName, sValue) {
	var d = new Date();
	d.setYear(d.getYear() + 1);
	document.cookie = sName + "=" + escape(sValue) + 
		"; expires=" + d.toUTCString() + "; path=/; ";
	return true;
}

function getCookie(sName) {
	var oCookies = document.cookie.split("; ")
	for (var i = 0; i < oCookies.length; i++)
		if (oCookies[i].split("=")[0] == sName) return unescape(oCookies[i].split("=")[1]);
	return "";
}

function delCookie(sName) {
//	return putCookie(sName, "");
	var d = new Date();
	d.setYear(d.getYear() - 1);
	document.cookie = sName + "=;expires=" + d.toUTCString() + ";";
	return true;
}

//-- IE only!
function setTableRowBackColor(oRow, sNewColor) {
	if (! oRow) return;
	for (var oTD in oRow.children) {
		if (oRow.children[oTD].tagName == 'TD') {
			oRow.children[oTD].prevBGColor = oRow.children[oTD].style.backgroundColor;
			oRow.children[oTD].style.backgroundColor = sNewColor;
		}
	}
}
	
//-- IE only!
function restoreTableRowBackColor(oRow) {
	if (! oRow) return;
	for (var oTD in oRow.children) {
		if (oRow.children[oTD].tagName == 'TD') {
			oRow.children[oTD].style.backgroundColor = oRow.children[oTD].prevBGColor;
		}
	}
}

function newWindow(sUrl, sName, nWidth, nHeight, bRetWin, bScroll) {
	if (!nWidth) nWidth=550;
	if (!nHeight) nHeight=450;
	if (window.frames[sName]) window.frames[sName].close();
	if (!bScroll) bScroll = 'no'; else bScroll = 'yes';
	var oWin = window.open(sUrl, sName, 'resizable=yes,toolbar=no,location=no,directories=no,status=no,scrollbars=' + bScroll + ',width=' + nWidth + ',height=' + nHeight);
	if (oWin) oWin.focus();
	if (bRetWin) return oWin;
}

//-- IE only!
function imageHoverSetUp(oImg, sSuffix) {
	var s = oImg.src.right(4);
	oImg.srco = oImg.src;
	oImg.srch = oImg.src.replace(s, sSuffix + s);
	oImg.onmouseover = imageHoverOver;
	oImg.onmouseout  = imageHoverOut;
	oImg.onload = null;
}
function imageHoverOver() {
	if (window.event.srcElement.srch)
		window.event.srcElement.src = window.event.srcElement.srch;
}
function imageHoverOut() {
	if (window.event.srcElement.srco)
		window.event.srcElement.src = window.event.srcElement.srco;
}
	

/*
function changeImage(oImg, sUrl) {
	if (oImg.src.toLowerCase().indexOf('noimage') < 0) {
		sUrl += '&delete=&xfn=' + oImg.xfn;
		if(!confirm('Are you sure you want\nto delete this photo?'))
			return;
	}
	newWindow(sUrl, 'LoadImg', 600, 400);
	return;
}

function AdminTableColors(oTblRow) {
	if (oTblRow) {
		if (oTblRow.length) {
			for (var i = 0; i < oTblRow.length; i++) {
				var oTR = oTblRow[i];
				if (oTR.active == 'N') {
					for (var c = 0; c < oTR.cells.length; c++)
						oTR.cells[c].style.backgroundColor = "#FFEEEE";
				}
			}
		} else if (oTblRow.active == 'N') {
			for (var c = 0; c < oTblRow.cells.length; c++)
				oTblRow.cells[c].style.backgroundColor = "#FFEEEE";
		}
	}
}

function HiLiteTR() {
	oEle = event.srcElement;
	while (oEle.tagName != 'TR') oEle = oEle.parentElement;
	oEle.prevColor = oEle.style.backgroundColor
//alert(oEle.children[0].children[0].innerHTML);
	if (oEle.children[0].children[0].innerHTML != '&nbsp;')
		oEle.style.backgroundColor = oEle.hiLiteColor;
}

function UnHiLiteTR() {
	oEle.style.backgroundColor = oEle.prevColor;
}

function setupHilite(oTblRow) {
	if (oTblRow) {
		if (oTblRow.length) {
			for (var i = 0; i < oTblRow.length; i++) {
				oTblRow[i].onmouseover = HiLiteTR;
				oTblRow[i].onmouseout = UnHiLiteTR;
				if (oTblRow[i].rowIndex == prevRow)
					oTblRow[i].style.backgroundColor = '#ddeeff';
			}
		} else {
			oTblRow.onmouseover = HiLiteTR;
			oTblRow.onmouseout = UnHiLiteTR;
		}
	}
}

function savePrevURL(oHRef) {
	putCookie("prevRow", oHRef.parentElement.parentElement.parentElement.rowIndex.toString());
//	document.cookie = "prevRow=" + 
//		oHRef.parentElement.parentElement.parentElement.rowIndex + 
//		";expires=" + d.toUTCString() + ";";
}

*/
