// JavaScript Document - Handles sign in form

//functions will work ajax requests and modify "messageText" div
function checkLength(theString){
  //checks that an entry has been made
  if(!theString.trim().length){
    return false;
    }
  else{
    return true;
  }
}




function redirectLogin(){
 
  parent.location.reload();
  
   
  }
  
function checkRadio(){
  //Will check existing member radio box if password field is changed
  document.getElementById("existingMember").checked=true;
  }
  
function submitForm(){
  document.signIn.submit();
  }
  
  
  
  



function forgotPassword(){

  //check email address present
  
  
  
  var theEmail=document.getElementById('username').value;
  var theEmail=theEmail.trim();
  var myEmail=new EmailCheck(theEmail);
  var theMessage=document.getElementById('messageText');
  if(!myEmail.validate()){
    document.getElementById('messageText').innerHTML="<p class=\"alert\">Please enter a valid email address</p>";
    }
  else{
    theMessage.innerHTML="<p class=\"alert\">Searching for your password hint</p>";
    //create an ajax function to grab the password hint
    //create Ajax object
    var ajaxObj=new Ajax();
    //reference object handle
    var myAjax=ajaxObj.handle;
    //setup callback function
    myAjax.onreadystatechange=function(){
      if(myAjax.readyState==4 && myAjax.status==200){
        var theResponse=myAjax.responseText;
        //handle response
        theMessage.innerHTML=theResponse;
      }
        
        
      }
      
      //open page and send request
      myAjax.open("POST","ajaxPasswordHint.php",true);
    
      //build params string
      var params="username="+encodeURIComponent(theEmail);
      //alert(params);
      myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      myAjax.setRequestHeader("Content-length", params.length);
      myAjax.setRequestHeader("Connection", "close");
      myAjax.send(params);
  
    
    }
    
}

function checkForm(){
 //will check for valid form entries and set session vars on successful login
 
 //initialize form vars
 var theEmail=(document.getElementById('username').value).trim();
 var thePassword=(document.getElementById('pass').value).trim();
 var theMessage=document.getElementById('messageText');
 //clear message text
 theMessage.innerHTML="<p>&nbsp;</p>";
 //radio button
 if(document.getElementById('existingMember').checked==true){
  //existing member
  var newMember=0;
  
  }
 else{
  var newMember=1;
 }
 
 
 
 
 
 
 
 
 
 //We now know the required information
 //check the email
 var myEmail=new EmailCheck(theEmail);
  if(!myEmail.validate()){
    theMessage.innerHTML="<p class=\"alert\">Please enter a valid email address</p>";
    return;
    }
  
 //email is valid
 
 
 //check email of so called 'new' members
 
  
 
 
 
 //if existing - lookup member
  if(!newMember){
    if(!thePassword.length){
      theMessage.innerHTML="<p class=\"alert\">Please enter your password</p>";
    }
    else{
      theMessage.innerHTML="<p class=\"alert\">Looking up your details</p>";
      
      
      //do some ajax
      //create Ajax object
      var ajaxObj=new Ajax();
      //reference object handle
      var myAjax=ajaxObj.handle;
  
      //setup callback function
      myAjax.onreadystatechange=function(){
      if(myAjax.readyState==4 && myAjax.status==200){
      
        var theResponse=myAjax.responseText;
        //alert(theResponse);
        //handle response
        if(theResponse=="DECLINED"){
          theMessage.innerHTML="<p class=\"alert\">Sorry - we couldn't find your account.<br />Please ensure you entered your email address and<br />password correctly.</p>";
          }
        else if(theResponse=="VERIFIED"){
          //session vars set on ajax page
          //call function for header redirect
          theMessage.innerHTML="<p class=\"alert\">Login Successful - Please wait a moment...</p>";
          window.setTimeout('redirectLogin()',1500);
        }
        else if(theResponse=="PASSWORD"){
          //session vars set on ajax page
          //call function for header redirect
          theMessage.innerHTML="<p class=\"alert\">Our records indicate an account has already been established with your email address.  Please enter your password to login.</p>";
          
        }
        else{
          theMessage.innerHTML="<p class=\"alert\">"+theResponse+"</p>";
        }
          
        
        
      }
      }
  
      //open page and send request
      myAjax.open("POST","ajaxCustomerLogin.php",true);
    
      //build params string
      var params="username="+encodeURIComponent(theEmail)+"&pass="+encodeURIComponent(thePassword);
      //alert(params);
      myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      myAjax.setRequestHeader("Content-length", params.length);
      myAjax.setRequestHeader("Connection", "close");
      myAjax.send(params);
            
    }
  }
  else{
    //new member - redirect to member signup screen (by submitting form)
    
      var ajaxObj2=new Ajax();
      //reference object handle
      var myAjax2=ajaxObj2.handle;
  
      //setup callback function
      myAjax2.onreadystatechange=function(){
      if(myAjax2.readyState==4 && myAjax2.status==200){
        var theResponse2=myAjax2.responseText;
        //alert(theResponse2);
        //handle response
        if(theResponse2=="PRESENT"){
          theMessage.innerHTML="<p class=\"alert\">Our records indicate an account has already been established with your email address.  Please enter your password to login.</p>";
          return;
          }
        else{
          submitForm();
        }
              
        
      }
      }
  
      //open page and send request
      myAjax2.open("POST","ajaxCustomerLogin.php",true);
    
      //build params string
      var params2="username="+encodeURIComponent(theEmail);
      //alert(params);
      myAjax2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      myAjax2.setRequestHeader("Content-length", params2.length);
      myAjax2.setRequestHeader("Connection", "close");
      myAjax2.send(params2);
            
     
 
 
 
    
  }  
}  

  function onlineValidate(){
    //checks and validates customer signup/profile form before submission
    
    //initialize error string
    var errorString="";
    //check name
    var billEmail=document.getElementById('billEmail').value;
    if(!checkLength(billEmail)){
      errorString+="Please enter your email address<br />";
    }
    var myEmail=new EmailCheck(billEmail);
    if(!myEmail.validate()){
      errorString+="Please enter a valid email address<br />";
    }
    var shipFirstName=document.getElementById('shipFirstName').value;
    if(!checkLength(shipFirstName)){
      errorString+="Please enter your first name<br />";
    }
    var shipLastName=document.getElementById('shipLastName').value;
    if(!checkLength(shipLastName)){
      errorString+="Please enter your last name<br />";
    }
    var shipStreet=document.getElementById('shipStreet').value;
    if(!checkLength(shipStreet)){
      errorString+="Please enter your street address<br />";
    }
    var shipZip=document.getElementById('shipZip').value;
    if(!checkLength(shipZip)){
      errorString+="Please enter your zip or postal code<br />";
    }
    var shipCity=document.getElementById('shipCity').value;
    if(!checkLength(shipCity)){
      errorString+="Please enter the name of your town or city<br />";
    }
    var pass=document.getElementById('pass').value;
    if(!checkLength(pass)){
      errorString+="Please enter a password for your account<br />";
    }
    
    //check password length
    if(checkLength(pass) && pass.length<6){
      //password too short
      errorString+="Your password must be at least 6 characters in length<br />";
    }
    var passwordHint=document.getElementById('passwordHint').value;
    if(!checkLength(passwordHint)){
      errorString+="Please enter a password hint to remind you of your password.<br />";
    }
      
      
    //now check results
    if(errorString.length>1){
      document.getElementById('formInstructions').style.height='auto';
      document.getElementById('formInstructions').style.paddingBottom='10px';
      document.getElementById('formInstructions').innerHTML="<p class=\"alert\">"+errorString+"</p>";
    }
    else{
      document.getElementById('formInstructions').innerHTML="<p>&nbsp;</p>";
      //alert("Validation Passed - Submit Form");
      document.customerForm.submit();
    }
      
    
    
    
    
    
    
    
  }
  
  
    
 
    



    
    


