﻿//Printing functions
var gAutoPrint = false; // Flag for whether or not to automatically call the print function

function PrintList(DivName)
{
	if (document.getElementById != null)
	{
		var html = '<HTML>\n<HEAD>\n';

		if (document.getElementsByTagName != null)
		{
			var headTags = document.getElementsByTagName("head");
			if (headTags.length > 0)
				html += headTags[0].innerHTML;
		}
		
		html += '\n</HE' + 'AD>\n<BODY onload=javascript:window.print();javascript:window.close();>\n';
		
		//var printReadyElem = document.getElementById("printReady");
		var printReadyElem = document.getElementById(DivName);
		
		if (printReadyElem != null)
		{
				html += printReadyElem.innerHTML;
		}
		else
		{
			alert("Could not find the printReady section in the HTML");
			return;
		}
			
		html += '\n</BO' + 'DY>\n</HT' + 'ML>';
		
		var printWin = window.open("","PrintList","width=1,height=1,scrollbars=no,resizable=no,status=no");
		printWin.document.open();
		printWin.document.write(html);
		printWin.document.close();
		if (gAutoPrint)
			printWin.print();
		}
	else
	{
		alert("Sorry, the print ready feature is only available in modern browsers.");
	}
}

	//Div functions
	function BlockView(BlockName) {
			if (document.getElementById(BlockName).style.display == "block") {
				document.getElementById(BlockName).style.display = "none";
				document.getElementById('blocktitle').innerHTML='View ' + BlockName;
			} else {
				document.getElementById(BlockName).style.display = "block";
				document.getElementById('blocktitle').innerHTML='Hide ' + BlockName;
			}
		}

	function OpenBlock(BlockName){
		document.getElementById(BlockName).style.display = "block";
		return 
		}	
		
	function CloseBlock(BlockName){
		document.getElementById(BlockName).style.display = "none";
		return 
		}	
	
	function ToggleBlock(BlockName){
		if (document.getElementById(BlockName).style.display == "block") {
				document.getElementById(BlockName).style.display = "none";
		} else {
				document.getElementById(BlockName).style.display = "block";
		}
		return 
		}


//Form validation funtions and variables
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r";

var decimalPointDelimiter = "."

var phoneNumberDelimiters = "()- ";

var validUSPhoneChars = digits + phoneNumberDelimiters;

var validWorldPhoneChars = digits + phoneNumberDelimiters + "+";

var SSNDelimiters = "- ";

var validSSNChars = digits + SSNDelimiters;

var digitsInSocialSecurityNumber = 9;

var digitsInUSPhoneNumber = 10;

var ZIPCodeDelimiters = "-";

var ZIPCodeDelimeter = "-"

var validZIPCodeChars = digits + ZIPCodeDelimiters

var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9

var creditCardDelimiters = " "

function isOkBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) return false;
    }
    return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isWhiteSpace (s)
{   var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    return true;
}

function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function stripCharsNotInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }

    return returnString;
}

function stripWhitespace (s)

{   return stripCharsInBag (s, whitespace)
}

function charInString (c, s)
{   for (i = 0; i < s.length; i++)
    {   if (s.charAt(i) == c) return true;
    }
    return false
}

function stripInitialWhitespace (s)

{   var i = 0;

    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;
    
    return s.substring (i, s.length);
}

function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}



function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);


    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isSignedInteger (s)

{   if (isEmpty(s)) 
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];

        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;    
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

function isPositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isPositiveInteger.arguments.length > 1)
        secondArg = isPositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) > 0) ) );
}

function isNonnegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) >= 0) ) );
}


function isNegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNegativeInteger.arguments.length > 1)
        secondArg = isNegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) < 0) ) );
}


function isNonpositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonpositiveInteger.arguments.length > 1)
        secondArg = isNonpositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) <= 0) ) );
}


function isFloat (s)

{   var i;
    var seenDecimalPoint = false;

    if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);

    if (s == decimalPointDelimiter) return false;


    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }

    return true;
}


function isSignedFloat (s)

{   if (isEmpty(s)) 
       if (isSignedFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedFloat.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedFloat.arguments.length > 1)
            secondArg = isSignedFloat.arguments[1];

        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;    
        return (isFloat(s.substring(startPos, s.length), secondArg))
    }
}


function isAlphabetic (s)

{   var i;

    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }

    return true;
}

function isAlphanumeric (s)

{   var i;

    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

function reformat (s)

{   var arg;
    var sPos = 0;
    var resultString = "";

    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}

function reformatZIPCode (ZIPString)
{   if (ZIPString.length == 5) return ZIPString;
    else return (reformat (ZIPString, "", 5, "-", 4));
}

function reformatUSPhone (USPhone)
{   return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}

function reformatSSN (SSN)
{   return (reformat (SSN, "", 3, "-", 2, "-", 4))
}

function isLeapYear(argYear) {
	return ((argYear % 4 == 0) && (argYear % 100 != 0)) || (argYear % 400 == 0) 
}

function daysInMonth(argMonth, argYear) {
	switch (Number(argMonth)) {
		case 1:		// Jan
		case 3:		// Mar
		case 5:		// May
		case 7:		// Jul
		case 8:		// Aug
		case 10:		// Oct
		case 12:		// Dec
			return 31;
			break;
		
		case 4:		// Apr
		case 6:		// Jun
		case 9:		// Sep
		case 11:		// Nov
			return 30;
			break;
		
		case 2:		// Feb
			if (isLeapYear(argYear))
				return 29
			else
				return 28
			break;
		
		default:
			return 0;
	}
}

function getDateSeparator(argDate) {
	if ((argDate.indexOf('-') > 0) && (argDate.indexOf('/') > 0))
		return ' '

	if (argDate.indexOf('-') > 0)
		return '-'
	else
		if (argDate.indexOf('/') > 0)
			return '/'
		else
			return ' '
}

function getYear(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[2]
	else
		return 0
}

function getMonth(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[0]
	else
		return 0
}

function getDay(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[1]
	else
		return 0
}

function isProperDay(argDay, argMonth, argYear) {
	if ((isWhiteSpace(argDay)) || (argDay == 0))
		return false

	if ((argDay > 0) && (argDay < daysInMonth(argMonth, argYear) + 1))
		return true
	else 
		return false
}

function isProperMonth(argMonth) {
	if ((isWhiteSpace(argMonth)) || (argMonth == 0))
		return false
	
	if ((argMonth > 0) && (argMonth < 13))
		return true
	else
		return false
}

function isProperYear(argYear) {
	if ((isWhiteSpace(argYear)) || (argYear.toString().length > 4) || (argYear.toString().length == 3))
		return false
	
	switch (argYear.toString().length) {
		case 1:
			if (argYear >=0 && argYear < 10)
				return true
			else
				return false
			
		case 2:
			if (argYear >=0 && argYear < 100)
				return true
			else
				return false
			
		case 4:
			if (((argYear >=1900) || (argYear >=2000)) && ((argYear < 3000) || (argYear < 2000)))
				return true
			else
				return false
		
		default:
			return false
	}
}

function isProperDate(argDate) {
	var tmpDay = getDay(argDate)
	var tmpMon = getMonth(argDate)
	var tmpYear = getYear(argDate)

	return isProperDay(tmpDay, tmpMon, tmpYear) && isProperMonth(tmpMon) && isProperYear(tmpYear)
}

function charOccurences(argString, argChar) {
	var intCt = 0

	for(var intI=0; intI < argString.length; intI++)
		if (argString.charAt(intI) == argChar)
			intCt++
	
	return intCt
}

function isProperEmail(argEmail) {
	if (charOccurences(argEmail, '@') + charOccurences(argEmail, '.') < 2)
		return false

	var atPos = argEmail.indexOf('@')
	var dotPos = argEmail.indexOf('.')

	if((atPos == 0) || (atPos == (argEmail.length - 1)))
		return false

	if((dotPos == 0) || (dotPos == (argEmail.length - 1)))
		return false
	
	var checkTLD=1;
 
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
 
	var emailPat=/^(.+)@(.+)$/;
 
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
 
 
	var validChars="\[^\\s" + specialChars + "\]";
 
 
	var quotedUser="(\"[^\"]*\")";
 
 
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
 
 
	var atom=validChars + '+';
 
	var word="(" + atom + "|" + quotedUser + ")";
 
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
 
 
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
 
 
 
	var matchArray=argEmail.match(emailPat);
 
	if (matchArray==null)
		{
		return false;
		}
	var user=matchArray[1];
	var domain=matchArray[2];
 
	for (i=0; i<user.length; i++)
		{
		if (user.charCodeAt(i)>127)
			{
			return false;
			}
		}
	for (i=0; i<domain.length; i++)
		{
		if (domain.charCodeAt(i)>127)
			{
			return false;
			}
		}
 
	if (user.match(userPat)==null)
		{
		return false;
	}
 
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null)
		{
		for (var i=1;i<=4;i++)
			{
			if (IPArray[i]>255)
				{
				return false;
				}
			}
		return true;
		}
 
 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++)
		{
		if (domArr[i].search(atomPat)==-1)
			{
			return false;
			}
		}
 	
	if (domArr[domArr.length-1].length!=3)
		{
		return false;
		}

	if (domArr[domArr.length-1].search(knownDomsPat)!=0)
		{
		return false;
		}

 	if (len<2)
		{
		return false;
		}
 
	return true;
}

function isProperNumber(argNumber) {
	var numberValue = Number(argNumber)
	
	if (isNaN(numberValue)) 
		return false
	else
		return !isWhiteSpace(argNumber)
}

function isProperAlphabetic(argString) {
	var alphabets = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"

	for(var intI=0; intI<argString.length; intI++)
		if (alphabets.indexOf(argString.charAt(intI)) == -1)
			return false
	
	return true
}

function objectValue(argFrm, argElem) {
	var intI
	var objElem = null

	for (intI=0; intI<argFrm.length; intI++)
		if (argFrm[intI].name == argElem) 
			objElem = argFrm[intI]

	switch (objElem.type) {
		case 'text':
		case 'hidden':
		case 'password':
			return objElem.value
			break;
		
		case 'select-one':
			if (objElem.length == 0)
				return ''
			else 
				return objElem.options[objElem.selectedIndex].value
			break;
		
		case 'radio':
			for (intI=0; intI<argFrm.length; intI++)
				if (argFrm[intI].name == argElem) 
					if (argFrm[intI].checked)
						return argFrm[intI].value

			return ''
			break;
	}
}

function objectFocus(argFrm, argElem) {
	var intI
	var objElem = null
	for (intI=0; intI<argFrm.length; intI++)
		if (argFrm[intI].name == argElem) 
			objElem = argFrm[intI]
	objElem.focus();
}

function isProperZip(argZip) {
	if ((argZip.length == 5) || (argZip.length == 9))
		return isProperNumber(argZip)
	
	if (argZip.length == 10)
		return (isProperNumber(argZip.substr(0, 5)) && isProperNumber(argZip.substr(6, 4)) & (argZip.charAt(5) == '-'))
}

function isProperUSPhone (argPhone)
{
	var argPhone2 = stripCharsNotInBag(argPhone,"0123456789")
    return (isOkBag(argPhone,"01234567890 -().") && isInteger(argPhone2) && argPhone2.length==digitsInUSPhoneNumber)
}

function isProperUSSSN(argSSN) {
	var argSSN2 = stripCharsNotInBag(argSSN,"0123456789")
    return (isOkBag(argSSN,"01234567890-") && isInteger(argSSN2) && argSSN2.length==11)
}

function actionFields(argActions) {
	this.email			= (argActions.indexOf('[email]') > -1)
	this.required		= (argActions.indexOf('[req]') > -1)
	this.checkDate		= (argActions.indexOf('[date]') > -1)
	this.checkZip		= (argActions.indexOf('[zip]') > -1)
	this.checkNumber	= (argActions.indexOf('[number]') > -1)
	this.checkAlphabetic= (argActions.indexOf('[alpha]') > -1)
	this.checkUSPhone	= (argActions.indexOf('[usphone]') > -1)
	this.checkUSSSN		= (argActions.indexOf('[usssn]') > -1)

	if (argActions.indexOf('[len=') > -1) {
		this.checkLength = true

		var lenToCheck = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[len=') +  5);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				lenToCheck += argActions.charAt(intI)
			else
				bolCont = false
		this.lengthToCheck = lenToCheck
	}
	else
		this.checkLength = false

	if (argActions.indexOf('[blankalert=') > -1) {
		this.blankAlert = true

		var alertString = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[blankalert=') +  12);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				alertString += argActions.charAt(intI)
			else
				bolCont = false
		this.blankAlertMessage = alertString
	}
	else
		this.blankAlert = false
	
	if (argActions.indexOf('[invalidalert=') > -1) {
		this.invalidAlert = true

		var alertString = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[invalidalert=') +  14);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				alertString += argActions.charAt(intI)
			else
				bolCont = false
		this.invalidAlertMessage = alertString
	}
	else
		this.invalidAlert = false

	if (argActions.indexOf('[equals=') > -1) {
		this.shouldEqual = true

		var equalsString = ''
		var bolCont = true

		for (var intI=(argActions.indexOf('[equals=') +  8);((intI < argActions.length) && bolCont); intI++)
			if (argActions.charAt(intI) != ']')
				equalsString += argActions.charAt(intI)
			else
				bolCont = false
		this.shouldEqualString = equalsString
	}
	else
		this.shouldEqual = false

}

//Validate form data
function findObj(n, d) { //v4.0
  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=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function validateFormData() 
{ //T=Text - N=Number - E=Email - L=List - M=Multiple List - D=Date - H=Time - C=Checkbox - P=Password Confirmation
  var i,j,k,p,q,nm,frm,test,num,min,max,errors='',args=validateFormData.arguments,formdate;
  frm = args[0];
  for (i=1; i<(args.length-2); i+=3) 
  { 
  	 test=args[i+2]; 
  	 //val=findObj(args[i]);
  	 val = document.forms(frm)[args[i]];
  	 if (test.charAt(0) == 'L')
  	 	{ 
  	 	nm=args[i+1];
      	val = document.getElementById(args[i]).options[document.getElementById(args[i]).options.selectedIndex].value
      	p=val.indexOf('Select');
       	if (p>=0 || val == "") errors+='- You must make a selection from the '+nm+' list.\n';
      	} 
     	else if (test.charAt(0) == 'M')
  	 	{ 
  	 	nm=args[i+1];
		var selCount = 0;
		for (var sc=0; sc<document.getElementById(args[i]).length; sc++) 
			{
			if (document.getElementById(args[i])[sc].selected)
				{
				selCount += 1;
				}
			}
		if (selCount == 0) errors+='- You must make a selection from the '+nm+' list.\n';
		}
    	else if (test.charAt(0) == 'C') 
    		{
     		nm=args[i+1];
		if (val.checked != true) errors+='- '+nm+' checkbox must be checked to authorize payment.\n';
    		}
	else if (test.charAt(0) == 'E') 
    		{
		nm=args[i+1];
		if (val.value!="") 
			{
			if (!isProperEmail(val.value)) errors+='- Invalid form data.\n'; 
			}
		else errors+='- '+nm+' is required.\n'; 
		}
	else if (test.charAt(0) == 'e') 
    		{
		var errflag;
		errflag = 0;
     		nm=args[i+1];
		var regExpr=new RegExp();
		regExpr = /^([a-zA-Z0-9_.-]+[@][a-z]+[.](([a-z]{3})|([a-z]{2}[.][a-z]{2})))+$/;
    		if(!regExpr.test(val.value)) errflag = 1;
		p=val.value.indexOf('@');
       	if (p<1 || p==(val.length-1)) errflag = 1;
		var p1,p2,p3,p4,p5;
		p1 = val.value.indexOf('.com');
		p2 = val.value.indexOf('.net');
		p3 = val.value.indexOf('.gov');
		p4 = val.value.indexOf('.org');
		p5 = val.value.indexOf('.edu');
		if ((p1<1) && (p2<1) && (p3<1) && (p4<1) && (p5<1)) errflag = 1;
		if (errflag == 1) errors+='- Invalid form data.\n';
    		}
	else if (test.charAt(0) == 'R') 
    		{
     		nm=args[i+1];
		//alert(nm);
		j=val.length;
		for(k=0; k<j; k++) {
			if (val[k].checked) var radiovalue = val[k].value;
			}
			if (!radiovalue) errors+='- '+nm+' selection must be made from options.\n';
    		}
	else if (test.charAt(0) == 'P') 
    		{
     		nm=document.forms(frm)[args[i+1]];
		/*alert('Pwd ' + nm.value + ' ConfirmPwd ' + val.value);*/	
		if ((val=val.value)!="") 
		{
		if (val != nm.value) errors+='- Password confirmation does not match password.\n';
		if (val.length < 8) errors+='- Password must be atleast 8 characters.\n';
		}
		}
	else if (test.charAt(0) == 'X') 
    		{
		nm=args[i+1];
		//alert(val.value);
     		//var regExpr2=new RegExp();
		//regExpr2 = /^([0-9]{2}+[-][0-9]{2}+[-][0-9]{3})+$/;
    		//if(!regExpr2.test(val.value)) errors+='- '+nm+' invalid format. Please re-enter using 999-999-9999.\n';
		if (val.value!="") 
			{
			if (!isProperUSPhone(val.value)) errors+='- '+nm+' is invalid. Please re-enter using 999-999-9999.\n'; 
			}
		else errors+='- '+nm+' is required.\n'; 
		}
	else if (test.charAt(0) == 'Z') 
    		{
		nm=args[i+1];
		if (val.value!="") 
			{
			if (!isProperZip(val.value)) errors+='- '+nm+' is invalid. Please re-enter using 99999-9999.\n'; 
			}
		else errors+='- '+nm+' is required.\n'; 
		}
    else if (test.charAt(0) != 'L')
    {
    nm=args[i+1];
    if (val) 
    	{ 
    	//nm=val.name; 
    	nm=args[i+1];
    	if ((val=val.value)!="") 
    		{
      		if (test.indexOf('E')!=-1) 
      			{ 
      			p=val.indexOf('@');
       		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      			}
			else if (test.indexOf('d')!=-1) 
      			{ 
      			p=val.indexOf('/');
				formdate = new Date(val);
				todaysdate = new Date();
       		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain a valid date in the following format; (MM/DD/YY).\n';
      		if (formdate > todaysdate) errors+='- '+nm+' cannot contain a date in the future.\n';
			}
      		else if (test.indexOf('D')!=-1) 
      			{ 
      			p=val.indexOf('/');
       		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain a valid date in the following format; (MM/DD/YY).\n';
      			}
      		else if (test.indexOf('H')!=-1) 
      			{ 
      			p=val.indexOf(':');
       		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain a valid time in the following format; (HH:MM).\n';
      			} 
    		else if (test.charAt(0) == 'N') 
      			{
       		if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
       		if (test.indexOf('inRange') != -1) 
       			{ 
       			p=test.indexOf(':');
       			min=test.substring(8,p); max=test.substring(p+1);
       			if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    				} 
    			}
		
	
	}	
else errors += '- '+nm+' is required.\n'; 
}
   //else if (test.charAt(0) == 'T') errors += '- '+nm+' is required.\n';
   else errors += '- '+nm+' is required.\n';  
}
  } 
  if (errors) alert(errors);
  document.returnValue = (errors == '');
  }

   //Voting
	var answer = "none";
	var url = "vote.asp?question=1";
	function poll_answer(answerPassed){
		if (answer != "none") {
			document.images[imgName].src = "images/btn_con_radio_off.gif";
		}
		answer = answerPassed;
		imgName = "answer"+answerPassed;
		document.images[imgName].src = "images/btn_con_radio_on.gif";
	}
	function popup_results() {
		url = "vote.asp?question=1";
		pollUrl = url+"&Status=poll";
		//popup(pollUrl,'pollVote','550','200','no','no');
		popvote(pollUrl);
	}
	function submit_vote() {
		url = "vote.asp?question=1";
		if (answer == "none") {
			alert("You must vote to submit this poll.");
		} else {
			voteUrl = url+"&Status=vote&answer="+answer;
			//popup(voteUrl,'pollVote','550','200','no','no');
			popvote(voteUrl);
		}
	}
	function popvote(url) {
    window.open(url,'thePopUp','height=150,width=550,resizable=yes,screenX=300,screenY=100,left=300,top=100');
	}

	//Logout
	function CloseWin()
	{
 	win = top;
 	win.opener = top;
 	win.close();
	}

	//Minimize Browser
	function MinimizeBrowser()
	{
		window.parent.focus();
 		window.parent.window.blur();
		window.parent.window.alwaysLowered = true;
	}


function ChangeMainBg(BgFlag){
    if (BgFlag == 1)
    {
    document.body.style.backgroundImage = 'url(images/3dside.gif)';
	}
    else (BgFlag == 0)
    {
    document.body.style.backgroundImage = 'url(images/block.gif)';
	}
	}

function expandBlock(BlockName) {
			if (document.getElementById(BlockName).style.display == "block") {
				document.getElementById(BlockName).style.display = "none";
				
			} else {
				document.getElementById(BlockName).style.display = "block";
				
			}
		}


var to_find    = "";
var timeoutCtr = 0;
var selectBox;
var txtFind;
var keycode;

function findMatch2(s, t){
	timeoutCtr = new Date().getTime();
	selectBox  = s;
	txtFind    = t;
	keycode    = event.keyCode;
	setTimeout("findMatch()", 10);
}
 
function findMatch() {
	if (new Date().getTime() - timeoutCtr < 0) return false;
	if (txtFind == '' || keycode == 16) {
		return false;
	}

	to_find = txtFind.value
	if(keycode==8) to_find = to_find.substr(0, to_find.length-1);

	if(to_find.length==0){
		txtFind.value='';
		return false;
	}

	allWords    = selectBox.options;
	var posLow  = 0;
	var posHigh = allWords.length;
	var foundIt = false;
	s2          = to_find.toLowerCase();
	while (posLow <= posHigh) { 
		posMid = Math.floor((posLow + posHigh) / 2); 
		s1     = allWords[posMid].text;
		s      = allWords[posMid].text.toLowerCase();
		if (s.indexOf(s2) == 0){
			go = true;
			for (var i=posMid; i>=0; i--){
				if(allWords[i].text.toLowerCase().indexOf(s2) == 0){
					s1     = allWords[i].text;
					s      = allWords[i].text.toLowerCase();
				} else {
					break;
				}
			}
			posMid                  = i+1;
			foundIt                 = true;
			selectBox.selectedIndex = posMid;
			var t                   = s.length - (s.length - s2.length);
			end_string              = s.substr(t, s.length);
			txtFind.value           = s1;
			if (end_string != "") {
				var range = txtFind.createTextRange();
				range.moveStart('character', txtFind.value.toLowerCase().lastIndexOf(end_string));
				range.select();
			}
 			return true;
		} else {
			if (s2 < s) {
				posHigh = posMid - 1;
			} else {
				posLow  = posMid + 1;
			}
		}
	}
}
function getInfo(e, obj){
	if(e.selectedIndex>=1) obj.value=e[e.selectedIndex].text;
}

			 
function expandBlock(BlockName) {
			if (document.getElementById(BlockName).style.display == "block") {
				document.getElementById(BlockName).style.display = "none";
				
			} else {
				document.getElementById(BlockName).style.display = "block";
				
			}
		}

	var OutFade = 0;
	var wasFade = 0;


    	function fadeImage() {
	j = 0;
	ImgArray = new Array;
	oldImgArray = document.OriginImage;

	for (i = 0; i < ReplaceImage.arguments.length; i += 2) {
		obj=ReplaceImage.arguments[i]
		ImgArray[j++] = obj;
		if ((oldImgArray == null || oldImgArray[j-1] != obj) && OutFade == 0) {
			OutFade = 1;
			ImgArray[j++].filters.blendTrans.apply();
			ImgArray[j++] = obj.src;
			ImgArray[j++].filters.blendTrans.play();}
		else
			ImgArray[j++] = oldImgArray[j];
		obj.src = ReplaceImage.arguments[i + 1];
	}
	if (document.OriginImage == null)
		document.OriginImage = ImgArray;
	}

		function fadeElement() {
    			if (OutFade == 0){ 
    				OutFade = 1;
    				document.image1.filters.blendTrans.apply();
    				document.image1.src="FadingImage.jpg";
    				document.image1.filters.blendTrans.apply();
    			}
    		}


        	function fadeIn() {
        			if (wasFade == 0){ 
        				wasFade = 1;
        				document.image1.filters.blendTrans.apply();
        				document.image1.src="MainImage.jpg";
        				document.image1.filters.blendTrans.play();
        			}
        		}

function loadpage() {
browver= parseInt(navigator.appVersion);
browtype = navigator.appName;
browsertype = "old";
if (browtype == "Netscape" && !(browver < 3)) {
browsertype = "new"; 
}
if (browtype == "Microsoft Internet Explorer" && !(browver < 4)) {
browsertype = "new";
}
if (browsertype == "new") {
thetimer = setTimeout("changeimage()", 20000);
banneradcode = 0;
listofimages = new Array(2);
listofimages[0] = new Image(151,159)
listofimages[0].src = "banrots/wawad.gif"
listofimages[1] = new Image(151,159)
listofimages[1].src = "banrots/SampleBanner1.gif"
}
}

function changeimage(){
if (browsertype == "new") {
banneradcode = banneradcode + 1
if (banneradcode == 2) {
banneradcode = 0
}
imagesource = listofimages[banneradcode].src
window.document.banrot.src = imagesource
thetimer = setTimeout("changeimage()", 20000);
}
else if (browsertype == "old") {
}
}

function changepage() {
if (browsertype == "new") {
if (banneradcode == 0) {
newlocation = "http://www.webatworksites.com"
//newlocation = "mailto:webatwork@sbcglobal.net"
//newlocation = "http://localhost"

}
else if (banneradcode == 1) {
newlocation = "http://www.quoteshoppers.com/advertise.asp"
}
location = newlocation
}
else if (browsertype == "old") {
location = "http://www.quoteshoppers.com/advertise.asp"
}
}
		
function process(event,formname){
      key = event.keyCode;
      if (key==13){
      document.forms(formname).submit();
      }
}      

function processkey(event){
      key = event.keyCode;
      if (key==13){
      return true;
      }
	else return false;
}      

function RestoreImage(){ //v2.0
	nCount = document.OriginImage.length;
	ImgArray = document.OriginImage;

	if (document.OriginImage != null)
		for (i = 0; i < (nCount - 1); i += 2)
			ImgArray[i].src = ImgArray[i+1];
	document.OriginImage = null;
}

function ReplaceImage(){ //v2.0
	j = 0;
	ImgArray = new Array;
	oldImgArray = document.OriginImage;

	for (i = 0; i < ReplaceImage.arguments.length; i += 2) {
		obj=ReplaceImage.arguments[i]
		ImgArray[j++] = obj;
		if (oldImgArray == null || oldImgArray[j-1] != obj)
			ImgArray[j++] = obj.src;
		else
			ImgArray[j++] = oldImgArray[j];
		obj.src = ReplaceImage.arguments[i + 1];
	}
	if (document.OriginImage == null)
		document.OriginImage = ImgArray;
}


/***********************************************
* Fade image rotator
***********************************************/
 
var fadeimages=new Array()
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages[0]=["/Portals/0/images/HFDomains.png", "", ""] //plain image syntax
fadeimages[1]=["/Portals/0/images/HFDomainsCom.png", "", ""] //image with link syntax
fadeimages[2]=["/Portals/0/images/HFDomainsHos.png", "", "_new"] //image with link and target syntax
fadeimages[3]=["/Portals/0/images/HFDomainsCli.png", "", ""] //plain image syntax
fadeimages[4]=["/Portals/0/images/HFDomainsSci.png", "", ""] //plain image syntax
 
var fadeimages2=new Array() //2nd array set example. Remove or add more sets as needed.
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages2[0]=["images/formbg1a.jpg", "", ""] //plain image syntax
fadeimages2[1]=["images/formbg2a.jpg", "", ""] //image with link syntax
fadeimages2[2]=["images/formbg3a.jpg", "", "_new"] //image with link and target syntax
 
var fadeimages3=new Array() //2nd array set example. Remove or add more sets as needed.
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages3[0]=["images/focaltop1.jpg", "", ""] //plain image syntax
fadeimages3[1]=["images/focaltop6.jpg", "", ""] //image with link syntax
fadeimages3[2]=["images/focaltop3.jpg", "", ""] //image with link and target syntax
fadeimages3[3]=["images/focaltop8.jpg", "", ""] //image with link and target syntax
fadeimages3[4]=["images/focaltop10.jpg", "", ""] //image with link and target syntax
fadeimages3[5]=["images/focaltop9.jpg", "", ""] //image with link and target syntax
//fadeimages3[6]=["images/focaltop7.jpg", "", ""] //image with link and target syntax

var fadebgcolor="white"
 
////NO need to edit beyond here/////////////
 
var fadearray=new Array() //array to cache fadeshow instances
var fadeclear=new Array() //array to cache corresponding clearinterval pointers
 
var dom=(document.getElementById) //modern dom browsers
var iebrowser=document.all
 
function fadeshow(theimages, fadewidth, fadeheight, borderwidth, delay, pause, displayorder){
this.pausecheck=pause
this.mouseovercheck=0
this.delay=delay
this.degree=10 //initial opacity degree (10%)
this.curimageindex=0
this.nextimageindex=1
fadearray[fadearray.length]=this
this.slideshowid=fadearray.length-1
this.canvasbase="canvas"+this.slideshowid
this.curcanvas=this.canvasbase+"_0"
if (typeof displayorder!="undefined")
theimages.sort(function() {return 0.5 - Math.random();}) 
this.theimages=theimages
this.imageborder=parseInt(borderwidth)
this.postimages=new Array() //preload images
for (p=0;p<theimages.length;p++){
this.postimages[p]=new Image()
this.postimages[p].src=theimages[p][0]
}
 
var fadewidth=fadewidth+this.imageborder*2
var fadeheight=fadeheight+this.imageborder*2
 
if (iebrowser&&dom||dom) //if IE5+ or modern browsers (ie: Firefox)
document.write('<div id="master'+this.slideshowid+'" style="position:relative;width:'+fadewidth+'px;height:'+fadeheight+'px;overflow:hidden;"><div id="'+this.canvasbase+'_0" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);-moz-opacity:10;-khtml-opacity:10;background-color:'+fadebgcolor+'"></div><div id="'+this.canvasbase+'_1" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);-moz-opacity:10;background-color:'+fadebgcolor+'"></div></div>')
else
document.write('<div><img name="defaultslide'+this.slideshowid+'" src="'+this.postimages[0].src+'"></div>')
 
if (iebrowser&&dom||dom) //if IE5+ or modern browsers such as Firefox
this.startit()
else{
this.curimageindex++
setInterval("fadearray["+this.slideshowid+"].rotateimage()", this.delay)
}
}

function fadepic(obj){
if (obj.degree<100){
obj.degree+=10
if (obj.tempobj.filters&&obj.tempobj.filters[0]){
if (typeof obj.tempobj.filters[0].opacity=="number") //if IE6+
obj.tempobj.filters[0].opacity=obj.degree
else //else if IE5.5-
obj.tempobj.style.filter="alpha(opacity="+obj.degree+")"
}
else if (obj.tempobj.style.MozOpacity)
obj.tempobj.style.MozOpacity=obj.degree/101
else if (obj.tempobj.style.KhtmlOpacity)
obj.tempobj.style.KhtmlOpacity=obj.degree/100
}
else{
clearInterval(fadeclear[obj.slideshowid])
obj.nextcanvas=(obj.curcanvas==obj.canvasbase+"_0")? obj.canvasbase+"_0" : obj.canvasbase+"_1"
obj.tempobj=iebrowser? iebrowser[obj.nextcanvas] : document.getElementById(obj.nextcanvas)
obj.populateslide(obj.tempobj, obj.nextimageindex)
obj.nextimageindex=(obj.nextimageindex<obj.postimages.length-1)? obj.nextimageindex+1 : 0
setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", obj.delay)
}
}
 
fadeshow.prototype.populateslide=function(picobj, picindex){
var slideHTML=""
if (this.theimages[picindex][1]!="") //if associated link exists for image
slideHTML='<a href="'+this.theimages[picindex][1]+'" target="'+this.theimages[picindex][2]+'">'
slideHTML+='<img src="'+this.postimages[picindex].src+'" border="'+this.imageborder+'px">'
if (this.theimages[picindex][1]!="") //if associated link exists for image
slideHTML+='</a>'
picobj.innerHTML=slideHTML
}
 
 
fadeshow.prototype.rotateimage=function(){
if (this.pausecheck==1) //if pause onMouseover enabled, cache object
var cacheobj=this
if (this.mouseovercheck==1)
setTimeout(function(){cacheobj.rotateimage()}, 100)
else if (iebrowser&&dom||dom){
this.resetit()
var crossobj=this.tempobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
crossobj.style.zIndex++
fadeclear[this.slideshowid]=setInterval("fadepic(fadearray["+this.slideshowid+"])",50)
this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
}
else{
var ns4imgobj=document.images['defaultslide'+this.slideshowid]
ns4imgobj.src=this.postimages[this.curimageindex].src
}
this.curimageindex=(this.curimageindex<this.postimages.length-1)? this.curimageindex+1 : 0
}
 
fadeshow.prototype.resetit=function(){
this.degree=10
var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
if (crossobj.filters&&crossobj.filters[0]){
if (typeof crossobj.filters[0].opacity=="number") //if IE6+
crossobj.filters(0).opacity=this.degree
else //else if IE5.5-
crossobj.style.filter="alpha(opacity="+this.degree+")"
}
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=this.degree/101
else if (crossobj.style.KhtmlOpacity)
crossobj.style.KhtmlOpacity=obj.degree/100
}
 
 
fadeshow.prototype.startit=function(){
var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
this.populateslide(crossobj, this.curimageindex)
if (this.pausecheck==1){ //IF SLIDESHOW SHOULD PAUSE ONMOUSEOVER
var cacheobj=this
var crossobjcontainer=iebrowser? iebrowser["master"+this.slideshowid] : document.getElementById("master"+this.slideshowid)
crossobjcontainer.onmouseover=function(){cacheobj.mouseovercheck=1}
crossobjcontainer.onmouseout=function(){cacheobj.mouseovercheck=0}
}
this.rotateimage()
}
 
function DivBehind(theDiv){
	var b = 0;var z = (document.layers) ? ".zIndex" : ".style.zIndex";
	var fun = (document.getElementById) ? "document.getElementById" : "MM_findObj";
	var arr = (document.layers) ? document.layers : (document.all) ? document.all.tags("DIV") : document.getElementsByTagName("DIV");
	for(var i=0;i<arr.length;i++){var oz = eval("arr["+i+"]"+z);if(oz < b){b = oz;}}
	var obj = eval(fun+"(theDiv)");if(obj)eval(fun+"('"+theDiv+"')"+z+"=parseInt("+b+")-1");
}
