function Validate(f,whichRadio) 
{
	var ary1 = new Array('UserName','Password','Email'); 
	var ary2 = new Array(f.username.value, f.password.value, f.email.value);
	var ary3 = new Array('username','password','email');
	
	for (i=0; i<ary2.length; i++)
	{
		var check1=IsEmpty(ary2[i]);	
		if (!check1)
		{
			alert("The field '"+ ary1[i]+ "' can not be empty." );
			return false;
		}
	}
	
	var flag=valid_name(ary2[0],ary1[0],ary3[0]);
	if (!flag) return false;
	
	var flag=valid_pwd(ary2[1],ary1[1],ary3[1]);
	if (!flag) return false;
	
	var flag=valid_email(ary2[2],ary1[2]);
	if (!flag) return false;
	
	var flag=valid_name_pwd(ary2[0],ary1[0],ary2[1],ary1[1]);
	if (!flag) return false;
	
	// for the radio buttons
	if(whichRadio == "cc") {document.data_form.method[0].checked=true;}
	if(whichRadio == "joincheck"){document.data_form.method[1].checked=true;}
	if(whichRadio == "join900"){document.data_form.method[2].checked=true;}
	if(whichRadio == "paypal"){document.data_form.method[3].checked=true;}
	if(whichRadio == "joinmail"){document.data_form.method[4].checked=true;}
	if(whichRadio == "dialer"){document.data_form.method[5].checked=true;}
	if(whichRadio == "check2"){document.data_form.method[6].checked=true;}

	return true;
}

function valid_pwd(val,desc,field_name) 
{
	re=/^[a-z0-9A-Z]{6,8}$/;
	if(re.test(val)) {
		return true;
	} else {
		alert("Invalid '"+ desc + "',\nShould contain only alphanumeric characters.\nMin 6, max 8"); 
		document.data_form.password.select();
		document.data_form.password.focus();
		return false;
	}
}
function valid_name(val,desc,field_name) 
{
	re=/^[a-z0-9]{6,8}$/;
	if(re.test(val)) 
	{
		return true;
	} 
	else 
	{
		alert("Invalid '"+ desc + "',\nShould contain only LOWERCASED alphanumeric characters.\nMin 6, max 8"); 
		document.data_form.username.select();
		document.data_form.username.focus();
		return false;
	}
}

function valid_email(val,desc)
{
	re=/^[0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,3}$/i;

	spaces = / /gi;
	val = val.replace(spaces, "");
	
	if(re.test(val)) 
	{
		return true;
	} 
	else 
	{
		alert("Invalid '"+ desc + "'.\n");
		document.data_form.email.select();
		document.data_form.email.focus();
		return false;
	}
}


function valid_name_pwd(val1,desc1,val2,desc2) 
{
	if(val1 == val2) 
	{
		alert("Invalid '"+ desc1 + " and " + desc2 + "' combination. \nUsername and Password can't be the same.\n");
		document.data_form.password.select();
		document.data_form.password.focus();
		return false;
	} 
	else 
	{
		return true;
	}
}


function IsEmpty(field) 
{
	if(field=='') 
	{
		return false;
	} 
	else 
	{ 
		return true;
	}
}
// LOW LEVEL FUNCTIONS
function enters()
{
	if(parent)
		{parent.mail=1;}

	return true;
}

function checkPassword(value) {
	regexp=/^[a-z0-9A-Z]{6,8}$/;
	if(regexp.test(value)) { return true;	}
	else { return false; }
}

function checkUsername(value) {
	regexp=/^[a-z0-9]{6,10}$/;
	if(regexp.test(value)) { return true;	}
	else { return false; }
}
	
function checkEmail(value) {
	regexp=/^[\-_0-9a-z][\-_.0-9a-z]*@[0-9a-z]([\-_.]?[0-9a-z])*\.[a-z]{2,3}$/i;
	spaces = / /gi;
	value = value.replace(spaces, "");
	
	if(regexp.test(value)) { return true;	}
	else { return false; }
}

function checkEmpty(value) {
	if(value == '' || value == ' ' || value == '  ') {	return false;	}
	else { return true;	}
}

function setFocus(fieldObject) {
	fieldObject.focus();
	if(fieldObject.value) { fieldObject.select(); }
}

function isSelected(fieldObject) {
	if (!fieldObject.options[fieldObject.selectedIndex].value) { return false; }
	else { return true;}
}

// CORE FUNCTION
var err_sent = "You already clicked on submit once.\nPlease wait until the transaction is processed.";
var err_empty = "Field cannot be empty."; 
var err_select = "Please make a selection."; 

var checkFunctions = new Array();
var formSubmited = false;

function submitForm(validate) {
	// Display error if form already submited.
	//if (formSubmited) { alert (err_sent); return false; }

	// Validate Other check scripts
	if (validate) {
		for (index = 0; index < checkFunctions.length; index++){
			if (!eval(checkFunctions[index] + "(document.data_form)")) { return false; }
		}
	}
	formSubmited = true;
	document.data_form.submit(); // Comment this line for testing.
	//alert ("Form would have been submited"); // Un-comment this line for testing.

}


checkFunctions[checkFunctions.length] = "checkPersonal_info";

function checkPersonal_info(thisForm) {
	var err_zip = "You have entered an invalid zip.";
	var err_postal_code = "You must enter a valid zip code in the fieldZip field.";

	var foundError = false;

	return true;
}

checkFunctions[checkFunctions.length] = "checkMembership_type";

function checkMembership_type(thisForm) {

	var err_terms = "You must read & agree to the terms & conditions To go on.\If you have read them click here to continue on the box. ";	
	var foundError = false;

	// Terms and conditions
	//if(!foundError && !thisForm.checkbox_terms.checked) { alert (err_terms); foundError = true; }
	//if (foundError) { setFocus(thisForm.checkbox_terms); return false;}
	
	return true;
}
