function Trim(TRIM_VALUE){
if(TRIM_VALUE.length < 1){
return"";
}
TRIM_VALUE = RTrim(TRIM_VALUE);
TRIM_VALUE = LTrim(TRIM_VALUE);
if(TRIM_VALUE==""){
return "";
}
else{
return TRIM_VALUE;
}
} 

function RTrim(VALUE){
var w_space = String.fromCharCode(32);
var v_length = VALUE.length;
var strTemp = "";
if(v_length < 0){
return"";
}
var iTemp = v_length -1;

while(iTemp > -1){
if(VALUE.charAt(iTemp) == w_space){
}
else{
strTemp = VALUE.substring(0,iTemp +1);
break;
}
iTemp = iTemp-1;

} 
return strTemp;

} 

function LTrim(VALUE){
var w_space = String.fromCharCode(32);
if(v_length < 1){
return"";
}
var v_length = VALUE.length;
var strTemp = "";

var iTemp = 0;

while(iTemp < v_length){
if(VALUE.charAt(iTemp) == w_space){
}
else{
strTemp = VALUE.substring(iTemp,v_length);
break;
}
iTemp = iTemp + 1;
} 
return strTemp;
} 



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 (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)
		{
		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

}


function validateForm(argForm)
	{
	var frmElements = argForm.elements
	var elemName
	var elemObj

	submitonce(argForm);

	for (var intI=0; intI < frmElements.length; intI++) {// *
		elemObj = frmElements[intI]
		elemName = elemObj.name

		if ((elemObj.type == 'hidden') && (elemName.length > 5))
			if (elemName.substr(elemName.length - 5).toLowerCase() == '_vldt') {// **
				var objAction = new actionFields(objectValue(frmElements, elemName))
				var actElem = elemName.substr(0, elemName.length - 5)
				
				if (objAction.required) {
					if (isWhiteSpace(objectValue(frmElements, actElem))) {// ***
						alert (objAction.blankAlert?objAction.blankAlertMessage:actElem + ' cannot be left blank')
						objectFocus(frmElements, actElem);
						submitenabled(argForm);
						return false
					} // ***
				}
				
				if ((objectValue(frmElements, actElem) > '') && (!isWhiteSpace(objectValue(frmElements, actElem)))){// ***
					if (objAction.checkDate)
						if (!isProperDate(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid date')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkNumber)
						if (!isProperNumber(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid number')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkZip)
						if (!isProperZip(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have an invalid zipcode')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkAlphabetic)
						if (!isProperAlphabetic(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkUSPhone)
						if (!isProperUSPhone(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkUSSSN)
						if (!isProperUSSSN(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.email)
						if (!isProperEmail(objectValue(frmElements, actElem))) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' cannot have invalid characters')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****

					if (objAction.checkLength)
						if (objectValue(frmElements, actElem).length < objAction.lengthToCheck) {// ****
							alert (objAction.invalidAlert?objAction.invalidAlertMessage:actElem + ' must be at least ' + objAction.lengthToCheck + ' characters long')
							objectFocus(frmElements, actElem);
							submitenabled(argForm);
							return false
						} // ****
				} // ***
			} // **
	} // *
		
	return true
}


function submitenabled(theform)
	{
	if (document.all||document.getElementById)
		{
		for (i=0;i<theform.length;i++)
			{
			var tempobj=theform.elements[i];
			if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset")
				tempobj.disabled=false;
			}
		}
	}


function submitonce(theform)
	{
	if (document.all||document.getElementById)
		{
		for (i=0;i<theform.length;i++)
			{
			var tempobj=theform.elements[i];
			if(tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset")
				tempobj.disabled=true;
			}
		}
	}



function observeWindowLoad(handler) {
    if (window.addEventListener) { 
        window.addEventListener('load',handler,false);
    }
    else if (document.addEventListener) {
        document.addEventListener('load',handler,false);
    }
    else if (window.attachEvent) { 
        window.attachEvent('onload',handler);
    }
    else {
        if (typeof window.onload=='function') {
            var oldload=window.onload;
            window.onload = function(){
                oldload();
                handler();
            }
        } 
        else { window.onload=init; }
    }
}


/*function Trim(TRIM_VALUE){if(TRIM_VALUE.length<1){return""}TRIM_VALUE=RTrim(TRIM_VALUE);TRIM_VALUE=LTrim(TRIM_VALUE);if(TRIM_VALUE==""){return""}else{return TRIM_VALUE}}function RTrim(VALUE){var w_space=String.fromCharCode(32);var v_length=VALUE.length;var strTemp="";if(v_length<0){return""}var iTemp=v_length-1;while(iTemp>-1){if(VALUE.charAt(iTemp)==w_space){}else{strTemp=VALUE.substring(0,iTemp+1);break}iTemp=iTemp-1}return strTemp}function LTrim(VALUE){var w_space=String.fromCharCode(32);if(v_length<1){return""}var v_length=VALUE.length;var strTemp="";var iTemp=0;while(iTemp<v_length){if(VALUE.charAt(iTemp)==w_space){}else{strTemp=VALUE.substring(iTemp,v_length);break}iTemp=iTemp+1}return strTemp}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:case 3:case 5:case 7:case 8:case 10:case 12:return 31;break;case 4:case 6:case 9:case 11:return 30;break;case 2: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(checkTLD&&domArr[domArr.length-1].length!=2&&domArr[domArr.length-1].search(knownDomsPat)==-1){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}function validateForm(argForm){var frmElements=argForm.elements var elemName var elemObj submitonce(argForm);for(var intI=0;intI<frmElements.length;intI++){elemObj=frmElements[intI]elemName=elemObj.name if((elemObj.type=='hidden')&&(elemName.length>5))if(elemName.substr(elemName.length-5).toLowerCase()=='_vldt'){var objAction=new actionFields(objectValue(frmElements,elemName))var actElem=elemName.substr(0,elemName.length-5)if(objAction.required){if(isWhiteSpace(objectValue(frmElements,actElem))){alert(objAction.blankAlert?objAction.blankAlertMessage:actElem+' cannot be left blank')objectFocus(frmElements,actElem);submitenabled(argForm);return false}}if((objectValue(frmElements,actElem)>'')&&(!isWhiteSpace(objectValue(frmElements,actElem)))){if(objAction.checkDate)if(!isProperDate(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have an invalid date')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.checkNumber)if(!isProperNumber(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have an invalid number')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.checkZip)if(!isProperZip(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have an invalid zipcode')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.checkAlphabetic)if(!isProperAlphabetic(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have invalid characters')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.checkUSPhone)if(!isProperUSPhone(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have invalid characters')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.checkUSSSN)if(!isProperUSSSN(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have invalid characters')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.email)if(!isProperEmail(objectValue(frmElements,actElem))){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' cannot have invalid characters')objectFocus(frmElements,actElem);submitenabled(argForm);return false}if(objAction.checkLength)if(objectValue(frmElements,actElem).length<objAction.lengthToCheck){alert(objAction.invalidAlert?objAction.invalidAlertMessage:actElem+' must be at least '+objAction.lengthToCheck+' characters long')objectFocus(frmElements,actElem);submitenabled(argForm);return false}}}}return true}function submitenabled(theform){if(document.all||document.getElementById){for(i=0;i<theform.length;i++){var tempobj=theform.elements[i];if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")tempobj.disabled=false}}}function submitonce(theform){if(document.all||document.getElementById){for(i=0;i<theform.length;i++){var tempobj=theform.elements[i];if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")tempobj.disabled=true}}}function observeWindowLoad(handler){if(window.addEventListener){window.addEventListener('load',handler,false)}else if(document.addEventListener){document.addEventListener('load',handler,false)}else if(window.attachEvent){window.attachEvent('onload',handler)}else{if(typeof window.onload=='function'){var oldload=window.onload;window.onload=function(){oldload();handler()}}else{window.onload=init}}}*/
var JQuery = $; JQuery(function() { JQuery("#selectall").click(function() { if (this.checked) { JQuery("input[name=shoppingcartitem]").each(function() { this.checked = true }) } else { JQuery("input[name=shoppingcartitem]").each(function() { this.checked = false }) } }); JQuery("#SubmitList").click(function() { var cc = false; var op = document.getElementById('UpdateCart').value; var IDs = ""; JQuery("input[name=shoppingcartitem]").each(function() { if (this.checked) { cc = true; IDs += this.value + "," } }); if (!cc) { alert("Please select at least one product."); return false } location.href = "shoppingcart.aspx?Operate=" + op + "&IDs=" + IDs }) });
(function() { var f = document.getElementById('cse-search-box'); if (!f) { f = document.getElementById('searchbox_demo'); } if (f && f.q) { var q = f.q; var n = navigator; var l = location; var su = function() { var u = document.createElement('input'); var v = document.location.toString(); var existingSiteurl = /(?:[?&]siteurl=)([^&#]*)/.exec(v); if (existingSiteurl) { v = decodeURI(existingSiteurl[1]); } var delimIndex = v.indexOf('://'); if (delimIndex >= 0) { v = v.substring(delimIndex + '://'.length, v.length); } u.name = 'siteurl'; u.value = v; u.type = 'hidden'; f.appendChild(u); }; if (n.appName == 'Microsoft Internet Explorer') { var s = f.parentNode.childNodes; for (var i = 0; i < s.length; i++) { if (s[i].nodeName == 'SCRIPT' && s[i].attributes['src'].nodeValue == unescape('http:\x2F\x2Fwww.google.com\x2Fcse\x2Fbrand?form=cse-search-box\x26lang=en\x26sitesearch=true')) { su(); break; } } } else { su(); } if (n.platform == 'Win32') { q.style.cssText = 'border: 1px solid #7e9db9; padding: 2px;'; } if (window.history.navigationMode) { window.history.navigationMode = 'compatible'; } var b = function() { if (q.value == '') { q.style.background = '#FFFFFF url(images\x2Fsite_search_watermark.gif) left no-repeat'; } }; var f = function() { q.style.background = '#ffffff'; }; q.onfocus = f; q.onblur = b; if (!/[&?]q=[^&]/.test(l.search)) { b(); } } })();

(function() { var f = document.getElementById('cse-search-box'); if (!f) { f = document.getElementById('searchbox_demo'); } if (f && f.q) { var q = f.q; var n = navigator; var l = location; var su = function() { var u = document.createElement('input'); var v = document.location.toString(); var existingSiteurl = /(?:[?&]siteurl=)([^&#]*)/.exec(v); if (existingSiteurl) { v = decodeURI(existingSiteurl[1]); } var delimIndex = v.indexOf('://'); if (delimIndex >= 0) { v = v.substring(delimIndex + '://'.length, v.length); } u.name = 'siteurl'; u.value = v; u.type = 'hidden'; f.appendChild(u); }; if (n.appName == 'Microsoft Internet Explorer') { var s = f.parentNode.childNodes; for (var i = 0; i < s.length; i++) { if (s[i].nodeName == 'SCRIPT' && s[i].attributes['src'].nodeValue == unescape('http:\x2F\x2Fwww.google.com\x2Fcse\x2Fbrand?form=cse-search-box\x26lang=en\x26sitesearch=true')) { su(); break; } } } else { su(); } if (n.platform == 'Win32') { q.style.cssText = 'border: 1px solid #7e9db9; padding: 2px;'; } if (window.history.navigationMode) { window.history.navigationMode = 'compatible'; } var b = function() { if (q.value == '') { q.style.background = '#FFFFFF url(images\x2Fsite_search_watermark.gif) left no-repeat'; } }; var f = function() { q.style.background = '#ffffff'; }; q.onfocus = f; q.onblur = b; if (!/[&?]q=[^&]/.test(l.search)) { b(); } } })(); 
