var isValidEmail=true;
var lastEmailError="";

function checkphone(param)
{
    var goodformat=true;
    Str = param;
	
	if (Str.length == 0) return (true);

    for (a = 0;  a < Str.length;  a++)
    {
      charac = Str.charAt(a);
      if ((charac < "0" || charac > "9") && charac != " " && charac != "-" )
	  {
          goodformat=false;
	  }
    }
    return (goodformat);
}

function onChangeEmail(param)
{         
    AjaxRequest.get(
    {                   
        url:"/ajaxscripts/exists.qmd?email="+param,
        "onSuccess":function(req){ AjaxValidateEmail(req); }
     });
}

function stringFilter (s) 
{
   var filteredValues = "\n\r\t";     // Characters stripped out
   var i;
   var returnString = "";
   for (i = 0; i < s.length; i++) {  // Search through string and append to unfiltered values to returnString.
      var c = s.charAt(i);
      if (filteredValues.indexOf(c) == -1) returnString += c;
   }
   return returnString;
}

function AjaxValidateEmail(req)
{                                                   
    // responses are MXFAIL, INVALID, OK, EXISTS
    stat=stringFilter(req.responseText);
    if (stat=="INVALID")
    {
        isValidEmail=false;
        lastEmailError=JAVASCRIPT_INVALID_EMAIL;
        alert(JAVASCRIPT_INVALID_EMAIL);
    }
    if (stat=="EXISTS")
    {
        isValidEmail=false;
        lastEmailError=JAVASCRIPT_EMAIL_EXISTS;
        alert(JAVASCRIPT_EMAIL_EXISTS);
    }
    if (stat=="MXFAIL")
    {
        isValidEmail=false;
        lastEmailError=JAVASCRIPT_EMAIL_MXFAIL;
        alert(JAVASCRIPT_EMAIL_MXFAIL);
    }
    if (stat=="OK")
    {
        isValidEmail=true;
        lastEmailError="";
    }
}

function ValidateStage(frm)
{
    var  isvalid = false;
    var mailat = false;
    var maildot= false;

	var Str = frm.elements["company"].value;
	if  (Str.length < 2)
	{
	     alert(JAVASCRIPT_INVALID_NAME);
         frm.elements["company"].focus();
         return (false);
	}
	
    var Str = frm.elements["invoice_address1"].value;
	if  (Str=="")
	{
	     alert(JAVASCRIPT_INVALID_ADDRESS1);
         frm.elements["invoice_address1"].focus();
         return (false);
	}
	
	
	var Str = frm.elements["invoice_address4"].value;
	if(Str.length<3)
	{
		alert(JAVASCRIPT_INVALID_ADDRESS4);
         frm.elements["invoice_address4"].focus();
         return (false);
	}
	
	var Str = frm.elements["invoice_postcode"].value;
	if(Str.length<3)
	{
		alert(JAVASCRIPT_INVALID_POSTCODE);
         frm.elements["invoice_postcode"].focus();
         return (false);
	}

    var Str = frm.elements["firstname"].value;
	if  (Str.length < 1)
	{
	     alert(JAVASCRIPT_INVALID_FIRSTNAME);
         frm.elements["firstname"].focus();
         return (false);
	}
    var Str = frm.elements["surname"].value;
	if  (Str.length < 2)
	{
	     alert(JAVASCRIPT_INVALID_SURNAME);
         frm.elements["surname"].focus();
         return (false);
	}
    var Str = frm.elements["telephone"].value;
	if  (Str.length < 4)
	{
	     alert(JAVASCRIPT_INVALID_LANDLINE);
         frm.elements["telephone"].focus();
         return (false);
	}
    firsttwo=Str.charAt(0)+Str.charAt(1);
	if  (firsttwo != "01" && firsttwo!="02" && firsttwo!="08" && firsttwo!="00"  && firsttwo !="03" && firsttwo !="05" )
	{
	     alert(JAVASCRIPT_INVALID_LANDLINE);
         frm.elements["telephone"].focus();
         return (false);
	}

    if (checkphone(Str)==false)
	{
         alert(JAVASCRIPT_INVALID_TELFAXMOBILE);
         frm.elements["telephone"].focus();
		 return (false);
	}

    if (checkphone(frm.elements["fax"].value)==false)
	{
         alert(JAVASCRIPT_INVALID_TELFAXMOBILE);
         frm.elements["fax"].focus();
		 return (false);
	}
    if (checkphone(frm.elements["mobile"].value)==false)
	{
         alert(JAVASCRIPT_INVALID_TELFAXMOBILE);
         frm.elements["mobile"].focus();
		 return (false);
	}
	
    Str = frm.elements["email_address"].value;
    for (a = 0;  a < Str.length;  a++)
    {
      charac = Str.charAt(a);
      if (charac == ".")
          maildot=true;
      if (charac == "@")
          mailat=true;
    }
    if ((mailat) && (maildot) && isValidEmail)
    {
        isvalid=true;           
    }
	else
	{
         msg=JAVASCRIPT_INVALID_EMAIL;
         if (lastEmailError>"") msg=lastEmailError;
	     alert(msg);
         frm.elements["email_address"].focus();
         return (false);
	}

    if (frm.elements["showaml"].value=="Y" || typeofinput=="FULL")
    {
           var Str = frm.elements["industrytext"].value;
  	       if  (Str.length < 4)
	       {
	         alert(JAVASCRIPT_INVALID_INDUSTRY);
             frm.elements["industrytext"].focus();
             return (false);
	       }
     }
	
	if (typeofinput=="FULL")
	{
   	   if (frm.elements["c"].value=="N")
	   {
          var Str1 = frm.elements["password1"].value;
          var Str2 = frm.elements["password2"].value;
  	      if  (Str1.length < 5)
	      { 
	        alert(JAVASCRIPT_INVALID_PASSWORD);
            frm.elements["password1"].focus();
            return (false);
	      }	
  	      if  (Str2.length < 5)
	      { 
	         alert(JAVASCRIPT_INVALID_PASSWORD2);
            frm.elements["password2"].focus();
            return (false);
	      }	
  	      if  (Str1 != Str2)
	      { 
	        alert(JAVASCRIPT_INVALID_PASSWORD_VERIFICATION);
		    frm.elements["password1"].value="";
		    frm.elements["password2"].value="";
            frm.elements["password1"].focus();
            return (false);
	      }	
	   }
       var Str1 = frm.elements["password1"].value;
       var Str2 = frm.elements["password2"].value;
	   if (frm.elements["c"].value=="Y" )
	   {
  	      if  (Str1 != Str2)
	      {  
	        alert(JAVASCRIPT_INVALID_PASSWORD_VERIFICATION);
		    frm.elements["password1"].value="";
		    frm.elements["password2"].value="";
            frm.elements["password1"].focus();
            return (false);
	      }	
   	   }
   }    
   if (frm.elements["showaml"].value=="Y")
   {
      if (!frm.elements["tandc"].checked)
      { 
        alert(JAVASCRIPT_INVALID_DECLARATION);
        return (false);
      }
   }	
   return (true);	
}
