function stoperror(){
	return true
}

window.onerror=stoperror

function smutEngine() {
	smut="_@-*%!_@-*%!_@-*%!";
	cmp="sex babes shit fuck damn porno cunt prick pecker asshole pedophile man-boy man/boy dong twat | ";
	txt=document.inputform.Comment.value;
	tstx="";
	for (var i=0;i<16;i++){
		pos=cmp.indexOf(" ");
		wrd=cmp.substring(0,pos);
		wrdl=wrd.length
		cmp=cmp.substring(pos+1,cmp.length);
		while (txt.indexOf(wrd)>-1){
			pos=txt.indexOf(wrd);
			txt=txt.substring(0,pos)+smut.substring(0,wrdl)+txt.substring((pos+wrdl),txt.length);
		}
	}
	document.inputform.Comment.value=txt;
}

function CityLc(){
	if (navigator.appVersion.substring(0,1)=="2"){
		navOld();
	}else
		navNew();
}

function navOld(){
	txt=document.inputform.City.value+" ";
	txt=txt.toLowerCase();
	txtl="";
	while ((txt.length>0)&&(txt.indexOf(" ")>-1)){
		pos=txt.indexOf(" ");
		wrd=txt.substring(0,pos);
		cmp=" "+wrd+" ";
		if (tst.indexOf(cmp)<0){
			ltr=wrd.substring(0,1);
			ltr=ltr.toUpperCase();
			wrd=ltr+wrd.substring(1,wrd.length);
		}
		txtl+=wrd+" "; 
		txt=txt.substring((pos+1),txt.length);
	}
	ltr=txtl.substring(0,1);
	ltr=ltr.toUpperCase();
	txtl=ltr+txtl.substring(1,txtl.length-1);
	document.inputform.City.value=txtl;
}

function navNew(){
	txt=document.inputform.City.value+" ";
	txt=txt.toLowerCase();
	txtl="";
	tst=" in into of on onto with within by to for the at upon over under and or a ";
	punc=",.?!:;)'";
	punc+='"';
	while ((txt.length>0)&&(txt.indexOf(" ")>-1)){
		pos=txt.indexOf(" ");
		wrd=txt.substring(0,pos);
		wrdpre="";
		if (punc.indexOf(wrd.substring(0,1))>-1){
			wrdpre=wrd.substring(0,1);
			wrd=wrd.substring(1,wrd.length);
		}
		cmp=" "+wrd+" ";
		for (var i=0;i<9;i++){
			p=wrd.indexOf(punc.substring(i,i+1));
			if (p==wrd.length-1){
				cmp=" "+wrd.substring(0,wrd.length-1)+" ";
				i=9;
			}
		}
		if (tst.indexOf(cmp)<0){
			ltr=wrd.substring(0,1);
			ltr=ltr.toUpperCase();
			wrd=ltr+wrd.substring(1,wrd.length);
		}
		txtl+=wrdpre+wrd+" "; 
		txt=txt.substring((pos+1),txt.length);
	}
	ltr=txtl.substring(0,1);
	ltr=ltr.toUpperCase();
	txtl=ltr+txtl.substring(1,txtl.length-1);
	document.inputform.City.value=txtl;
}

var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r";
var decimalPointDelimiter = "."
var phoneNumberDelimiters = "()-. ";
var validUSPhoneChars = digits + phoneNumberDelimiters;
var digitsInUSPhoneNumber = 10;
var ZIPCodeDelimiters = "-";
var ZIPCodeDelimeter = "-"
var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9
var mPrefix = "You did not enter a value into the "
var mSuffix = " field. This is a required field. Please enter it now."
var sZIPCode = "ZIP Code"
var sPhone = "Phone Number"
var sFax = "Fax Number"
var iZIPCode = "This field must be a 5 or 9 digit U.S. ZIP Code (like 27999 OR 27999-1234). Please reenter it now."
var iZIPCnda = "A Canadian Province has been selected. The Postal Code must be in valid Canadian format (like A1B 2C3). Please reenter it now."
var iUSPhone = "This field must be a 10 digit U.S. phone number (like 415 555 1212). Please reenter it now."
var pZIPCode = "5 or 9 digit U.S. ZIP Code (like 27999 OR 27999-1234)."
var pUSPhone = "10 digit U.S. phone number (like 415 555 1212)."
var defaultEmptyOK = false

function makeArray(n){
	for (var i = 1; i <= n; i++) {
		this[i] = 0
	} 
	return this
}

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 isUSPhoneNumber (s){
	if (isEmpty(s)) 
		if (isUSPhoneNumber.arguments.length == 1) 
			return defaultEmptyOK;
		else
			return (isUSPhoneNumber.arguments[1] == true);
    	return (isInteger(s) && s.length == digitsInUSPhoneNumber)
}

function isZIPCode (s){
	if (isEmpty(s))
		if (isZIPCode.arguments.length == 1)
			return defaultEmptyOK;
		else
       	return (isZIPCode.arguments[1] == true);
		return (isInteger(s) && ((s.length == digitsInZIPCode1) || (s.length == digitsInZIPCode2)))
}

function isIntegerInRange (s, a, b){
	if (isEmpty(s))
		if (isIntegerInRange.arguments.length == 1)
			return defaultEmptyOK;
       else
       	return (isIntegerInRange.arguments[1] == true);
       if (!isInteger(s, false))
    	   return false;
		var num = parseInt (s);
		return ((num >= a) && (num <= b));
}

function prompt (s){
	window.status = s
}

function promptEntry (s){
	window.status = pEntryPrompt + s
}

function warnEmpty (theField, s){
	theField.focus()
	alert(mPrefix + s + mSuffix)
	return false
}

function warnInvalid (theField, s){
	theField.focus()
	theField.select()
	alert(s)
	return false
}

function checkString (theField, s, emptyOK){
	if (checkString.arguments.length == 2)
		emptyOK = defaultEmptyOK;
	if ((emptyOK == true) && (isEmpty(theField.value)))
		return true;
	if (isWhitespace(theField.value)) 
		return warnEmpty (theField, s);
	else
		return true;
}

function reformatZIPCode (ZIPString){
	if (ZIPString.length == 5)
		return ZIPString;
	else
		return (reformat (ZIPString, "", 5, "-", 4));
}

function checkZIPCode (theField, emptyOK){
	canada = "AB,BC,MB,NB,NF,NS,NT,NU,ON,PE,QC,SK,YT"
	state = document.inputform.State.value
	if (canada.indexOf(state) < 0){
		if (checkZIPCode.arguments.length == 1)
			emptyOK = defaultEmptyOK;
		if ((emptyOK == true) && (isEmpty(theField.value)))
			return true;
		else{
			var normalizedZIP = stripCharsInBag(theField.value, ZIPCodeDelimiters)
			if (!isZIPCode(normalizedZIP, false)) 
				return warnInvalid (theField, iZIPCode);
			else{
				theField.value = reformatZIPCode(normalizedZIP)
				return true;
			}
		}
	}else{
		zip = document.inputform.Zip.value
		zchk = 0
		if (zip.length == 7){
			cangood1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
			cangood2 = "0123456789"
			if (cangood1.indexOf(zip.charAt(0)) < 0){zchk = zchk + 1}
			if (cangood1.indexOf(zip.charAt(2)) < 0){zchk = zchk + 1}
			if (cangood1.indexOf(zip.charAt(5)) < 0){zchk = zchk + 1}
			if (cangood2.indexOf(zip.charAt(1)) < 0){zchk = zchk + 1}
			if (cangood2.indexOf(zip.charAt(4)) < 0){zchk = zchk + 1}
			if (cangood2.indexOf(zip.charAt(6)) < 0){zchk = zchk + 1}
			if (zip.charAt(3) != " "){zchk = zchk + 1}
		}else{
			zchk = zchk + 1
		}
		if (zchk != 0) 
			return warnInvalid (theField, iZIPCnda);
		else{
			return true;
		}
	}
}

function reformatUSPhone (USPhone){
	return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}

function checkUSPhone (theField, emptyOK){
	if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
	if ((emptyOK == true) && (isEmpty(theField.value)))
		return true;
	else{
		var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
		if (!isUSPhoneNumber(normalizedPhone, false))
			return warnInvalid (theField, iUSPhone);
		else{
			theField.value = reformatUSPhone(normalizedPhone)
			return true;
		}
	}
}
