function validateForm(myForm)
{
   myForm.email.value = trim(myForm.email.value);
   email = myForm.email.value;
   
   myForm.password1.value = trim(myForm.password1.value);
   password1 = myForm.password1.value;

   myForm.password2.value = trim(myForm.password2.value);
   password2 = myForm.password2.value;

   myForm.fname.value = trim(myForm.fname.value);
   fname = myForm.fname.value;
   
   myForm.lname.value = trim(myForm.lname.value);
   lname = myForm.lname.value;

   if(email == "")
   {
      alert("Please enter your email!");
      myForm.email.focus();
      return false;
   }

   if(!checkEmail(myForm))
   {
      return false;
   }
   
   check_username();
   existing = trim(document.getElementById('is_existing').value);
   if(existing.length == 1)
   {
      alert("Email you entered is no longer available.");
      myForm.email.focus();
      return false;
   }

   if(password1 == "")
   {
      alert("Please enter password!");
      myForm.password1.focus();
      return false;
   }
   
   if(password1.length < 6)
   {
      alert("Password must be at least 6 characters.");
      myForm.password1.focus();
      return false;
   }

   if(password2 == "")
   {
      alert("Please confirm your password!");
      myForm.password2.focus();
      return false;
   }

   if(password1 != password2)
   {
      alert("Your passwords did not match!");
      myForm.password2.focus();
      return false;
   }
   
   if(fname == "")
   {
       alert("Please enter your first name!");
       myForm.fname.focus();
       return false;
   }
   
   if(lname == "")
   {
       alert("Please enter your last name!");
       myForm.lname.focus();
       return false;
   }
   return true;
}

// remove multiple, leading or trailing spaces
function trim(s) {
	s = s.replace(/(^\s*)|(\s*$)/gi,"");
	s = s.replace(/[ ]{2,}/gi," ");
	s = s.replace(/\n /,"\n");
	return s;
}

function checkEmail(myForm)
{
   if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.email.value))
   {
     return (true)
   }
   alert("Invalid E-mail Address! Please re-enter.")
   myForm.email.focus();
   return (false)
}

function check_username_init()
{
  var user_field = document.getElementById('email');
  return 'username_exists.php?email=' + user_field.value;
}

function check_username_ajax(results) 
{
  //var results_div = document.getElementById('results_div');
  //results_div.innerHTML = results;
  document.getElementById('is_existing').value = results;
}

function check_username() 
{
  var user_field = document.getElementById('email');
  if (user_field.value.length > 0) 
  {
    //call our AJAX function in the PHP AJAX Framework
    ajaxHelper('check_username');
  }
  else 
  {
    //clear results field 
    //var results_div = document.getElementById('results_div');
    //results_div.innerHTML = '';
    document.getElementById('is_existing').value = '';
  }
}

function ajaxHelper(functionName, additionalArgs) 
{
  var xmlHttp;
  // Firefox, Opera 8.0+, Safari, SeaMonkey
  try 
  {
    xmlHttp=new XMLHttpRequest();
  }

  catch (e) 
  {
    // Internet Explorer
    try 
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) 
    {
      try
      {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) 
      {
        alert("Sorry, your browser does not support AJAX.");
        return false;
      }
    }
  }
 
  xmlHttp.onreadystatechange=function() 
  {
    //The request is complete == state 4
    if (xmlHttp.readyState==4) 
    {
      var response=xmlHttp.responseText;
      //Send reponse to _ajax hook of passed function name
      eval(functionName + "_ajax" + '(\'' + response + '\')');
    }
  }
 
  //Get request string from _setup hook of passed function name
  if (additionalArgs !== undefined && additionalArgs.length > 0) 
  {
    var requestString = eval(functionName+"_init" + '(' + additionalArgs + ')');
  }
  else 
  {
    var requestString = eval(functionName+"_init" + '()');
  } 
 
  if (requestString) 
  {
    xmlHttp.open("GET", requestString, true);
    xmlHttp.send(null);
  }
}

