var mPrefix = "You did not enter a value into the ";
var mSuffix = " field. This is a required field. Please enter it now.";
var reSpace = /^\s+$/;
var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
var pEntryPrompt = "Please enter a ";
var defaultEmptyOK = false;function promptEntry (s)
{  window.status = pEntryPrompt + s;
}

function isEmpty(s)
{
return ((s == null) || (s.length == 0));
}


function isWhitespace (s){  return (isEmpty(s) || reSpace.test(s));
}



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 charLimit(theField, s, limit) {
if (theField.value.length > limit) {
return false;
}
else {
return true;
}
}

function charLimit2(theField, s, limit) {
if (theField.value.length > limit) {
alert("The " + s + " field exceeds the character limit of " + limit + ".");
return false;
}
else {
return true;
}
}


function isEmail (s){  if (isEmpty(s))
if (isEmail.arguments.length == 1) return defaultEmptyOK;
else return (isEmail.arguments[1] == true);else {
return reEmail.test(s);
}
}


function checkEmail (theField, s, emptyOK)
{  
	//alert('in checkEmail. \ntheField.value = ' + theField.value + '. \ns = ' + s);
	if (checkEmail.arguments.length == 2) emptyOK = defaultEmptyOK;
	if ((emptyOK == true) && (isEmpty(theField.value))) { return true; }
	else if (!isEmail(theField.value, false)) {
	//alert('jg: its not a valid email, so about to return result of warnInvalid');
	return warnInvalid(theField, s); 
	} else {
	//alert('checkEmail about to return true');
	return true; 
	}
}


function warnEmpty (theField, s)
{  theField.focus();
alert(mPrefix + s + mSuffix);
return false;
}


function warnInvalid (theField, s)
{  theField.focus();
theField.select();
alert("The " + s + " you have entered is invalid.");
return false;
}

function requiredCheck(form, varName)
{
var flag = true;
//alert('in requiredCheck. \n array length = ' + varName.length);
// varName will be an array of arrays
for(var i=0; i < varName.length; i++ ) {
	var fieldArray = varName[i];
	var fieldName = fieldArray[0];
	var fieldLabel = fieldArray[1];
	if(form.elements[fieldName]) {
		flag = flag && checkString(form.elements[fieldName], fieldLabel);
	}
}

  //DS remove this for case #25386 
//removeHTMLTags(form.field); 


return flag;
}


function emailCheck(form, varName)
{
	//alert('in emailCheck.  varName = ' + varName + '(' + typeof(varName) +')');
	var flag = true;
	var count = 0;
	//alert('varName = ' + varName + '(' + typeof(varName) + ')\n length = ' + varName.length);
	var formFieldName = varName[0];
	var formFieldLabel = varName[1];
	if(form.elements[formFieldName]) {
		flag = flag && checkEmail(form.elements[formFieldName], formFieldLabel);
	}

	//alert('emailCheck, about to return ' + flag);
	return flag;
}

function charCheck(form, varName, limit)
{
var flag = true;
for (var i in varName) {
if (form.elements[i] != null) {
flag = flag && charLimit2(form.elements[i], varName[i], limit);
}
}
return flag;}


function charLimitCheck(form, varName, limit)
{
var flag = true;
var myAlert = "";
var count = 0;
for (var i in varName) {
if (form.elements[i] != null) {
if (!charLimit(form.elements[i], varName[i], limit[i])) {
count++;
if (count > 1) {
myAlert = myAlert + "\n";
}
myAlert = myAlert + "The " + varName[i] + " field exceeds character limit of " + limit[i] + ".";
flag = false;
}
}
}

if (!flag) {
alert("Error:\n" + myAlert);
}

return flag;
}

function writeText (form) {
	var submitterEmail = form["email"].value;	
	var d = new Date();
	var mSeconds = d.getTime();	
	var commaSpace = ",  "
	return true;			
}



// jg: just try a new way
var emailArray = ["email","email address"];


// Required parameters
var fieldCommentArray = ["field","comment"];
var requiredVarArray = [fieldCommentArray]

// Parameters that need character limit check
var  limitVar = new Array();
limitVar["userQuestion"] = "question";



// Required parameters
var  searchVar = new Array();
searchVar["keyWord"] = "\"Key Word\"";


function validateForm(form)
{
//alert('in validateForm.')
//alert('validateForm right before it would return emailCheck');
return (requiredCheck(form, requiredVarArray));
}


// check param individually
//function validateForm(form)
//{
//  return (
//          checkString(form.elements["loginId"],sLogin) && checkString(form.elements["loginPassword"],sPassword)
//  );
//}
function charSafe(myPost) {// Replace one string with another

var str = myPost.value;

var myFilter = new Array();
myFilter[String.fromCharCode(34)] = "&quot;"; //quotation
myFilter[String.fromCharCode(39)] = "&#39;"; //apostrophe

    for (var i in myFilter) {// go thru all the filter and replace if found
        var re = new RegExp(i, "gi");
        var filterTest = re.test(str);
            if (filterTest) {
            str = str.replace(re, myFilter[i]);
            }
    }
myPost.value = str;

}

function removeHTMLTags(textField){
 //DS remove this for case #25386 
/*
 	var strInputCode = textField.value;
 	strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
 	 	return (p1 == "lt")? "<" : ">";
 	});
 	textField.value = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
*/
}

