//to check the e-mail address
var validEmailAddress=false;
//to check the Telephone number
var validTelephone=false;
//to check the Fax number
var validFax=false;
//to check the mobile number
var validmobile=false;





//////////////////////////////
function check()
{
var companyname     = document.newuser.Companyname.value;
var companyactivity = document.newuser.CompanyActivity.value;
var country         = document.newuser.Country.value;
var city            = document.newuser.City.value;
var pobox           = document.newuser.POBox.value;

var phone           = document.newuser.Phone.value;
var fax             = document.newuser.Fax.value;
var website         = document.newuser.Website.value;
var email           = document.newuser.Email.value;

var fname           = document.newuser.Fname.value;
var lname           = document.newuser.Lname.value;
var agentM          = document.newuser.AgentMobile.value;
var genderCheckedM  = document.newuser.Gender[0].checked;
var genderCheckedF  = document.newuser.Gender[1].checked;
var dob             = document.newuser.DOB.value;

var username        = document.newuser.Username.value;
var password        = document.newuser.Password.value;
var cpassword       = document.newuser.Cpassword.value;
var pHint           = document.newuser.PasswordHint.value;
var agreement       = document.newuser.AgreementChecked.checked;


var incompleted = new Array(19);
var counter=0;

var ErrorsList = new Array();
var ErrorNumber=0;


checkEmail();		 
CheckNumber();		 
CheckMobile();		 
CheckFax();	

////////////////////////////////
if(companyname == ""){incompleted[counter] = "Company Name"; counter++;}
if(companyactivity == ""){incompleted[counter] = "Company Activity"; counter++;}
if( (country == "") || (country=="Please select from the list") ){incompleted[counter] = "Country"; counter++;}
if(city == ""){incompleted[counter] = "City / Street"; counter++;}
if(pobox == ""){incompleted[counter] = "P.O.Box"; counter++;}
if(phone == ""){incompleted[counter] = "Telephone Number"; counter++;}
if(fax == ""){incompleted[counter] = "Fax Number"; counter++;}
if(email == ""){incompleted[counter] = "E-mail"; counter++;}
if(website == ""){incompleted[counter] = "Website"; counter++;}
if(fname == ""){incompleted[counter] = "First Name"; counter++;}
if(lname == ""){incompleted[counter] = "Last Name"; counter++;}
if(agentM == ""){incompleted[counter] = "Agent Mobile Number"; counter++;}
if(genderCheckedM==false && genderCheckedF==false ){incompleted[counter] = "Gender"; counter++;}
if(dob == ""){incompleted[counter] = "Birth Date"; counter++;}
if(username == ""){incompleted[counter] = "Username"; counter++;}
if(password == ""){incompleted[counter] = "Password"; counter++;}
if(cpassword == ""){incompleted[counter] = "Confirm Password"; counter++;}
if(pHint == ""){incompleted[counter] = "Password Hint"; counter++;}
if(agreement != 1){incompleted[counter] = "You need to read and agree Sabouni Group Terms of Service"; counter++;}
////////////////////////////////////////////////

if( counter == 19  )
{
  ++ErrorNumber;
  ErrorsList[ErrorNumber]="Please fill the form.<br/>";
}

else 
  if(counter != 0)
  {
	 ++ErrorNumber;
   ErrorsList[ErrorNumber]="Please complete the following fields :<br/>"
	 
	 for(i=0; i<counter;i++)
	 {
	    ++ErrorNumber;
	     ErrorsList[ErrorNumber]=(i+1)+". "+incompleted[i]+"<br/>";	
	 }
	}
//////////////////////////////////////////////////////////
	
if(password != cpassword)	
{
   ++ErrorNumber;
   ErrorsList[ErrorNumber]="Error : password is not the same.<br/>";
}
	 
//////////////////////////////////////////////////////////	 
if(!validEmailAddress && !(email == ""))
{
    ++ErrorNumber;
     ErrorsList[ErrorNumber]="Error : Please enter a valid e-mail address.<br/>";
}

//////////////////////////////////////////////////////////		 
if(!validTelephone && !(phone == ""))
{
     ++ErrorNumber;
     ErrorsList[ErrorNumber]="Error : Please enter a valid Telephone Number.<br/>";
}

//////////////////////////////////////////////////////////	 
if(!validFax && !(fax == ""))
{
     ++ErrorNumber;
     ErrorsList[ErrorNumber]="Error : Please enter a valid Fax Number.<br/>";	
}
		 


//////////////////////////////////////////////////////////	 
if(!validmobile && !(agentM == ""))
{
    ++ErrorNumber;
     ErrorsList[ErrorNumber]="Error : Please enter a valid Agent Mobile Number.<br/>";	
}	
		 
		 
		 
	 
		 
		 
///// Print the Error /////
		 
if(ErrorNumber == 0)  //no errors 
{
    informationbar.innerHTML="Application was completed successfuly.";
    document.newuser.subTrue.disabled=false;
}
  
else // yes there is errors
{
   document.newuser.subTrue.disabled=true;
	 
   informationbar.innerHTML="";
	 
	 for(j=1; j<=ErrorNumber; j++)
	   informationbar.innerHTML+=ErrorsList[j];	
}	 
		 	  
}//end check





////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
function checkEmail()
{
 var emailaddress = document.newuser.Email.value;

 if(emailaddress=="")
   emailinfo.innerHTML="Please enter an email address";
 else
 {	
   var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
   if(!filter.test(emailaddress))
	 {
     emailinfo.innerHTML="Not a valid email address";
		 validEmailAddress=false;
	 }
   else
	   {
		   emailinfo.innerHTML="&nbsp;";
			 validEmailAddress=true;
		 }
 }
}

///////////////// To Check the telephone number ////////////////////////////////

// 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 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){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

////


function CheckNumber(){

	var TelePhoneN=document.newuser.Phone.value;
	
	if (TelePhoneN=="")
		Teleinfo.innerHTML="Please Enter your Phone Number";
	else
	{
	if (checkInternationalPhone(TelePhoneN)==false)
	  {
		   Teleinfo.innerHTML="Please Enter a Valid Phone Number";
			 validTelephone=false;
		}
	else		
	   {
	     Teleinfo.innerHTML="";
			 validTelephone=true;
			}
	}
	
 }
 ///////////////// End check number ///////////////////////////////////////////
 
 ///////////////// To Check the Fax number ////////////////////////////////

function CheckFax(){

	var FaxN=document.newuser.Fax.value;
	
	if (FaxN=="")
		Faxinfo.innerHTML="Please Enter your Fax Number";
	else
	{
	if (checkInternationalPhone(FaxN)==false)
	   {
		   Faxinfo.innerHTML="Please Enter a Valid Fax Number";
			 validFax=false;
		 }
	else		
	   {
	     Faxinfo.innerHTML="";
			 validFax=true;
			}
	}
	
 }
 ///////////////// End check fax number ////////////////////////////////////////
 
 
  ///////////////// To Check the mobile number ////////////////////////////////

function CheckMobile(){

	var agent_mobile=document.newuser.AgentMobile.value;
	
	if (agent_mobile=="")
		Mobileinfo.innerHTML="Please Enter the agent mobile number";
	else
	{
	if (checkInternationalPhone(agent_mobile)==false)
	   {
		   Mobileinfo.innerHTML="Please Enter a Valid Mobile Number";
			 validmobile=false;
		 }
	else		
	   {
	     Mobileinfo.innerHTML="";
			 validmobile=true;
			}
	}
	
 }
 ///////////////// End check mobile number ////////////////////////////////////////////
 
 
 ////////////////// To Show Usage of username////////////////////
function ProgressUsername()
{
var maxL = 12;
var currentL = document.newuser.Username.value;
var percentage = parseInt((currentL.length/maxL)*100);

UNprogress.innerHTML ="Usage: "+percentage+" %"; 
}


 ////////////////// To Show Usage of password////////////////////
function ProgressPA()
{
var maxL = 12;
var currentL = document.newuser.Password.value;
var percentage = parseInt((currentL.length/maxL)*100);

PAprogress.innerHTML ="Usage: "+percentage+" %"; 
}


 ////////////////// To Show Usage of confirm password////////////////////
function ProgressCP()
{
var maxL = 12;
var currentL = document.newuser.Cpassword.value;
var percentage = parseInt((currentL.length/maxL)*100);

CPprogress.innerHTML ="Usage: "+percentage+" %"; 
}
