// JavaScript Document

function statusBox(msg){
	window.status = msg;
}

function openWindow(linkx,title,winW,winH,optBol){
	if (optBol){
		// alert("true:" + optBol);
		window.open(linkx,title,'width='+winW+',height='+winH+',,');
	}
	else{
		// alert("false:" + optBol);
		window.open(linkx,title,'width='+winW+',height='+winH+',scrollbars,resizable');
	}
}

function validateForm (formID){
	var tempArray = eval(formID);
	
	var returnState = true;
	for (x in tempArray){
		if (tempArray[x][1] == "txt"){
			var tempValidate = document.getElementById(tempArray[x][0]).value;
		}
		else if (tempArray[x][1] == "sel"){
			var tempIndex = document.getElementById(tempArray[x][0]).selectedIndex;
			var tempValidate = document.getElementById(tempArray[x][0]).options[tempIndex].value;
		}
		
		if (tempValidate.length == 0){
			returnState = false;
		}
	}
	
	if (returnState){
		// need this in for the htmlarea functionality.
		if (formID == "textEditor"){
			document.getElementById(formID).onsubmit();
		}
		document.getElementById(formID).submit();
	}
	else{
		alert("The form is incomplete.");
	}
}


function validField(fieldType, thisValue, required){
	if (fieldType == "email"){
		thisExp = /^[a-zA-Z0-9\.\-\_]{1,}\@[a-zA-Z0-9\.\-\_]{1,}\.[a-zA-Z]{2,3}$/;
	}
	else if(fieldType == "phone"){
		thisExp = /^[0-9\.\-\(\)\ ]{7,25}$/;
	}
	else if(fieldType == "text"){
		thisExp = /^[\.\,\#\?\!\%\$\&\(\)\:\;\"\'\@\/\\\s\w]{1,}$/;
	}
	else if(fieldType == "radio"){
		thisExp = /^[\w\d]{1,}$/;
	}
	else if(fieldType == "cc"){
		thisExp = /^[0-9\.\ ]{16,19}$/;
	}
	else if(fieldType == "select"){
		thisExp = /^[\w\d]{1,}$/;
	}
	
	var valid = false;
	if (required == "0" && thisValue == ""){ // true
		isValid = true;
	}
	else {
		isValid = thisExp.test(thisValue);
	}
	
	return isValid;
}

function validForm(thisFormName, thisArray, formDesc){
	var thisForm = eval(thisFormName);
	var validateMessage = "The " + formDesc + " form in not valid.\nYou must edit or complete the following fields:\n\n";
	var isFormValid = true;
	
	for(i = 0; i < thisArray.length; i++){
		var fieldID = thisArray[i][0];
		var fieldType = thisArray[i][1];
		var fieldRequired = thisArray[i][2];
		var fieldLongName = thisArray[i][3];
		
		var fieldValue = "";
		var fieldObj = eval(thisFormName + "." + fieldID);
		if (fieldType == "email" || fieldType == "phone" || fieldType == "text" || fieldType == "cc"){
			var fieldValue = fieldObj.value;
		}
		else if (fieldType == "select"){
			var tempIndex = fieldObj.selectedIndex;
			var fieldValue = fieldObj.options[tempIndex].value;
		}
		else if (fieldType == "radio"){
			for (var y=0; y < fieldObj.length; y++) {
				if (fieldObj[y].checked){
					var fieldValue = fieldObj[y].value
				}
			}
		}
		var isValid = validField(fieldType, fieldValue, fieldRequired);
		
		if (! isValid){
			isFormValid = false;
			validateMessage = validateMessage + " - " + fieldLongName + "\n";
		}
	}

	if (isFormValid){
		thisForm.submit();
	}
	else {
		alert (validateMessage);
	}
}