//Email Validation
function isemail(uemail)
{
	
	var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if(!regex.test(uemail))
 	{
 		return false;
    }
	
	return true;
	
}


//Number Validation
function isnumber(uvalue)
{
	var regex = /^[0-9]*$/;
	
	if(!regex.test(uvalue))
 	{
 		return false;
    }
	
	return true;
}

//About Partner and Profile Description Character, Brakets, Dot and comma Validation
function isdescripvalid(uvalue)
{
	var regex = /^\s*[a-zA-Z,.()\s]+\s*$/;
	
	if(!regex.test(uvalue))
 	{
 		return false;
    }
	
	return true;
}

  /*	//Qualification Detail, Occupation and Father's Occupation Character, Number, Brakets, Dot and comma Validation
	function isqali(uvalue)
	{
		var regex =  /^\s*[a-zA-Z0-9,.()\s]+\s*$/;
		
		if(!regex.test(uvalue))
		{
			return false;
		}
		
		return true;
	}
	
	//Hobbies allow Characters, Brakets, Dot and comma Validation
	function ishobbyvalid(uvalue)
	{
		var regex = /^\s*[a-zA-Z,.()\s]+\s*$/;
		
		if(!regex.test(uvalue))
		{
			return false;
		}
		
		return true;
	}  */

//Maximum characters Validation
function ismaxchar(uvalue,num)
{

	if(uvalue.length > num)
 	{
		return false;
    }
	
	return true;
}

//Minimum Number Validation
function isminnumber(uvalue,num)
{

	if(uvalue.length < num)
 	{
		return false;
    }
	
	return true;
}

//Username Char,Digits and "_" only
function isusernamevalid(uvalue)
{
	var regex = /^[A-Za-z0-9_]+$/;
	
	if(!regex.test(uvalue))
 	{
 		return false;
    }
	
	return true;
}

//Blank Value Validation
function isblank(uvalue)
{
	if(uvalue == "")
 	{
 		return false;
    }
	
	return true;
}


//Character Validation
function ischaronly(uvalue)
{
	var regex = /^[a-zA-Z\s]+$/;
	
	if(!regex.test(uvalue))
 	{
 		return false;
    }
	
	return true;
}

//Drop Down Selected Value Validation
function isselected(uvalue)
{
	if(uvalue == "0" || uvalue == "")
 	{
 		return false;
    }
	
	return true;
}


//Character and digits Validation
function ischardigitonly(uvalue)
{
	var regex = /^\s*[a-zA-Z0-9\s]+\s*$/;
	
	if(!regex.test(uvalue))
 	{
 		return false;
    }
	
	return true;
}


function SetMiddleFocus(){
window.scrollTo(0,400);
return true;
}

//User Form.

function validateuser(formName)
{  
		var flag=true;
		var msg='Please fill these fields: ';
		var selmsg ='';
		var uval = '';
		var fr = "";
		if(formName)
			fr = formName;
		else
			fr =document.userform;		
		
		//First Name
		if(!isblank(fr.name.value))
		{
				msg+="First name ";
				flag=false;
		}
		else
		{
			if(!isdescripvalid(fr.name.value))
			{
				uval+="<br>Invalid entry in first name.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.name.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in first name.&nbsp;";
				flag=false;
			}
		}
		
		//Last Name
		if(!isblank(fr.lname.value))
		{
				msg+="Last name ";
				flag=false;
		}
		else
		{
			if(!isdescripvalid(fr.lname.value))
			{
				uval+="<br>Invalid entry in last name.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.lname.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in last name.&nbsp;";
				flag=false;
			}
		}
		
		//User Name
		if(fr.username && !isblank(fr.username.value))
		{
				msg+="Username ";
				flag=false;
		}
		else if(fr.username)
		{
			if(!isusernamevalid(fr.username.value))
			{
				uval+="<br>Invalid username entry.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.username.value,4))
			{
				uval+="<br>Minimum 4 characters allowed in username.&nbsp;";
				flag=false;
			}
			else
			{
				if((document.getElementById('txtHint').innerHTML)!="Available")
				{
					uval+="<br>Username not Available. &nbsp;";
					flag=false;
				 }  	
			}
		
		}
		
		//Password
		if(fr.upassword && !isblank(fr.upassword.value))
		{
				msg+="Password ";
				flag=false;
		}
		else if(fr.upassword)
		{
			if(!isminnumber(fr.upassword.value,4))
			{
				uval+="<br>Minimum 4 characters allowed in password.&nbsp;";
				flag=false;
			} else if(!ischardigitonly(fr.upassword.value))
			{
				uval+="<br>Invalid password entry.&nbsp;";
				flag=false;
			}

			//Confirm Password
			if(!isblank(fr.cpassword.value))
			{
				msg+="Confirm password ";
				flag=false;
			}
			else
			{
				if(fr.upassword.value != fr.cpassword.value)
				{
					uval+="<br>Password and confirm password doesn't match.&nbsp;";
					flag=false;
				}
			}
		}//else
		
		//month of birth
		if(!isselected(fr.month.value))
		{
				msg += "Month of birth ";
				flag=false;
		}
		
		//date of birth
		if(!isselected(fr.date.value))
		{
				msg += "Date of birth ";
				flag=false;
		}
		
		//year of birth
		if(!isselected(fr.year.value))
		{
				msg += "Year of birth ";
				flag=false;
		}

		// Marital Status
		if(!isselected(fr.mstatus.value))
		{
				msg += "Marital Status ";
				flag=false;
		}
		
		//Caste
		if(!isselected(fr.ddl_caste.value))
		{
				msg += "Caste ";
				flag=false;
		}

		//Self Gotra
		if(!isselected(fr.ddl_gotra_self.value))
		{
				msg += "Self gotra ";
				flag=false;
		}
		
		if(isselected(fr.ddl_gotra_self.value=="other"))
		{
			if(isblank(fr.text_gotra_self.value))
			{
				if(!isdescripvalid(fr.text_gotra_self.value))
				{
					uval+="<br>Invalid Self Gotra entry.&nbsp;";
					flag=false;
				} else if(!isminnumber(fr.text_gotra_self.value,3))
				{
					uval+="<br>Minimum 3 characters allowed in Self Gotra.&nbsp;";
					flag=false;
				}			
			}
			else 
				{
				uval+="Self Gotra &nbsp;";
				}
		}
		
		//Mama Gotra
		if(!isselected(fr.ddl_gotra_mama.value))
		{
				msg += "Mama gotra ";
				flag=false;
		}
		if(isselected(fr.ddl_gotra_mama.value=="other"))
		{
			if(isblank(fr.text_gotra_mama.value))
			{
				if(!isdescripvalid(fr.text_gotra_mama.value))
				{
					uval+="<br>Invalid Mama Gotra entry.&nbsp;";
					flag=false;
				} else if(!isminnumber(fr.text_gotra_mama.value,3))
				{
					uval+="<br>Minimum 3 characters allowed in Mama Gotra.&nbsp;";
					flag=false;
				}
			} 
			else 
				{
				uval+="Mama Gotra &nbsp;";
				}		
		}

		//Address maximum characters
		if(!ismaxchar(fr.address_line1.value,120))
		{
				uval+="<br>Maximum 120 characters allowed in Address.&nbsp;";
				flag=false;
		}

		//Country
		if(!isselected(fr.countrylivingin.value))
		{
				msg += "Country ";
				flag=false;
		}
		
		//State
		if(!isselected(fr.rstate.value))
		{
				msg += "State ";
				flag=false;
		}
		
		//Height
		if(!isselected(fr.height.value))
		{
				msg += "Height ";
				flag=false;
		}
				
		//rcity
		if(!isblank(fr.rcity.value))
		{
				msg+="City ";
				flag=false;
		}
		else
		{
			if(!isdescripvalid(fr.rcity.value))
			{
				uval+="<br>Invalid city entry.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.rcity.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in city.&nbsp;";
				flag=false;
			}

		}
		
		//mobile number
		if(!isblank(fr.mobile.value))
		{
				msg+="Mobile ";
				flag=false;
		}
		else
		{
			if(!isnumber(fr.mobile.value))
			{
				uval+="<br>Invalid entry in mobile number.&nbsp;";
				flag=false;
			} else if (!isminnumber(fr.mobile.value,10))
			{
				uval+="<br>Minimum 10 characters allowed in mobile.&nbsp;";
				flag=false;
			}
			
		}
		
		//areacode entry
		if(isblank(fr.areacode.value))
		{
			if(!isnumber(fr.areacode.value))
			{
				uval+="<br>Invalid entry in area code.&nbsp;";
				flag=false;
			} else if (!isminnumber(fr.areacode.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in area code.&nbsp;";
				flag=false;
			}
		}
		
		//phone entry
		if(isblank(fr.telephonenumber.value))
		{
			if(!isnumber(fr.telephonenumber.value))
			{
				uval+="<br>Invalid entry in telephone number.&nbsp;";
				flag=false;
			} else if (!isminnumber(fr.telephonenumber.value,6))
			{
				uval+="<br>Minimum 6 characters allowed in telephone.&nbsp;";
				flag=false;
			}

		}
		
		
		//email
		if(!isblank(fr.email.value))
		{
				msg+="Email &nbsp;";
				flag=false;
		}
		else
		{
			if(!isemail(fr.email.value))
			{
				uval+="<br>Invalid email format.&nbsp;";
				flag=false;
			}
			else
			{
				if((document.getElementById('txtHint2').innerHTML)!="Available")
				{
					uval+="<br>Invalid email. &nbsp;";
					flag=false;
				}  	
			}
		}
		
		//Verification Code
		if(fr.number && !isblank(fr.number.value))
		{
				msg+="Verification Code &nbsp;";
				flag=false;
		}
		
		//brother married no's
		if(!isnumber(fr.mbrothers.value))
		{
			uval+="<br>Invalid entry in married brothers count.&nbsp;";
			flag=false;
		}
		
		//brother unmarried no's
		if(!isnumber(fr.umbrothers.value))
		{
			uval+="<br>Invalid entry in unmarried brothers count.&nbsp;";
			flag=false;
		}
		
		//sister married no's
		if(!isnumber(fr.msister.value))
		{
			uval+="<br>Invalid entry in married sister's count.&nbsp;";
			flag=false;
		}
		
		//sister unmarried no's
		if(!isnumber(fr.umsister.value))
		{
			uval+="<br>Invalid entry in unmarried sister's count.&nbsp;";
			flag=false;
		}
		
		if(isblank(fr.fathername.value))
		{
			if(!isdescripvalid(fr.fathername.value))
			{
				uval+="<br>Invalid father name entry.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.fathername.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in father name.&nbsp;";
				flag=false;
			}
		}
				
		if(isblank(fr.mothername.value))
		{
			if(!isdescripvalid(fr.mothername.value))
			{
				uval+="<br>Invalid mother name entry.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.mothername.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in mother name.&nbsp;";
				flag=false;
			}
		}
		
	/*	//Hobbies allow Characters, Brakets, Dot and comma only
		if(isblank(fr.hobbies.value))
		{
			if(!ishobbyvalid(fr.hobbies.value))
			{
				uval+="<br>Invalid entry in hobbies.&nbsp;";
				flag=false;
			} else if(!ismaxchar(fr.hobbies.value,150))
			{
					uval+="<br>Maximum 150 characters allowed in hobbies.&nbsp;";
					flag=false;
			}
		}  */
		
		//About Partner allow Characters, Brakets, Dot and comma only
		if(isblank(fr.abtpartner.value))
		{
			if(!isdescripvalid(fr.abtpartner.value))
			{
				uval+="<br>Invalid entry in about partner.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.abtpartner.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in about partner.&nbsp;";
				flag=false;
			}
		}

		//Profile description allow Characters, Brakets, Dot and comma only
		if(isblank(fr.comments.value))
		{
			if(!isdescripvalid(fr.comments.value))
			{
				uval+="<br>Invalid entry in profile description..&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.comments.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in profile description.&nbsp;";
				flag=false;
			}
		}
	
		//birth place
		if(isblank(fr.birthplace.value))
		{
			if(!isdescripvalid(fr.birthplace.value))
			{
				uval+="<br>Invalid birthplace entry.&nbsp;";
				flag=false;
			} else if(!isminnumber(fr.birthplace.value,3))
			{
				uval+="<br>Minimum 3 characters allowed in birth place.&nbsp;";
				flag=false;
			}
		}
				
	/*	//Qualification Detail
		if(isblank(fr.ext_quali.value))
		{
			if(!isqali(fr.ext_quali.value))
			{
				uval+="<br>Invalid entry in qualification details.&nbsp;";
				flag=false;
			}
		}
				
		//Occupation Details
		if(isblank(fr.occudetail.value))
		{
			if(!isqali(fr.occudetail.value))
			{
				uval+="<br>Invalid entry in occupation details.&nbsp;";
				flag=false;
			} 
		}
		
		//Father Occupation Details
		if(isblank(fr.f_occup.value))
		{
			if(!isqali(fr.f_occup.value))
			{
				uval+="<br>Invalid entry in father occupation details.&nbsp;";
				flag=false;
			} 
		}	*/
		
		if(flag==false)
		{
			var tmsg = msg + selmsg + uval;
			
			document.getElementById('cuerr').innerHTML = tmsg;
			//document.getElementById('cuerr').focus();
			SetMiddleFocus();
			return flag;
		}
		else
		{
			//fr.cuerr.innerHTML = "";
			document.getElementById('cuerr').innerHTML = "";
			SetMiddleFocus();
			return flag;
		}
}

//End of User form

function validatelogin()
{
	alert ("hello");
		var flag=true;
		var msg='Please fill these fields: ';
		var selmsg ='';
		var uval = '';
		var fr = document.loginform;
		
		//First Name
		if(!isblank(fr.username.value))
		{
				msg+="username ";
				flag=false;
		}
		
		//First Name
		if(!isblank(fr.password.value))
		{
				msg+="password ";
				flag=false;
		}
		
		if(flag==false)
		{
			var tmsg = msg + selmsg + uval;
			alert(tmsg);
			return flag;
		}
		else
		{
			return flag;
		}		
}
