// JavaScript Document

function validateFormOnSubmit(theForm) {
var reason = "";

  
  reason += validatePassword(theForm.Password);
  reason += validateEmail(theForm.email);
  
      
  if (reason != "") {
	  
    //alert("Some fields need correction:" + reason);
	var errormessage='<ul>'+reason+'</ul>';
	document.getElementById('loginerror').innerHTML=errormessage;
    return false;
  }

  return true;
}



function validate_forgetpassword(theForm)
{
	var reason = "";

  reason += validateEmail(theForm.email);
  if (reason != "") {
	  
    //alert("Some fields need correction:" + reason);
	var errormessage='<ul>'+reason+'</ul>';
	document.getElementById('loginerror').innerHTML=errormessage;
    return false;
  }

  return true;
}


function signup_validation(theForm)
{
	
	
	var reason = "";

  reason += validateEmail(theForm.email);
  reason += validateEmpty(theForm.firstname,'firstname');
  reason += validateEmpty(theForm.lastname,'lastname');
  reason += validatePassword(theForm.password);
  reason +=validateconfirmpassword(theForm.confirmpassword,theForm.password)
  
  if (reason != "") {
    //alert("Some fields need correction:" + reason);
	var errormessage='<ul>'+reason+'</ul>';
	document.getElementById('loginerror').innerHTML=errormessage;
    return false;
  }

  return true;


}


function validformcontact(theForm)
{
	var reason = "";
	
	 reason += validateEmpty(theForm.CONTACTNAME,'Contact name');
	 /*reason += validateEmpty(theForm.BUSINESS,'Business');*/
	 reason += validateEmail(theForm.CONTACTEMAIL);
	 reason += validatephonenumber(theForm.PHONE);
	  reason += ValidURL(theForm.SITEURL);
	 reason += validateEmpty(theForm.QUERIES_PER_DAY,'Queries  per day');
	 reason += validateEmpty(theForm.TOTAL_TRAFFIC,'U.S. Traffic Per Day');
	 
	// alert(theForm.sessioncaptcha.value);
	 //alert(theForm.captcha.value);
	 if(theForm.sessioncaptcha.value!=theForm.captcha.value)
	 {
		  reason += "<p style=padding:0px 0px 0px 0px; class='error_txt'>Please enter the verfication code correctly </p>";
	 
	 }
 // reason += validateEmpty(theForm.lastname,'lastname');
	  if (reason != "") {
    //alert("Some fields need correction:" + reason);
	var errormessage=reason;
	//alert(errormessage);
	document.getElementById('loginerror').innerHTML=errormessage;
    return false;
  }

  return true;
	
	
	
}


function validateEmpty(fld,fieldname) {
    var error = "";
 
    if (fld.value.length == 0) { 
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>"+fieldname +"   has not been filled in. </p>"
    } else {
		
    }
    return error;  
}


function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") { 
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>You didn't enter a username. </p>";
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow'; 
        error = "<p>The username is the wrong length. </p>";
    } else if (illegalChars.test(fld.value)) { 
        error = "<p>The username contains illegal characters. </p>";
    } else {
    }
    return error;
}


function validatePassword(fld) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
 
    if (fld.value == "") {
        error = "<p>You didn't enter a password  </p>";
    } else if ((fld.value.length < 4) || (fld.value.length > 15)) {
        error = "<p>The password is the wrong length </p>";
    } else if (illegalChars.test(fld.value)) {
        error = "<p>The password contains illegal characters </p>";
    } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
        error = "<p>The password must contain at least one numeral </p>";
    } else {
    }
   return error;
} 



function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}




function validateconfirmpassword(fld,passwordfield) {
    var error = "";
    
	    if (fld.value == "") {
        error = "<p>You didn't enter a confirm password  </p>";
		}
        else if (fld.value!= passwordfield.value) {
         error = "<p>The confirm password and password should be same </p>";
        } 
    return error;
}







function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>Email address has not been filled in. </p>";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>Please enter a valid email address. </p>";
    } else if (fld.value.match(illegalChars)) {
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>The email address contains illegal characters. </p>";
    } else {
    }
    return error;
}



/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
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;

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 validatephonenumber(fld){
	  var error="";
	 var tfld = trim(fld.value); 
	
	
	if (checkInternationalPhone(fld.value)==false){
		
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>Please Enter a Valid Phone Number.. </p>";
	}
	if ((fld.value==null)||(fld.value=="")){
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>Phone has not been filled in.. </p>";
	}
	return error;
 }


function ValidURL(fld){
	  var error=""
  var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");

 var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/;
    if(tomatch.test(fld.value)){
         error=""
    }else{
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>Phone Enter a Valid  URL (for example: http://www.n5.com) </p>";
    }
	
	 if(fld.value==''){
		 
        error = "<p style=padding:0px 0px 0px 0px; class='error_txt'>Site URL has not been filled in.. </p>";
    }
	return error;
}
