function Validate(frm)
{
	for (i=0; i < document[frm].elements.length; i++)
	{
		
		//DEFINING FORM OBJECT WITH ITS CORRESPONDING ELEMENTS
		var item = document[frm].elements[i];
		var flag=0;
		//alert("form name = "+frm);
		//DEFINING A VARIABLE TO GET THE FORM ELEMENTS WITH ID
		
		var itemspec=item.id;
		
		//alert(item.id);
		
		//FILTERING THE FIELD NAME USING SUBSTRING FUNCTION
		
		var alertMsg=item.id.substring((item.id.lastIndexOf("_") + 1),item.id.length);
		//alert("msg = "+alertMsg);
		var type=item.type;
										
			if(item.id.indexOf("req_")>=0)
			{
				
				switch (item.type)
				{
					case 'checkbox':
						if (item.type=="Prop_Addroom")
						{
							var chkbox=chkboxValidation();
							alert(chkbox);
							if(chkbox==false)
							{
								flag=1;
								return false;
							}
						}
						if (item.name=="TERMS")
						{
							if(document.forms[0].TERMS.checked==false)
							{
								alert("Please Agree with the Terms & Conditions");
								flag=1;
								return false;
							}
						}
						break;

					case 'radio':
						if (item.name=="Category")
						{
							var bol_radiobutton=RegistrationRadioValidation();
							if(bol_radiobutton==false)
							{
								flag=1;
								//alert(i);
								return false;
							}
						}
						if(item.name=="req_price")
						{
							if(document.forms[0].req_price[1].checked==true)
							{
								if(document.forms[0].Crores.value == "" && document.forms[0].lakhs.value == "")
								{
									alert("Please Select Price Value");
									flag=1;
									return false;
								}
							}
						}
						
						if(item.name=="Prop_price")
						{
							if(document.forms[0].Prop_price[1].checked==true)
							{
								if(document.forms[0].Crores.value == "" && document.forms[0].Lakhs.value == "" && document.forms[0].Thousands.value == "")
								{
									alert("Please Select Price Value");
									flag=1;
									return false;
								}
							}
						}
						break;
		
					
					case 'file':
					{
						if (item.value !="")
						{
							var textname = item.name;
							var imagename = eval(document[frm].elements[textname].value.length);
							if (imagename > 0 )
							{
								var CheckImage = CheckValidImage(frm,textname);
								if(CheckImage==1)
								{
									flag=1;
									return false;
									break;
								}
								else
								{
									flag=0;
									return true;
									break;
								}
							}
						}
					}
					break;
					
					//PASSWORD CONFIRMATION 
					case 'password':
						if(item.value=="")
						{
							var element = document.getElementById(itemspec);
							alert(innerHTML = "Please Enter "+alertMsg);
							item.focus();
							flag=1;
							return false;
						}
						if(!(item.value)=="")
						{
							if(item.name=="Password")
							{
								var checkField=check_mincharpassword(frm);
								if(checkField==false)
								return false;
							}
						}
						if(item.name=="Password")
						{ 
							if(!(item.value)=="")
							{
								var CheckDuplicate=CheckDuplicateUsernamePassword(frm);
								if(CheckDuplicate==false)
								{
									flag=1;
									return false;
								}
							}
						}
						if(item.name=="Confirm_pass")
						{ 
							if(!(item.value)=="")
							{ 
								var email=validepassword(frm);
								if(email==false)
								{
									flag=1;
									return false;
								}
							}
						}
						break;
					case 'text':
					//CHECKING FOR TEXTBOX VALUES
						var tch = /^[ ]*$/;
						if ((item.value=="") && (item.disabled == false) || ((tch.test(item.value))))
						{
							var element = document.getElementById(itemspec);
							alert(innerHTML = "Please Enter "+alertMsg);
							item.focus();
							flag=1;				
							return false;
						}
						else
						{
							if(item.id=="txt")
							{
								if(isNaN(item.value)==true)
								{
									item.focus();
									flag=1;
									return false;
								}
							}
				        }

						
						//EMAIL VALIDATION
						if(!(item.value)=="")
						{
							if((item.name=="EmailAddress" )||( item.name=="Prop_Cont_EmailID") ||( item.name=="Email")||( item.name=="to_email")||( item.name=="from_email") || ( item.name=="txtFrom"))
							{
								var FieldName=item.name;  
								var checkField=validate_email(frm,FieldName);
								if(checkField==false)
								{
									flag=1;
									return false;
								}
							}
						}
						
						//USERNAME VALIDATION
						if(!(item.value)=="")
						{
							if(item.name=="Username")
							{
								var checkField=check_mincharusername(frm);
								if(checkField==false)
								{
								flag=1;
									return false;
								}
							}
						}
						
						
						if(!(item.value)=="")
						{
							if(item.name=="Number")
							{
								var FieldName=item.name;
								var checkField=tel_length(frm,FieldName);
								if(checkField==false)
								{
									flag=1;
									return false;
								}
							}
						}
						
						if(!(item.value)=="")
						{
							if(item.name=="Mobile")
							{
								var FieldName=item.name;
								var checkField=cell_length(frm,FieldName);
								if(checkField==false)
								{
									flag=1;
									return false;
								}
							}
						}
	// Text Filed in Zero Function	Start				
						if(item.name=="Phone" || item.name=="LandLine" || item.name=="AreaCode" || item.name=="Prop_BuiltupArea" || item.name=="Prop_PlotArea" || item.name=="Prop_Total_Carparking" || item.name=="Prop_Zip" || item.name=="Prop_Rent" || item.name=="price" || item.name=="req_A_range" || item.name=="City_Code" || item.name=="Number" || item.name=="dir_AreaCode" || item.name=="dir_LandLine" || item.name=="dir_Zip" || item.name=="phone" || item.name=="Prop_Frontwidth")
						{ 
							if(!(item.value)=="")
							{ 
								var FieldName=item.name;
								var checkField=CheckPhoneSizeValue(frm,FieldName);
								if(checkField==false)
								{
									flag=1;
									return false;
								}
							}
						}
	// Text Filed in Zero Function	End		
				
					if(item.name=="Url")	
						{
						
							if(!(item.value)=="")
							{
								var Fieldname=item.name;
								var checkField=check_URL(frm,Fieldname);
								if(checkField==false)
								{
									flag=1;
									return false;
									break;
								}
								else 
								{
									flag=0;
									return true;
									break;
								}
							}
						}
						break;
					case 'select-one':
						
						if (!checkSelect(item))
						{ 
							var element = document.getElementById(itemspec);
							if(item.value == "")
							{
								alert(innerHTML = "Please Select "+alertMsg);
								item.focus();
								flag=1;
								return false;
							}
						}
						if(!(item.value)=="")
						{

							if(item.name=="Country")
							{
							
								var CountryName=item.value;
								var checkField=CheckStateValidation(frm,CountryName);

								if(checkField==false)
								{
									flag=1;
									return false;
								}
								else
								{
									flag=0;
								}
							}

						}
						if(!(item.value)=="")
						{

							if(item.name=="State")
							{
								var StateName=item.value;
								var checkField=CheckStateValidation(frm,StateName);

								if(checkField==false)
								{
									flag=1;
									return false;
								}
								else
								{
									flag=0;
								}
							}

						}
						break;
					case 'textarea':
						var tch = /^[ ]*$/;
						if(item.value==""  || ((tch.test(item.value))))
						{	
							var element = document.getElementById(itemspec);
							alert(innerHTML = "Please Enter "+alertMsg);
							item.focus();
							flag=1;	
									return false;							
						}
					break;
					//case 'UserType':
				}//end of switch
		 	}//INSIDE ELSE IF(OPTIONAL)
		//end of main else
	
		if (flag==1)
		{	
			return false;
			break;
		}	
	}
//document[frm].submit();
}



//FUNCTIONS FOR EMAIL VALIDATION
function validate_email(frm,name)
{
	if (emailvalidation(document[frm].elements[name].value)==false)
	{
		document[frm].elements[name].focus(); 
		alert('Invalid E-Mail Address');
		return false;
	}
}

function emailvalidation(i)
{
	var regexp = /^[a-zA-Z0-9_@.-]*$/;
	var val = i;
	var at="@";
	var dot=".";
	var pat=val.indexOf(at);
	var lval=val.length;
	var pdot=val.indexOf(dot);
	var secondat = val.indexOf(at,pat+1);
	var lastat = val.lastIndexOf(at);
	var afterat = val.substring(pat+1,pat+2);
	var afterdot = val.substring(pdot+1,pdot+2);
	var lastchar = val.substring(lval-1,lval);
	var dotafterat = val.indexOf(dot,pat+1);
	var pseconddot = val.indexOf(dot,pdot+1);
	var pthirddot = val.indexOf(dot,pseconddot+1);
	var afterseconddot = val.substring(pseconddot+1,pseconddot+2);
	var afterthirddot = val.substring(pthirddot+1,pthirddot+2);

	if (regexp.test(val) == false ||pat == -1 || pat == 0 || pat == lval-1 || pdot == -1 || pdot == 0 || pdot == lval-1 || secondat != -1 || lastat != pat || afterat == dot || afterat == "-" || afterat == "_" || afterdot == at || afterdot == "-" || afterdot == "_" || afterdot == dot || lastchar == dot || dotafterat == -1 || afterseconddot == at || afterseconddot == "-" || afterseconddot == "_" || afterseconddot == dot || afterthirddot == at || afterthirddot == "-"
	|| afterthirddot == "_" || afterthirddot == dot)
	{
		return false;
	}
	else
	{
		return true;
	}
}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
