var forbiddenvalues = new Array('','First Name','Last Name','Email');
var submittedvalues = new Array();

function enableForm(){
	document.subscribeform.email.disabled = false;
	document.subscribeform.subscribe.disabled = false;
}

function arrayHasDuplicates( Arr ) {
	var i, j, n;
	n=Arr.length;
	for (i=0; i<n; i++) {
		for (j=i+1; j<n; j++) {
			if (Arr[i]==Arr[j]) {
				return true;
			}
		}
	}
	return false;
}

function validateEmail(email) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(email) == false) {
		return false;
	}
	return true;
}


function checkform() {
	for (i=0;i<fieldstocheck.length;i++) {
		if (eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].type") == "checkbox") {
			if (document.subscribeform.elements[fieldstocheck[i]].checked) {
			} else {
				alert("Please choose your "+fieldnames[i]);
				eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].focus()");
				return false;
			}
		} else {
			for (j=0;j<forbiddenvalues.length;j++) {
				if (eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].value") == forbiddenvalues[j]) {
					alert("Please enter your "+fieldnames[i]);
					eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].focus()");
					return false;
				}
			} 
		}

		//check email
		if(fieldstocheck[i]=="email") {
			if(!validateEmail(eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].value"))){
				alert('Invalid Email Address');
				return false;
			}
		}

		submittedvalues[i] = eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].value");
	}

	//check for duplicate value inputs
	if (arrayHasDuplicates(submittedvalues)){
		alert("Please enter different values for each field.")
		return false;
	}

	for (i=0;i<groupstocheck.length;i++) {
		if (!checkGroup(groupstocheck[i],groupnames[i])) {
			return false;
		}
	}

	return true;
	//document.subscribeform.action.value = "/lists/?p=subscribe&id=1";
}

var fieldstocheck = new Array();
var fieldnames = new Array();
function addFieldToCheck(value,name) {
	fieldstocheck[fieldstocheck.length] = value;
	fieldnames[fieldnames.length] = name;
}
var groupstocheck = new Array();
var groupnames = new Array();
function addGroupToCheck(value,name) {
	groupstocheck[groupstocheck.length] = value;
	groupnames[groupnames.length] = name;
}

function compareEmail()
{
	return (document.subscribeform.elements["email"].value == document.subscribeform.elements["emailconfirm"].value);
}
function checkGroup(name,value) {
	option = -1;
	for (i=0;i<document.subscribeform.elements[name].length;i++) {
		if (document.subscribeform.elements[name][i].checked) {
			option = i;
		}
	}
	if (option == -1) {
		alert ("Please enter your "+value);
		return false;
	}
	return true;
}
