// JavaScript Document
function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validateLogonName(logon_name)
{
	var iChars =" !@#$%^&*()+=[]\\\';,./{}|\":<>?";
	for (var i = 0; i < logon_name.value.length; i++)
	{
		if (iChars.indexOf(logon_name.value.charAt(i)) != -1) 
		{
  			alert ('Entered "'+ logon_name.value +'" is not valid.\nUsername can only contain Alphabets(A-Z,a-z), numbers(0-9), Hyphen(-) and  _(underscore).');
			logon_name.focus();
			return false;
		}
	}	
	return true;
}

function validRequired(formField,fieldLabel)
{
	var result = true;

	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function validRegistration(formField,fieldLabel)
{
	var result = true;
	
	str = formField.value;
	if(str.length != 5)
	{
		alert('Please enter all 5 characters displayed in "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	return result;
}	


function allDigits(str,fieldLabel)
{
	return inValidCharSet(str,"0123456789",fieldLabel);
}

function inValidCharSet(str,charset,fieldLabel)
{
					
	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
	{
		if (charset.indexOf(str.substr(i,1))<0)
		{
			alert('Please enter a number for the "' + fieldLabel +'" field.');
			return false;
		}
	}
	return true;

}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}
   
  return result;

}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value,10);
 		if (isNaN(num))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validDate(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var elems = formField.value.split("/");
 		
 		result = (elems.length == 3); // should be three components
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
  			var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter a date in the format MM-DD-YYYY for the "' + fieldLabel +'" field.');
			formField.focus();		
		}
	} 
	
	return result;
}

function lenPassword(formField,fieldLabel)
{
	var result = true;
	
	str = formField.value;
	if(str.length < 4)
	{
		alert('Password must contain at least 4 characters.');
		formField.focus();	
		result = false;
	}
	
	return result;
}

function MatchPasses(passwd,confirm_passwd)
{
	var result = true;
	
	if (passwd.value == confirm_passwd.value)
	{
		;
	}
	else
	{
		alert('Passwords Do Not Match!');
		passwd.focus();
		result = false;
	}
	
	return result;
}

function MatchEmail(email,confirmemail)
{
	var result = true;
	
	if (email.value == confirmemail.value)
	{
		;
	}
	else
	{
		alert('Emails Do Not Match!');
		email.focus();
		result = false;
	}
	
	return result;
}
	

function CheckRadio(element)
{
	var radiocounter;
	var isvalid=false;

	 for(radiocounter=0;radiocounter<element.length;radiocounter++)
	{
		isvalid = element[radiocounter].checked;
		if(isvalid)	break;
	}
	if (isvalid)	return true;
	else
	{			
		alert('Please tell us your gender!');
		return false;
	}		

}

function Dropdown(element)
{
	if (element.value==0)
	{
		alert('Please Select a Country!');
		return false;
	}
	return true;
}




function validateForm(theForm)
{
	// |--- Customize these calls for your form ---|
	// |--- Start --->
	if(!validateLogonName(theForm.logon_name))
		return false;
	
	if (!validRequired(theForm.logon_name,"Login Name"))
		return false;
	
	if (!validRequired(theForm.passwd,"Password"))
		return false;

	if (!validRequired(theForm.confirm_passwd,"Confirm Password"))
		return false;
	
	if(!MatchPasses(theForm.passwd,theForm.confirm_passwd))
		return false;
		
	if(!MatchEmail(theForm.email,theForm.confirmemail))
		return false;

	if (!validRequired(theForm.first_name,"First Name"))
		return false;

	if (!validRequired(theForm.last_name,"Last Name"))
		return false;
	if (!validRequired(theForm.tel_home,"Phone Number")) 
		return false;
		
	/*if (!allDigits(theForm.tel_home.value,"Phone Number"))
		return false;*/
	if (!validEmail(theForm.email,"e-Mail Address",true))
		return false;

		
	//if(!CheckRadio(theForm.sex))
		//return false;
		
	//if(!validDate(theForm.dateofbirth,"Date of Birth",true))
		//return false;

	if (!validRequired(theForm.official_address_1,"Address Line 1"))
		return false;

	if (!validRequired(theForm.official_address_city,"City"))
		return false;

	if (!validRequired(theForm.official_address_state,"State"))
		return false;

	if (!validRequired(theForm.official_address_area_code,"Postal Code"))
		return false;
		
	/*if (!allDigits(theForm.official_address_area_code.value,"Postal Code"))
		return false;*/
	
	if (!Dropdown(theForm.official_address_country))
		return false;
		
	if(!validRegistration(theForm.validate, "Verify Your Registratiohn"))
		return false;	
		
	if(!lenPassword(theForm.passwd,"Password"))
		return false;
	
		
	// <--- End ---|
	
	return true;
}