
var continueValidation=true;
function showElement(id) {
	if (document.getElementById(id)==null||document.getElementById(id)=="undefined") return;
    visibility=document.getElementById(id).style.visibility;
	if(visibility=="hidden"){
	    document.getElementById(id).style.visibility = "visible";
	}else{ 
		hideElement(id);
	}
}

function hideElement(id) {
	if (document.getElementById(id)==null||document.getElementById(id)=="undefined") return;
	document.getElementById(id).style.visibility = "hidden";
}

function submitForm(){
	if(document.frmSignup.submitForm.value!="Y"){
		showElement("inProgress");
		document.getElementById("inProgress").style.width="185px";
		document.getElementById("inProgress").style.height="50px";
		document.frmSignup.submitForm.value="Y";
		document.frmSignup.action="signup.asp"; 
		
		document.frmSignup.submit();
	}else{
		hideElement("inProgress");
		showDialog("Success","This has already been submitted.");
	}
}

function submitFormSignUp(){
	if(validateSignUp()){
		if(document.frmSignup.submitForm.value!="Y"){
			showElement("inProgress");
			document.getElementById("inProgress").style.width="185px";
			document.getElementById("inProgress").style.height="50px";
			document.frmSignup.submitForm.value="Y";
			document.frmSignup.action="signup.asp"; 
			
			document.frmSignup.submit();
		}else{
			hideElement("inProgress");
			showDialog("Success","This has already been submitted.");
		}
	}
}

function editForm(){
	if(validateEdit()){
		if(document.frmSignup.submitForm.value!="Y"){
			showElement("inProgress");
			document.getElementById("inProgress").style.width="185px";
			document.getElementById("inProgress").style.height="50px";
			document.frmSignup.submitForm.value="Y";
			document.frmSignup.action="editProfile.asp"; 
			document.frmSignup.submit();
		}else{
			hideElement("inProgress");
			showDialog("Success","This has already been submitted.");
		}
	}
}

function validateSignUp(){
	hideDialog();
	return validate(0);
	
}

function validateEdit(){
	hideDialog();
	return validate(1);
	
}

function validate(val){
	var errMessage = "";
	var flag=true;
	var flag1=true;
	var unfillederror="";
	//First Name Check
	if(!continueValidation)
		return false;
	if(flag)
	{
		flag=cheakValue(document.getElementById("req_first_name"));
		unfillederror="First Name";
		
	}
	if(flag && flag1)
	{
		if(!checkFirstName(document.getElementById("req_first_name"))){
				errMessage+=" - first name<br>";
				var obj=document.getElementById("req_first_name");
				flag1=false;
				obj.focus();
				//obj.value = "";
				return false;
		}
	}
	
	//Last Name Check
	if(flag && flag1 )
	{
		flag=cheakValue(document.getElementById("req_last_name"));
		unfillederror="Last Name";
	}
	if(flag && flag1)
	{
		if(!checkLastName(document.getElementById("req_last_name"))){
				errMessage+=" - last name<br>";
				var obj=document.getElementById("req_last_name");
				flag1=false;
				obj.focus();
				//obj.value = "";
				return false;
		}
	}
	
	//Phone Number Check
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_phone_number"));
		unfillederror="Phone Number";
	}
	if(flag && flag1)
	{
		if(!checkPhone(document.getElementById("req_phone_number"))){
				errMessage+=" - phone number<br>";
				var obj=document.getElementById("req_phone_number");
				flag1=false;
				obj.focus();
				//obj.value = "";
				return false;
		}
	}
	
	
	//Email Address Check
	if(flag && flag1)
		{
			flag=cheakValue(document.getElementById("req_email_address"));
			unfillederror="Email Address";
		}
		if(flag && flag1)
		{
			if(!checkEmail(document.getElementById("req_email_address"))){
					errMessage+=" - Email Addresss<br>";
					var obj=document.getElementById("req_email_address");
					flag1=false;
					obj.focus();
					//obj.value = "";
					return false;
			}
	}
	
	
	
	//Address Check
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_address"));
		unfillederror="Address";
	}
	if(flag && flag1)
	{
		if(!checkAddress(document.getElementById("req_address"))){
				errMessage+=" - address<br>";
				var obj=document.getElementById("req_address");
					flag1=false;
					obj.focus();
					//obj.value = "";
					return false;
		}
	}
	
	//City Check
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_city"));
		unfillederror="City";
	}
	if(flag && flag1)
	{
		if(!checkCity(document.getElementById("req_city"))){
				errMessage+=" - city<br>";
				var obj=document.getElementById("req_city");
					flag1=false;
					obj.focus();
					//obj.value = "";
					return false;
		}
	}
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_Prov"));
		unfillederror="Prov";
	}
	//Postal Code Check
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_Postal_Code"));
		unfillederror="Postal Code";
	}
	if(flag && flag1)
	{
		if(!checkPostalCode(document.getElementById("req_Postal_Code"))){
				errMessage+=" - postal code<br>";
				var obj=document.getElementById("req_Postal_Code");
					flag1=false;
					obj.focus();
					//obj.value = "";
					return false;
		}
	}
	
	//Air Miles Check
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_air_miles_number"));
		unfillederror="Air Miles";
	}
	if(flag && flag1)
	{
		if(val==0){
				
			if(!checkAirmiles(document.getElementById("req_air_miles_number"))){
				errMessage+=" - air miles number<br>";
				var obj=document.getElementById("req_air_miles_number");
					flag1=false;
					obj.focus();
					//obj.value = "";
					return false;
			}
		}
	}
	
	//Club Card Check
	
	if(flag && flag1)
	{
		flag=cheakValue(document.getElementById("req_Club_Card_Number"));
		unfillederror="Club Card";
	}
	if(flag && flag1)
	{
		if(!checkClubCard(document.getElementById("req_Club_Card_Number"))){
				errMessage+=" - club card number<br>";
				var obj=document.getElementById("req_Club_Card_Number");
					flag1=false;
					obj.focus();
					//obj.value = "";
					return false;
		}
	}
	
	

		if(!flag1)
		{
			errMessage = "Invalid characters were detected in the following fields:<br>" + errMessage + "<br> Please correct the field(s) and try again.";
			showDialog("error", errMessage);
			return false;
		
		}
		if(!flag)
		{
			errMessage = "All Fields are Mandatory. Please fill following field. <br> -- "+unfillederror;
			showDialog("error", errMessage);
			return false;
		}
		return true;
	
}

function isNumeric(obj) {
	var string = obj.value;
    for (var i=0, valid="1234567890"; i<string.length; i++){
       if (valid.indexOf(string.charAt(i)) == -1){
	   		return false;
	   }
	}
    return true;
}

function isNumericWSpace(obj) {
	var string = obj.value;
    for (var i=0, valid="1234567890 "; i<string.length; i++){
       if (valid.indexOf(string.charAt(i)) == -1){
	   		return false;
	   }
	}
    return true;
}

function checkNumeric(obj) {
	if(isNumeric(obj)){
		return true;
	}else{
		showDialog("Warning","This field may only contain numeric values. Please try again.");
		
	   	return false;
	}
}

function isValidName(obj) {
	var string = obj.value;
    for (var i=0, valid="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-' ."; i<string.length; i++)
       if (valid.indexOf(string.charAt(i)) == -1){
	   		return false;
	   }
    return true;
}

function isValidAddress(obj) {
	var string = obj.value;
    for (var i=0, valid="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-' .#1234567890"; i<string.length; i++)
       if (valid.indexOf(string.charAt(i)) == -1){
	   		return false;
	   }
    return true;
}

function checkAddress(obj) {
	hideDialog();
	if(isValidAddress(obj)){
		return true;
	}else{
		showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- Address");
	   	showDialog("Warning","The address may only contain the following characters: .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-'#1234567890&lt;space&gt;.");
	   	return false;
	}
}

function checkFirstName(obj) {
	hideDialog();
	if(isValidName(obj)){
		return true;
	}else{
	   	showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- First Name");
	   	showDialog("Warning","The first name may only contain the following characters: .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-'&lt;space&gt;.");

	   	return false;
	}
}

function checkCity(obj) {
	hideDialog();
	if(isValidName(obj)){
		return true;
	}else{
	   	showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- City");
	   	showDialog("Warning","The city may only contain the following characters: .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-'&lt;space&gt;. ");
	   	return false;
	}
}

function checkLastName(obj) {
	hideDialog();
	if(isValidName(obj)){
		return true;
	}else{
	   	showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- Last Name");
	   	showDialog("Warning","The last name may only contain the following characters: .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-'&lt;space&gt;");
	   	return false;
	}
}

function isValidPhone(obj){
   var string = obj.value;
   if(string.search(/\d{3}\-\d{3}\-\d{4}/)==-1){
      return false;
   }
   return true;
}

function checkPhone(obj) {
	hideDialog();
	if(isValidPhone(obj)){
		return true;
	}else{
	showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- Phone Number");
      	showDialog("Warning","Enter a phone number with the format xxx-xxx-xxxx.");
      return false;
	}
}

function isValidPostalCode(obj) {
   var string = obj.value;
   var postal = /(^\D{1}\d{1}\D{1}\s\d{1}\D{1}\d{1}$)|(^\D{1}\d{1}\D{1}\d{1}\D{1}\d{1}$)/;
   if(!postal.test(string)){
		return false;
   }
   return true;
}

function checkPostalCode(obj) {
	hideDialog();
	if(isValidPostalCode(obj)){
		return true;
	}else{
		showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- Postal Code");
   		showDialog("Warning","Enter a postal code with the format K1A 0B1.");
		return false;
	}
}

function checkEmail(obj)
{
		hideDialog();
	   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	   var address = obj.value;
	   if(reg.test(address)) 
	   {
	      return true;
	   }
	   else
	   {
	   	showDialog("error","Error while filling the following field<br>&nbsp;&nbsp;&nbsp;&nbsp;- Email Address");
	   	showDialog("Warning","Enter valid email address with proper format");
		return false;
	   }

}

function checkAirmiles(obj) {
	hideDialog();
	if(isNumeric(obj) || isNumericWSpace(obj)){
		if(((obj.value).length==11))
		{
			if(parseInt(obj.value)==0)
			{
				showDialog("error","Error while filling the following fields<br>&nbsp;&nbsp;&nbsp;&nbsp;- AIR MILES Collector Number");
				showDialog("Warning","The Air Miles field is invalid.");
				return false;
			}
			else
				return true;
		}
			
		else
		{
			showDialog("error","Error while filling the following fields<br>&nbsp;&nbsp;&nbsp;&nbsp;- AIR MILES Collector Number");
			showDialog("Warning","The Air Miles field is invalid.");
			return false;
		}
	}else{
		showDialog("error","Error while filling the following fields<br>&nbsp;&nbsp;&nbsp;&nbsp;- AIR MILES Collector Number");
		showDialog("Warning","The Air Miles field may only contain numeric values with no spaces.");
	   	return false;
	}
}
function checkClubCard(obj) {
	hideDialog();
	if((isNumeric(obj) || isNumericWSpace(obj)))
	{
		
		
		if(((obj.value).length==11))
		{
			if(parseInt(obj.value)==0)
			{
				showDialog("error","Error while filling the following fields<br>&nbsp;&nbsp;&nbsp;&nbsp;- Club Card Number");
				showDialog("Warning","Club Card Number is invalid.");
	   			return false;
			}
			else
			{
				
				return true;
			}
		}
		else
		{
			showDialog("error","Error while filling the following fields<br>&nbsp;&nbsp;&nbsp;&nbsp;- Club Card Number");
			showDialog("Warning","Club Card Number is invalid.");
	   		return false;
		}
	}else{
		showDialog("error","Error while filling the following fields<br>&nbsp;&nbsp;&nbsp;&nbsp;- Club Card Number");
		showDialog("Warning","The Club Card Number field may only contain numeric values with no spaces.");
	   	return false;
	}
}
function showDialog(var1, var2)
{
	
	if(var1=="error")
	{
		var errDiv=document.getElementById(var1);
		errDiv.innerHTML="<div width='534px' class='result-msg'><span align=center><img src='images/cross.gif' />&nbsp;&nbsp; "+var2+"</span></DIV>";
		continueValidation=false;
	}
	if(var1=="Warning")
	{
		var errDiv1=document.getElementById(var1);
		errDiv1.innerHTML="<div width='534px'class='hint-msg-green'><span align=center>Hint: "+var2+"</span></DIV>";
		continueValidation=false;
	}
	if(var1=="Success")
	{
		continueValidation=true;
		var errDiv=document.getElementById("error");
		errDiv.innerHTML="";
		var errDiv1=document.getElementById("Warning");
		errDiv1.innerHTML=""
		errDiv1.innerHTML="<div width='534px' class='result-msg-green' width='534px'><span align=center>"+var2+"</span></DIV>";
		
	}
	document.getElementById("errorhead").style.top=signupDivHeight;
	document.getElementById("errorhead").style.left=10+"px";
	document.getElementById("errorhead").style.display="block";
	
	

}
function hideDialog()
{
	var errDiv=document.getElementById("error");
	errDiv.innerHTML="";
	var errDiv1=document.getElementById("Warning");
	errDiv1.innerHTML="";
	document.getElementById("errorhead").style.display="none";
	continueValidation=true;
}

function cheakValue(obj)
{
	if(eval(obj).value=="")
		return false;
	else
		return true;
}