// JavaScript Document
  
function formValidator(){

            // Make quick references to our fields
            var txtFName = document.getElementById('txtFName');
            var txtLName = document.getElementById('txtLName');
            var txtEmail = document.getElementById('txtEmail');
            var txtOrganization = document.getElementById('txtOrganization');
            var Title = document.getElementById('Title');
            var txtAddress = document.getElementById('txtAddress');
            var txtCity = document.getElementById('txtCity');
            var Country = document.getElementById('Country');
            var state = document.getElementById('state');
            var txtZip = document.getElementById('txtZip');
            var txtTelephone = document.getElementById('txtTelephone');
            var OS = document.getElementById('OS');
            var Version = document.getElementById('Version');
            var Edition = document.getElementById('Edition');
            var txtDescription = document.getElementById('txtDescription');
          

 // Check each input in the order that it appears in the form!
 if(isAlphanumeric(txtFName, "Please enter a valid first name")){
      if(isAlphanumeric(txtLName, "Please enter a valid last name")){
           if(emailValidator(txtEmail, "Please enter a valid email address")){
               if(isAlphanumeric(txtOrganization, "Numbers and Letters Only for Organization")){
                   if(madeSelection(document.getElementById('Title'), "Please Choose a Title")){
				         if(isAlphanumeric(txtAddress, "Numbers and Letters Only for Address")){
                             if(isAlphanumeric(txtCity, "Letters Only for City")){
                                if(madeSelection(document.getElementById('Country'), "Please Choose a Country:")){
                                   if(madeSelection(document.getElementById('state'), "Please Choose a State")){
                                       if(isZipNumber(txtZip, "Please enter a valid zip code")){
									      if(isPhoneNumber(txtTelephone, "Please enter a valid telephone number")){
                                            if(madeSelection(document.getElementById('OS'), "Please Choose an Operating System")){
                                               if(madeSelection(document.getElementById('Version'), "Please Choose a Version")){
                                                  if(madeSelection(document.getElementById('Edition'), "Please Choose an Edition")){
                                                    if(isAlphanumeric(txtDescription, "Please add a description")){
                                                    return true;
															  }
                                                           }
                                                       }
                                                   }
                                                }
                                             }
                                        }
                                    }
                                }
                            }
                          }
					   }
                    }
                }
            }
        return false;
       }

function isEmpty(elem, helperMsg){
            if(elem.value.length == 0){
                 alert(helperMsg);
                elem.focus(); // set the focus to this input
                 return true;
            }
            return false;
}

 

function isPhoneNumber(elem, helperMsg){

            var numericExpression = /^([0-9][0-9][0-9])?-? ?([0-9][0-9][0-9])-? ?([0-9][0-9][0-9][0-9])+$/;
             var numericExp2 = /^[0-9\-\(\)\s]+$/;
            if(elem.value.match(numericExpression)||elem.value.match(numericExp2)){

                        return true;

            }else{
                        alert(helperMsg);
                        elem.focus();
                        return false;
            }
}
function isZipNumber(elem, helperMsg){

            var numericExpression = /^([a-zA-Z][0-9][a-zA-Z]) ?([0-9][a-zA-Z][0-9])+$/;
			var numericExp2 = /^[0-9][0-9][0-9][0-9][0-9]+$/;
			var numericExp3 = /^[0-9\-]+$/;
			
            if(elem.value.match(numericExpression)||elem.value.match(numericExp2)||elem.value.match(numericExp3)){

                        return true;

            }else{
                        alert(helperMsg);
                        elem.focus();
                        return false;
            }
}

 
function isAlphanumeric(elem, helperMsg){
          //  var alphaExp = /^[-A-Za-z 0-9]\(\)\#\-\.\+\À\È\Ò\Ù\Í\Ó\Ú\Ý\Â\Ê\Î\Ì\à\é\è\ï\ë\ê\ç\å\É\ô\î\Æ\ö\ò\;\=\?\%\&\+$/;
            var alphaExp =/^[-A-Za-z 0-9\(\)#\w\-\.\+\À\È\Ò\Ù\Í\Ó\Ú\Ý\Â\Ê\Î\Ì\à\é\è\ï\ë\ê\ç\å\É\ô\î\Æ\ö\ò\;\?\%\&\ ]+$/;
			if(elem.value.match(alphaExp)){
                        return true;
            }else{
                        alert(helperMsg);
                        elem.focus();
                        return false;
            }
}

 
function lengthRestriction(elem, min, max){
            var uInput = elem.value;
            if(uInput.length >= min && uInput.length <= max){
                        return true;
            }else{
                        alert("Please enter between " +min+ " and " +max+ " characters");
                        elem.focus();
                        return false;
            }
}


function madeSelection(elem, helperMsg){
			var titre = elem.value;            
			if(titre == ""){
                        alert(helperMsg);
                        elem.focus();
                        return false;
			}else if (titre == "Other:"){
                        return true;
						
			           }else { return true;
            }
		 	
}

function madeOther(elem, helperMsg){
			var Title = elem.value;
			var txtOthert = document.getElementById('txtOthert');
            
			if(Title == "Other:"){
                        alert(helperMsg);
                        txtOthert.focus();
                        return false;
             }else {
                        return true;
            }
		 	
}

 
function emailValidator(elem, helperMsg){
            var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
            if(elem.value.match(emailExp)){
                        return true;
            }else{
                        alert(helperMsg);
                        elem.focus();
                        return false;
            }

}