/*
Clientside Validation.
Created by DN
last modified: 6/29/2004 DN
*/


// function that toggles feedback container
function changeContent (containerName, content){
	var errorModule = '<TABLE WIDTH="738" CELLPADDING="2" CELLSPACING="0" BORDER="0" BGCOLOR="#FFFFCC"><TR><TD WIDTH="20" NOWRAP></TD><TD WIDTH="5" NOWRAP></TD><TD WIDTH="708" NOWRAP></TD></TR><TR><TD COLSPAN="3"><IMG SRC="/gresources/cleardot.gif" WIDTH="1" HEIGHT="1" ALT=""/></TD></TR><TR><TD VALIGN="TOP"><IMG SRC="/gresources/message_sign.gif" ALT="Alert"/></TD><TD><IMG SRC="/gresources/cleardot.gif" WIDTH="1" HEIGHT="1" ALT=""/></TD><TD CLASS="Arial12RegularRed">'+content+'</TD></TR><TR><TD COLSPAN="3"><IMG SRC="/gresources/cleardot.gif" WIDTH="1" HEIGHT="1" ALT=""/></TD></TR><TR><TD HEIGHT="20" COLSPAN="3" BGCOLOR="#FFFFFF"></TD></TR></TABLE>'
	if (document.all){
	document.all[containerName].style.display = "";
	document.all[containerName].innerHTML = errorModule;
	}
	if (document.getElementById) {
	document.getElementById(containerName).style.display = "";
	document.getElementById(containerName).innerHTML = errorModule;
	}
}



//error messages
var msgEmail = "Please enter your Email Address.";
var msgEmailConfirm = "Please re-enter your Email Address.";
var msgPassword = "Please enter your Password.";
var msgPasswordConfirm = "Please re-enter your Password.";
var msgFirstName = "Please enter your First Name.";
var msgLastName = "Please enter your Last Name.";
var msgSecurityQ = "Please select a Security Question.";
var msgSecurityA = "Please enter a Security Answer.";
var msgRecipEmail = "Please enter the Recipient's Email Address.";
var msgRecipEmailConfirm = "Please re-enter the Recipient's Email Address.";
var msgNickName = "Please enter an Address Nickname.";
var msgAddrLine1 = "Please enter an Address.";
var msgCity = "Please enter a City.";
var msgState = "Please select a State/Province.";
var msgCountry = "Please select a Country.";

/*
BEGIN generic validation functions
*/

// checks if field is completed
function chkFilled (strng) {
	if (strng.value == "") {
		return false;
    }
	return true;
}

//Check to see numbers used
function chkNumbers (strng) {
if (strng.value == "") {
	return false;
}
    var illegalChars= /[^0-9]/
    if (illegalChars.test(strng.value)) {
		return false;
	}
	return true;	
}

//Check Zip Code: filled out / numeric
function chkZip (strng) {
	if (strng.value == "") {
		return false;
	} 
	else {
	    var illegalChars= /[^0-9]/
	    if (illegalChars.test(strng.value)) {
			return false;
		}
    }   
	return true;
}

//Check Phone (simple): filled out / numeric
function chkPhone (strng) {
	if (strng.value == "") {
		return false;
	} else {
	    var illegalChars= /[^0-9]/
	    if (illegalChars.test(strng.value)) {
			return false;
		}
    }   
	return true;
}

// if dropdown box option selected
function chkDropdown(strng) {
	if (strng.options[strng.selectedIndex].value== "") {
		return false;
    }
	return true;
}

// if radio button checked
function chkRadio(strng) {
   if (strng.checked != true) {
	   return false;
    }
return true;
}

// checks if email is in correct format
function chkEmail (strng) {
	if (strng.value == "") {
		return false;
	}
	var emailFilter=/^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(strng.value))) { 
		return false;	   
	}
    else {
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if (strng.value.match(illegalChars)) {
			return false;
		}
    }   
	return true;
}

//Check to see if one checkbox is checked
function chkCheckbox(strng) {
	if (strng.checked != true) {
		return false;
		}
	return true;
}


var hasSubmitted = true;
function checkSubmit() {
	if (hasSubmitted == true){
		hasSubmitted = false;
		return true;
	}
	if (hasSubmitted == false) {
		return false;
	}
}

/*
END generic validation functions
*/


/*
Loops thru elements array and populates func based on custom attributes and invokes above functions
passed strng is document.forms['form1'].elementname
*/

// creates JS array based on required attribute
var valArray = new Array();
function createArrays(){
	var fe = document.forms['form1'].elements;
	for (a=0;a<fe.length;a++){
	if (fe[a].type=="text" || fe[a].type=="password") {
		fe[a].style.background="#FFFFFF";
		}
	}
	valArray.length=0;i=0;
	for (a=0;a<fe.length;a++){
		if (fe[a].REQUIRED=="required" || (fe[a].REQUIRED=="optional" && fe[a].value != "")) {
			valArray[i] = new Array(
			fe[a].id,fe[a].CHECK,fe[a].MSG
			);			
			i++;
		}
	}
}

// performs validation based on array, constructs necessary functions
function checkForm() {
	createArrays();
	var f = document.forms['form1'];
	var msgStr = "";
	for (i in valArray) {
		if (eval (" (!("+valArray[i][1]+"(f."+valArray[i][0]+")))")) {
			msgStr += eval ("("+valArray[i][2]+")")+"<br />";
			if (f.elements[valArray[i][0]].type=="text" || f.elements[valArray[i][0]].type=="password")
			f.elements[valArray[i][0]].style.background="#FFFFcc";
			}
		}
		if (msgStr != ""){
			for (i in valArray) {
				if (f.elements[valArray[i][0]].type=="password")
				f.elements[valArray[i][0]].value="";
				}
			window.scrollTo(0,0);
			changeContent('feedbackDiv', msgStr);
			return false;
		}
	else {
		return true;
	}
}

/*
Misc functions
*/

//textarea countdown implemented in page:
//<TEXTAREA onkeypress="return taLimit()" onkeyup="return taCount(myCounter1)" name="Description" rows="7" wrap="physical" cols="40" maxLength="255"></TEXTAREA>
//<SPAN id="myCounter1">255</SPAN>

function taLimit(taObj,maxLength) {
	if (taObj.value.length > maxLength*1) {
		return false;
	}
	return true;
}

function taCount(taObj,visCnt,maxLength) { 
	if (taObj.value.length >= maxLength*1) taObj.value = taObj.value.slice(0,maxLength*1);
	if (visCnt) visCnt.innerHTML=maxLength-taObj.value.length;
}

//Check that the passwords match...
function chkPasswordMatch (strng1, strng2) {
	var fe = document.forms['form1'].elements;
	if (fe[strng1].value =="" && fe[strng2].value=="") {
		alert('empty');
		return false;
	}
	if (fe[strng1].value != fe[strng2].value) {
		alert('here');
		return false;
	}
return true;
}

//Compare 2 separate email addresses...
function chkEmailMatch (strng1, strng2) {
	var fe = document.forms['form1'].elements;
	if (fe[strng1].value =="" && fe[strng2].value=="") {
		alert('empty');
		return false;
	}
	if (fe[strng1].value != fe[strng2].value) {
		alert('here');
		return false;
	}
return true;
}


//Disable a textbox

function disableTxtBx(formName,textDisable,checkDisable) {
	var fe = document.forms[formName].elements;
	if (fe[checkDisable].checked == true) {
		fe[textDisable].disabled=true;
		fe[textDisable].style.background="#CCCCCC";
		}
	else {
		fe[textDisable].disabled=false;
		fe[textDisable].style.background="#FFFFFF";
	}
}
