function getXMLHttp()
{
  var xmlHttp
  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function MakeRequest(url)
{

  var xmlHttp = getXMLHttp();
  
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }

  xmlHttp.open("GET", url, true); 
  xmlHttp.send(null);
}

function HandleResponse(response)
{
    if (response == "0")//USERNAME OK
    {
         //document.getElementById("UsernameError").style.display = "none";
	 document.getElementById("UsernameErrorTD").innerHTML = '&nbsp;';
         document.getElementById("usernameVerify").value = document.getElementById("SUusername").value;
   }
    if (response == "1")//THE USERNAME IS TAKEN
      {
        document.getElementById("UsernameError").style.display = "";
        document.getElementById("UsernameErrorTD").innerHTML = "*username is in use";
      }
       if (response=="2")//EMAIL IS IN USE
      {
            document.getElementById("EmailError").style.display = ""; 
	    document.getElementById("EmailErrorTD").innerHTML = "*email is in use";
      }
 
        
    if(response=="3")//EMAIL OK
      { 
         //document.getElementById("EmailError").style.display = "none";
	 document.getElementById("EmailErrorTD").innerHTML = '&nbsp;';
         document.getElementById("emailVerify").value = document.getElementById("SUemail").value;
      }   
}

function checkName()
{
    var name = document.getElementById("SUname").value;
    if (name == "")
    {
        document.getElementById("NameError").style.display = "";
        document.getElementById("NameErrorTD").innerHTML = "*field cannot be left blank" ;
    }
    else if (name.length < 3)
    {
        document.getElementById("NameError").style.display = "";
        document.getElementById("NameErrorTD").innerHTML = "*your name is too short" ;      
    }
    else
    {
        //document.getElementById("NameError").style.display = "none";
	document.getElementById("NameErrorTD").innerHTML = '&nbsp;';
        document.getElementById("nameVerify").value = name;
    }
}

//function isValid(name)
//{
//    var allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._()@"
//    
//    for (var i=0; i< name.length; i++) {
//       if (allowed.indexOf(name.charAt(i)) == -1)
//          return false;
//    }
//    return true;
//}

function isValid(name)
{
    var allowed = /^[0-9a-zA-Z_.@()]*$/
    
    var testresults;
    
    if (allowed.test(name))
    {
        testresults = true;
    }
    else
    {
        testresults = false;
    }
    
    return testresults;
}

function checkUsername()
{
    var username = document.getElementById("SUusername").value;
    
    if (username == "")
    {
        document.getElementById("UsernameError").style.display = "";
        document.getElementById("UsernameErrorTD").innerHTML = "*field cannot be left blank" ;
    }
    else
    {
        if (!isValid(username))
        {
            document.getElementById("UsernameError").style.display = "";
            document.getElementById("UsernameErrorTD").innerHTML = "*only a-z,A-Z,0-9, _ () are allowed" ;           
        }
        else
        {
            MakeRequest("./checkcred.php?Uname="+username);
        }
    }
}
function checkEmailChars(email)
{
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-][^_]{0,66})\.([a-z]{2,4}(?:\.[a-z]{2})?)$/i
    var testresults;
    if (filter.test(email))
        testresults = true
    else
    {
        testresults = false
    }
    return (testresults)
}

function checkEmail()
{
    var email = document.getElementById("SUemail").value;
    var EValid = false;
    if (email == "")
    {
        document.getElementById("EmailError").style.display = "";
        document.getElementById("EmailErrorTD").innerHTML = "*field cannot be left blank" ;
    }
    else
    {
        EValid = checkEmailChars(email);
    
        if (EValid)
        {
            MakeRequest("./checkcred.php?Email="+email);
        }
        else
        {
            document.getElementById("EmailError").style.display = "";
            document.getElementById("EmailErrorTD").innerHTML = "*invalid email" ;         
        }
    }
}

function checkPass()
{
   var pass = document.getElementById("SUpass").value;
    
    if (pass == "")
    {
        document.getElementById("PasswordError").style.display = "";
        document.getElementById("PasswordErrorTD").innerHTML = "*field cannot be left blank" ;
    }
    else if (pass.length < 6)
    {
        document.getElementById("PasswordError").style.display = "";
        document.getElementById("PasswordErrorTD").innerHTML = "*your password is too short" ;      
    }
    else
    {
        //document.getElementById("PasswordError").style.display = "none";
	  document.getElementById("PasswordErrorTD").innerHTML = '&nbsp;';
    }    
}

function checkPass2()
{
   var pass = document.getElementById("SUpass2").value;
    
    if (pass != document.getElementById("SUpass").value)
    {
        document.getElementById("PasswordError").style.display = "";
        document.getElementById("PasswordErrorTD").innerHTML = "*passwords dont match" ;
    }
    else
    {
        //document.getElementById("PasswordError").style.display = "none";
	document.getElementById("PasswordErrorTD").innerHTML = '&nbsp;';
    }    
}

function checkSUform()
{
    var formValid = true;
    var errMsg = "missing or invalid input";
    if (document.getElementById("SUname").value != document.getElementById("nameVerify").value)
    {
        document.getElementById("NameError").style.display = "";
        document.getElementById("NameErrorTD").innerHTML = errMsg;
        formValid = false;
    }
    if (document.getElementById("SUusername").value != document.getElementById("usernameVerify").value)
    {
        document.getElementById("UsernameError").style.display = "";
        document.getElementById("UsernameErrorTD").innerHTML = errMsg;
        formValid = false;
    }
    if (document.getElementById("SUemail").value != document.getElementById("emailVerify").value)
    {
        document.getElementById("EmailError").style.display = "";
        document.getElementById("EmailErrorTD").innerHTML = errMsg ;         
        formValid = false;
    }
    if (document.getElementById("SUpass").value != document.getElementById("SUpass2").value || document.getElementById("SUpass").value == '')
    {
        document.getElementById("PasswordError").style.display = "";
        document.getElementById("PasswordErrorTD").innerHTML = "*passwords dont match" ;        
        formValid = false;
    }
    if (formValid)
    {
        //document.getElementById("submitBtn").src = "http://www.fullim.com/site/components/com_community/templates/default/images/largewait.gif";
	document.getElementById("submitTD").style.display = "none";
        document.getElementById("submitPreLoader").style.display = "";
    }
        
    return formValid;
}