// JavaScript Document

  var errorMsg = '';
 
  function validateRegisterationForm(form)
  {
   check_input('name',3,15,'Name');
   check_login_name('username',7,20,'Login Name');
   check_email('email');
   check_passwords('password','password2'); 
   check_phonenumber('telephone');
   check_field('address',20,500,'Address');
   
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }    
  }
  
  function validateUserProfileForm(form)
  {
   
   check_input('name',3,15,'Name');
   check_email('email');
   check_passwords_same('password','password2'); 
   check_phonenumber('telephone');
   check_field('address',20,500,'Address');
   
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }    
  }

  function check_passwords_same(password,confirm_password)
  {
    var password = document.getElementById(password).value;
    var confirm_password = document.getElementById(confirm_password).value;
    
    if(password != confirm_password)
      errorMsg += "Passwords should be the same. \n";
  }
    
  function validateContactForm(form)
  {
    check_email('contact_email');
    
    check_field('contact_text',20,400,'Message');
    
    if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }    
  }
  
  function validateRequestForm(form)
  {
    check_field('message',20,400,'Message');
    check_checkbox('messagetype[]',form.name);
  
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }
  }
  
  function validateTestimonialsForm(form)
  {
    check_field('text',30,500,'Text');
  
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }
  }
  
  function validateLoginForm(form)
  {
   check_login_name("username",3,15,'Username');
   check_field("passwd",3,15,"Password");
   
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }
  
  }
  
  function validateForgotPasswordForm(form)
  {
   check_email('email');
    
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }
  }
  
  function validateTokenForm(form)
  {
  	check_input('token',5,100,'Token');
  	
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }  
  }
  
  function validateNewPasswordForm(form)
  {
   check_passwords('password1','password2');
   
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }
  }
  
  function validateRequestCustomerForm()
  {
	check_input("name",5,15,"Name");
	check_phonenumber("telephone");
	check_email("email");
	check_field("address",20,400,"Address");
	check_field("message",20,400,"Message");
	check_checkbox('messagetype[]');
	
   if(errorMsg == '')
     return true;
   
   else
   {
     alert(errorMsg);
     errorMsg = '';
     return false;
   }  
  }
  
  function check_input(name,minlength,maxlength,text)
  {
    var field_name = document.getElementById(name).value;
    var field_length = document.getElementById(name).value.length;
    
    if(field_name == '')
    {
      errorMsg += "Please enter the " +text+ "\n";
    }
    else if(field_length < minlength)
    {
      errorMsg += text+ " should contain atleast " +minlength+ " characters\n";
    }
    else if(field_length > maxlength)
    {
      errorMsg += text+ " should not exceed " +maxlength+ " characters\n";
    }
    
    else 
    { 
      var iChars = "!@#$%^&*()+=-[]\';,./{}|\":<>?";
      var status = 0;
	  for (var i = 0; i < field_name.length; i++) 
	  {
	    if (iChars.indexOf(field_name.charAt(i)) != -1 && status == 0)
	    {
	      errorMsg += "Please remove special characters in "+text+" field \n";
	      status = 1;
	    }
	  }
	}  
	  return true;
  }
  
  function check_passwords(password,confirm_password)
  {
    var password = document.getElementById(password).value;
    var confirm_password = document.getElementById(confirm_password).value;
    
    if(password =='')
      errorMsg +=  "Password should not be empty. \n";
    
    if(confirm_password =='')
      errorMsg +=  "Confirm Password should not be empty. \n";  
    
    if(password != confirm_password)
      errorMsg += "Passwords should be the same. \n";
  }
  
  function check_email(email, required) 
  {
    var email = document.getElementById(email).value; 
  
    if (required==undefined) 
    {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) 
    {
        if (required) 
        {
            errorMsg += "Please enter a valid Email Address \n";
        }
        return true;
    }
    if (email.length==0) 
    {  
        if (required) 
        {
            errorMsg += "Please enter a valid Email Address \n";
        }
        return true;
    }
    if (! allValidChars(email)) 
    {  // check to make sure all characters are valid
       errorMsg += "Please enter a valid Email Address \n";
    }
    if (email.indexOf("@") < 1) 
    { //  must contain @, and it must not be the first character
        errorMsg += "Please enter a valid Email Address \n";
    } 
    else if (email.lastIndexOf(".") <= email.indexOf("@")) 
    {  // last dot must be after the @
        errorMsg += "Please enter a valid Email Address \n";
    } 
    else if (email.indexOf("@") == email.length) 
    {  // @ must not be the last character
        errorMsg += "Please enter a valid Email Address \n";
    } 
    else if (email.indexOf("..") >=0) 
    { // two periods in a row is not valid
		errorMsg += "Please enter a valid Email Address \n";
    } 
    else if (email.indexOf(".") == email.length) 
    {  // . must not be the last character
		errorMsg += "Please enter a valid Email Address \n";
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

 function check_phonenumber(telephone)
 {
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;

    var Phone=document.getElementById(telephone);
		
		if ((Phone.value==null)||(Phone.value=="")){
			errorMsg += "Please enter your Phone Number. \n";
			//Phone.focus()
			return false
		}
		if (checkInternationalPhone(Phone.value)==false){
			errorMsg += "Please enter a valid Phone Number. \n";
			//Phone.value=""
			//Phone.focus()
			return false
		}
		return true

	
	function isInteger(s)
	{   var i;
	    for (i = 0; i < s.length; i++)
	    {   
	        // Check that current character is number.
	        var c = s.charAt(i);
	        if (((c < "0") || (c > "9"))) return false;
	    }
	    // All characters are numbers.
	    return true;
	}
	function trim(s)
	{   var i;
	    var returnString = "";
	    // Search through string's characters one by one.
	    // If character is not a whitespace, append to returnString.
	    for (i = 0; i < s.length; i++)
	    {   
	        // Check that current character isn't whitespace.
	        var c = s.charAt(i);
	        if (c != " ") returnString += c;
	    }
	    return returnString;
	}
	function stripCharsInBag(s, bag)
	{   var i;
	    var returnString = "";
	    // Search through string's characters one by one.
	    // If character is not in bag, append to returnString.
	    for (i = 0; i < s.length; i++)
	    {   
	        // Check that current character isn't whitespace.
	        var c = s.charAt(i);
	        if (bag.indexOf(c) == -1) returnString += c;
	    }
	    return returnString;
	}
	
	function checkInternationalPhone(strPhone){
	var bracket=3
	strPhone=trim(strPhone)
	if(strPhone.indexOf("+")>1) return false
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
	var brchr=strPhone.indexOf("(")
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
  }
  
  function check_field(name,minlength,maxlength,text)
  {
    var field_name = document.getElementById(name).value;
    var field_length = document.getElementById(name).value.length;
  
   var html_reg = new RegExp("<[^<>]+>", "i");
    
    if(html_reg.exec(field_name))
    {
  
      errorMsg += "HTML tags should not be Entered.\n";
      
    }

    if(field_name == '')
    {
      errorMsg += "Please enter the " +text+ "\n";
    }
    else if(field_length < minlength)
    {
      errorMsg += text+ " should contain atleast " +minlength+ " characters\n";
    }
    else if(field_length > maxlength)
    {
      errorMsg += text+ " should not exceed " +maxlength+ " characters\n";
    }
    
	  return true;
  }
  
  function check_checkbox(name)
  {
    var a=document.getElementsByName(name);
    //alert(a.length);
	var p=0;
	for(i=0;i<a.length;i++){
		if(a[i].checked){
			p=1;
		}
	}
	if (p==0){
		errorMsg += 'Please select at least one check box';
		return false;
	}
			
	return true;
  }
  
  function check_login_name(name,minlength,maxlength,text)
  {
    var field_name = document.getElementById(name).value;
    var field_length = document.getElementById(name).value.length;
    
    if(field_name == '')
    {
      errorMsg += "Please enter the " +text+ "\n";
    }
    else if(field_length < minlength)
    {
      errorMsg += text+ " should contain atleast " +minlength+ " characters\n";
    }
    else if(field_length > maxlength)
    {
      errorMsg += text+ " should not exceed " +maxlength+ " characters\n";
    }
    
    else 
    { 
      var iChars = "!@#$%^&*()+=-[]\';,/{}|\":<>?";
      var status = 0;
	  for (var i = 0; i < field_name.length; i++) 
	  {
	    if (iChars.indexOf(field_name.charAt(i)) != -1 && status ==0)
	    {
	      errorMsg += "Please remove special characters in "+text+" field \n";
	      status = 1;
	    }
	  }
	}  
	  return true;
  }
  
  function isSellFormOk(name) {
   var h = null;
    var eRegx = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
   if(name == "g4u_sell") {
      h = document.g4u_sell;
      }
   else {
      return false;
      }
   var nRegx = /^[a-zA-Z ]+$/;
   var mRegx = /^[0-9]+$/;
   var phone_reg = /([\(\+])?([0-9]{1,3}([\s])?)?([\+|\(|\-|\)|\s])?([0-9]{2,4})([\-|\)|\.|\s]([\s])?)?([0-9]{2,4})?([\.|\-|\s])?([0-9]{4,8})/;
    
   if(removeSpecialChars(h.vastu.value)){
    alert("Please remove special characters ");
    return false;
   }
   if(removeSpecialChars(h.hname.value)){
    alert("Please remove special characters ");
    return false;
   }
   if(removeSpecialChars(h.city.value)){
    alert("Please remove special characters ");
    return false;
   }
   if(removeSpecialChars(h.location.value)){
    alert("Please remove special characters ");
    return false;
   }
   if(removeSpecialChars(h.lmark.value)){
    alert("Please remove special characters ");
    return false;
   } 
   if(removeSpecialChars(h.owner_name.value)){
    alert("Please remove special characters ");
    return false;
   }if(removeSpecialChars(h.rname.value)){
    alert("Please remove special characters ");
    return false;
   }if(removeSpecialChars(h.area_sq_yd.value)){
    alert("Please remove special characters ");
    return false;
   }if(removeSpecialChars(h.area_sq_ft.value)){
    alert("Please remove special characters ");
    return false;
   }if(removeSpecialChars(h.expected_price.value)){
    alert("Please remove special characters ");
    return false;
   }if(removeSpecialChars(h.vastu.value)){
    alert("Please remove special characters ");
    return false;
   }
   
   if(h.city.value.length < 1 || (!(h.city.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter city");
      return false;
      }   
   if(h.location.value.length < 1 || (!(h.location.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter location");
      return false;
      }   
   if(h.owner_name.value.length < 1 || (!(h.owner_name.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner name");
      return false;
      }
    if(h.owner_phone.value.length < 1 || phone_reg.test(h.owner_phone.value) == false || (!(h.owner_phone.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner phone");
      return false;
      }  
    if(h.owner_address.value.length < 1 || (!(h.owner_address.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner address");
      return false;
      }
    if(h.rcno.value.length < 1 || phone_reg.test(h.rcno.value) == false || (!(h.rcno.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner contact no");
      return false;
      }
           
   return true;
   }
   
  function isRentFormOk(name) {

   var h = null;
    var eRegx = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
   if(name == "rent_main") {
      h = document.rent_main;
      }
   else {
      return false;
      }
   var nRegx = /^[a-zA-Z ]+$/;
   var mRegx = /^[0-9]+$/;
   var phone_reg = /([\(\+])?([0-9]{1,3}([\s])?)?([\+|\(|\-|\)|\s])?([0-9]{2,4})([\-|\)|\.|\s]([\s])?)?([0-9]{2,4})?([\.|\-|\s])?([0-9]{4,8})/;
   
   if(removeSpecialChars(h.hname.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.city.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.location.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.lmark.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.owner_name.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.rname.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.barea.value)){
    alert("Please remove special characters ");
    return false;
   }else if(removeSpecialChars(h.rent.value)){
    alert("Please remove special characters ");
    return false;
   }
     
   if(h.city.value.length < 1 || (!(h.city.value.match(/([\<])([^\>]{1,})*([\>])/i) ||((h.city.value.match(mRegx)))==null))) {
      alert("Please enter city");
      return false;
      }   
   if(h.location.value.length < 1 || (!(h.location.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter location");
      return false;
      }   
   if(h.owner_name.value.length < 1 || (!(h.owner_name.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner name");
      return false;
      }
      
    if(h.owner_phone.value.length < 1 || phone_reg.test(h.owner_phone.value) == false || (!(h.owner_phone.value.match(/([\<])([^\>]{1,})*([\>])/i) ==null))) {
      alert("Please enter owner phone");
      return false;
      }  
    if(h.owner_address.value.length < 1 || (!(h.owner_address.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner address");
      return false;
      }
    if(h.rcno.value.length < 1 || phone_reg.test(h.rcno.value) == false || (!(h.rcno.value.match(/([\<])([^\>]{1,})*([\>])/i)==null))) {
      alert("Please enter owner contact no");
      return false;
      }
          
   return true;
   }
   
function removeSpecialChars(value)
 {
 var iChars = "!@#$%^&*()+=-[]\';,./{}|\":<>?";
      var status = 0;
	  for (var i = 0; i < value.length; i++) 
	  {
	    if (iChars.indexOf(value.charAt(i)) != -1 && status == 0)
	    {
	      //alert("Please remove special characters ");
	      status = 1;	
	      return true;
	    }
	  }
 }    

function resetFields(form)
{
 form.message.value     = "";
 form.budget.checked    = false;
 form.vasthu.checked    = false;
 form.image.checked     = false;
 form.floorplan.checked = false;
 
 return false;
}

function resetFieldsCustomer(form)
{
 form.name.value        = "";
 form.telephone.value   = "";
 form.email.value       = "";
 form.address.value     = "";
 form.message.value     = "";
 form.budget.checked    = false;
 form.vasthu.checked    = false;
 form.image.checked     = false;
 form.floorplan.checked = false;
 
 return false;
} 