
function fnSubscribe() {
	var submitForm = document.getElementById("submitForm");
	
	// Reset the errors
	document.getElementById('email1error').innerHTML = '';
	document.getElementById('email2error').innerHTML = '';
	document.getElementById('password1error').innerHTML = '';
	document.getElementById('teamserror').innerHTML = '';

	// Check the email address for validity.
	if (!validEmail(submitForm.email1.value)) {
		document.getElementById('email1error').innerHTML = 'Invalid email address.'
		return false;
	}
	
	if (submitForm.email1.value!=submitForm.email2.value) {
		document.getElementById('email2error').innerHTML = 'Email addresses do not match.'
		return false;
	}
	
	if (!validPassword(submitForm.email1.value, submitForm.password1.value, submitForm.password2.value)) {
		return false;
	}
	
	if (!validTeams(submitForm.selTeam)) {
		document.getElementById('teamserror').innerHTML = "You must select at least on favorite team!";
		return false;
	}
	
	// Now everything is valid so set the submit form variables.
	submitForm.hEmail.value = submitForm.email1.value;
	submitForm.hResponse.value = hex_md5(submitForm.password1.value);
	submitForm.hFirstname.value = submitForm.firstname.value;
	submitForm.hLastname.value = submitForm.lastname.value;
	submitForm.hTeams.value = outputSelected(submitForm.selTeam);
	submitForm.submit();
}

function fnUpdate() {
	var submitForm = document.getElementById("submitForm");

	if (!validTeams(submitForm.selTeam)) {
		document.getElementById('teamserror').innerHTML = "You must select at least on favorite team!";
		return false;
	}
	
	if (!validPassword(submitForm.hEmail.value, submitForm.password1.value, submitForm.password2.value)) {
		return false;
	}
	
	// Now everything is valid so set the submit form variables.
	submitForm.hFirstname.value = submitForm.firstname.value;
	submitForm.hLastname.value = submitForm.lastname.value;
	submitForm.hTeams.value = outputSelected(submitForm.selTeam);
	submitForm.hResponse.value = hex_md5(submitForm.password1.value);
	submitForm.hPostback.value = true;
	submitForm.submit();	
}

function fnCancel() {
	if (navigator.appName == "Microsoft Internet Explorer")
		window.navigate('./alert.php');
	else
		window.location='./alert.php';
}

function validTeams(sel) {
	var index =0;
	for (var intLoop = 0; intLoop < sel.length; intLoop++) {
		if (sel[intLoop].selected) {
			return true;
		}
	}
	return false;
}

function validEmail(address) {
	var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
	return String(address).search (filter) != -1;		
}

function validPassword(uname, pwd1, pwd2) { 
	re = /^\w+$/;
	if (pwd1 == "") {
		document.getElementById('password1error').innerHTML = 'The password cannot be blank.'
		return false;
	}
	if(pwd1 == pwd2) {
		if(pwd1.length < 5) { 
			document.getElementById('password1error').innerHTML = "The password must contain at least five characters!";
			return false; 
		} 
		if(pwd1 == uname) { 
			document.getElementById('password1error').innerHTML = "The password must be different from your email address!";
			return false; 
		} 
	} else { 
		document.getElementById('password1error').innerHTML = 'The passwords supplied either do not match or are blank.'
		return false;
	} 
	return true; 
}

function selectTeams() {	
	var submitForm = document.getElementById("submitForm");		
	if (submitForm.chkAllTeams.checked) {
		var index =0;
		for (var intLoop = 0; intLoop < submitForm.selTeam.length; intLoop++) {
			submitForm.selTeam[intLoop].selected = true;
		}
		
	} else {
		var index =0;
		for (var intLoop = 0; intLoop < submitForm.selTeam.length; intLoop++) {
			if (submitForm.selTeam[intLoop].selected) {
				submitForm.selTeam[intLoop].selected = false;
			}
		}
	}
}

function getSelected(opt) {
	var selected = new Array();
	var index = 0;
	for (var intLoop = 0; intLoop < opt.length; intLoop++) {
		if (opt[intLoop].selected) {
			index = selected.length;
			selected[index] = new Object;
			selected[index].value = opt[intLoop].value;
			selected[index].index = intLoop;
		}
	}
	return selected;
}

function outputSelected(opt) {
	var sel = getSelected(opt);
	var strSel = "";
	for (var item in sel) {   
		if (IsNumeric(item)) {strSel += sel[item].value + ','};
	}
	return strSel;
}

//  check for valid numeric strings	
function IsNumeric(strString) {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++) {
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}