// *** //////////////////////////////////////////////////////////////////////////// *** //

function incHTMLEscape (sString) {
	sString = sString.replace(/&/g, "&amp;");
	sString = sString.replace(/</g, "&lt;");
	sString = sString.replace(/>/g, "&gt;");
	sString = sString.replace(/"/g, "&quot;");
	return (sString);
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incHTMLUnescape (sString) {
	sString = sString.replace(/&quot;/gi, "\"");
	sString = sString.replace(/&gt;/gi, ">");
	sString = sString.replace(/&lt;/gi, "<");
	sString = sString.replace(/&amp;/gi, "&");
	return (sString);
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incFormatDate (objField) {
	var objDate;
	var nYear;
	
	// Create a Date object for parsing
	objDate = new Date(objField.value.replace(/[.-]/g, "/"));
	
	// Test the Date object
	if ( isNaN(objDate) ) {
		objField.value = "";
		return;
		}
	
	// Get a 2-digit year
	nYear = objDate.getFullYear() % 100;
	
	// Use 1900 or 2000 prefix?
	if ( nYear < 20 ) {
		objDate.setFullYear(2000 + nYear);
		}
	else {
		objDate.setFullYear(1900 + nYear);
		}
	
	// Display a m/d/yyyy formatted date
	objField.value
	= (objDate.getMonth()+1) + "/"
	+ objDate.getDate() + "/"
	+ objDate.getFullYear();
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incFormatShortDate (objField) {
	var arrResults;
	
	// Looks for a short date in mm/yyyy format
	arrResults = /^(\d{1,2})[\.\/\-](\d{2,4})$/.exec(objField.value);
	
	if ( arrResults == null || eval(arrResults[1]) < 1 || eval(arrResults[1]) > 12 ) {
		
		// Looks for a long date in m/d/yyyy format, to be converted to short date
		arrResults = /^(\d{1,2})[\.\/\-]\d{1,2}[\.\/\-](\d{2,4})$/.exec(objField.value);
		
		if ( arrResults == null || eval(arrResults[1]) < 1 || eval(arrResults[1]) > 12 ) {
			objField.value = "";
			return;
			}
		
		}
	
	if ( eval(arrResults[2]) < 100 ) {
		if ( eval(arrResults[2]) < 20 ) {
			objField.value = arrResults[1] + "/20" + arrResults[2];
			}
		else {
			objField.value = arrResults[1] + "/19" + arrResults[2];
			}
		}
	else {
		objField.value = arrResults[1] + "/" + arrResults[2];
		}
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incFormatNumber (objField) {
	var sNumbers;
	
	sNumbers = objField.value.replace(/\D/g, "");
	objField.value = sNumbers;
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incFormatPhone (objField) {
	var sNumbers;
	var sPhone;
	
	sNumbers = objField.value.replace(/\D/g, "").substr(0, 10);
	sPhone = "";
	
	for ( var i = 0; i < (10 - sNumbers.length); i++ ) {
		sPhone += "x";
		}
	sPhone += sNumbers;
	
	objField.value
	= "(" + sPhone.substr(0, 3) + ") "
	+ sPhone.substr(3, 3) + "-"
	+ sPhone.substr(6, 4);
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incFormatSSN (objField) {
	var sNumbers;
	var sSSN;
	
	sNumbers = objField.value.replace(/\D/g, "").substr(0, 9);
	sSSN = sNumbers;
	
	for ( var i = 0; i < (9 - sNumbers.length); i++ ) {
		sSSN += "x";
		}
	
	objField.value
	= sSSN.substr(0, 3) + "-"
	+ sSSN.substr(3, 2) + "-"
	+ sSSN.substr(5, 4);
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incFormatZipCode (objField) {
	var sNumbers;
	var sZip;
	
	sNumbers = objField.value.replace(/\D/g, "").substr(0, 9);
	sZip = sNumbers;
	
	for ( var i = 0; i < (9 - sNumbers.length); i++ ) {
		sZip += "x";
		}
	
	if ( sNumbers.length == 5 ) {
		objField.value = sNumbers;
		}
	else {
		objField.value
		= sZip.substr(0, 5) + "-"
		+ sZip.substr(5, 4);
		}
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidDate (sDate) {
	return ( !isNaN(new Date(sDate)) );
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidShortDate (sDate) {
	var arrResults;
	
	// Looks for a short date in mm/yyyy format
	arrResults = /^(\d{1,2})\/(\d{2,4})$/.exec(sDate);
	
	return ( !(arrResults == null || eval(arrResults[1]) < 1 || eval(arrResults[1]) > 12) );
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidNumber (sNumber) {
	return (sNumber.length > 0 && sNumber.replace(/\D/g, "").length == sNumber.length);
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidPhone (sPhone) {
	return (sPhone.search(/^\(\d{3}\) \d{3}\-\d{4}$/) != (-1));
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidSSN (sSSN) {
	return (sSSN.search(/^\d{3}\-\d{2}\-\d{4}$/) != (-1));
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidZipCode (sZip) {
	return (sZip.search(/^\d{5}(\-\d{4})?$/) != (-1));
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incIsValidEmail (sEmail) {
	return (sEmail.search(/^.+\@.+\..+$/) != (-1));
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incSetSelectDefault (objSelect, sValue) {
	var nIndex;
	
	objSelect.selectedIndex = (-1);
	
	for ( nIndex = 0; nIndex < objSelect.options.length; nIndex++ ) {
		if ( objSelect.options[nIndex].value == sValue ) {
			objSelect.selectedIndex = nIndex;
			break;
			}
		}
	}



// *** //////////////////////////////////////////////////////////////////////////// *** //

function incSetCheckboxDefault (objCheckbox, sValue) {
	switch ( sValue ) {
		case "on":
		case "ON":
		case "1":
			objCheckbox.checked = true;
			break;
			
		default:
			objCheckbox.checked = false;
			break;
		}
	}
