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)
{  if (checkEmail.arguments.length == 2) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else if (!isEmail(theField.value, false))
return warnInvalid (theField, s);
else 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;
for (var i in varName) {
flag = flag && checkString(form.elements[i], varName[i]);
}
return flag;
}

function emailCheck(form, varName)
{
var flag = true;
for (var i in varName) {
flag = flag && checkEmail(form.elements[i], varName[i]);
}
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["element.submitterEmail"].value;	
	var d = new Date();
	var mSeconds = d.getTime();	
	var commaSpace = ",  "
	if (form["element.submitterCity"] && form["element.submitterCity"].value != ""){
		var submitterCity = form["element.submitterCity"].value;	
		var ofString = " of ";
		/*form["element.title"].value = submitterEmail + ofString + submitterCity + commaSpace + mSeconds;	*/
	}
	else {	
		/*form["element.title"].value = submitterEmail + commaSpace + mSeconds;	*/	
	}			
}

// Required parameters
var  requiredVar = new Array();
requiredVar["element.miscNotes"] = "contact info";
requiredVar["event.startDate"] = "start date";
requiredVar["event.endDate"] = "end date";
requiredVar["category.2106"] = "zip code";
requiredVar["element.address2"] = "venue name";

// Email variables to check
var userEmail = new Array();
//userEmail["element.submitterEmail"] = "email address";

// Parameters that need character limit check
var  limitVar = new Array();
//limitVar["userQuestion"] = "question";


// Email variables to check
var emailVar = new Array();
emailVar["from"] = "\"From Email\"l";
emailVar["to"] = "\"To Email\"";

// Required parameters
var  searchVar = new Array();
searchVar["keyWord"] = "\"Key Word\"";


function validateForm(form)
{
return (requiredCheck(form, requiredVar) && emailCheck(form, userEmail) && charCheck(form, limitVar, 1000) && writeText(form));
}

function validateForm2(form)
{
return (requiredCheck(form, emailVar) && emailCheck(form, emailVar));
}

function validateForm3(form)
{
return (requiredCheck(form, searchVar));
}

function validateForm4(form)
{
return (requiredCheck(form, requiredVar));
}

// 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 categoryAssigned(theSelect)

{

var mySelect=document.getElementById(theSelect);
theIndx=mySelect.selectedIndex;

if(mySelect.options[theIndx].value != "none")
{
var categoryAssignment = mySelect.options[theIndx].innerHTML;
//alert(categoryAssignment); 
document.getElementById("event_type").value = categoryAssignment;

}
}

function stateAssigned(theSelect)

{

var mySelect=document.getElementById(theSelect);
theIndx=mySelect.selectedIndex;

if(mySelect.options[theIndx].value != "none")
{
var stateAssignment = mySelect.options[theIndx].innerHTML;
//alert(stateAssignment); 
document.getElementById("state_county").value = stateAssignment;

}
}

function zipAssigned(theSelect)

{

var mySelect=document.getElementById(theSelect);
theIndx=mySelect.selectedIndex;

if(mySelect.options[theIndx].value != "none")
{
var zipAssignment = mySelect.options[theIndx].innerHTML;
//alert(zipAssignment); 
document.getElementById("zip_code").value = zipAssignment;

}
}
