function AJAXInteraction(url, callback) {

    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest () {
      // readyState of 4 signifies request is complete
      if (req.readyState == 4) {
        // status of 200 signifies sucessful HTTP call
        if (req.status == 200) {
          if (callback) callback(req.responseXML);
        }
      }
    }

    this.doGet = function() {
      req.open("GET", url, true);
      req.send(null);
    }
}

function checkUserEmail() {
    	var target = document.getElementById("email_add");
		var url = "/ac2/wp-dyn/emailcheck?email_add=" + encodeURIComponent(target.value); 
	    var ajax = new AJAXInteraction(url, processRequest);
	    ajax.doGet();
}
function checkYob() {
    	var target = document.getElementById("DobYear");
		var url = "/ac2/wp-dyn/emailcheck?year_valid=" + encodeURIComponent(target.value); 
	    var ajax = new AJAXInteraction(url, processRequestYob);
	    ajax.doGet();
}

function AJAXInteraction(url, callback) {

    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest () {
      // readyState of 4 signifies request is complete
      if (req.readyState == 4) {
        // status of 200 signifies sucessful HTTP call
        if (req.status == 200) {
          if (callback) callback(req.responseXML);
        }
      }
    }

    this.doGet = function() {
      req.open("GET", url, true);
      req.send(null);
    }
}
function checkEmptyValue(obj,errorId,msg,status){
	element = document.getElementById(errorId);
	if(obj.value == "" && status == "REQUIRED")
	{
		element.innerHTML = msg;
	}
	else
	{
		if(element.firstChild != null)
		{
			element.firstChild.parentNode.removeChild(element.firstChild);
		}
		if(  obj.value != "" && errorId.indexOf("email") > 0 )
		checkUserEmail();
		if( obj.value != "" && errorId.indexOf("yob") >0)
		checkYob();
		if(obj.value != "" &&  errorId.indexOf("pass") > 0)
		checkPassLength(obj);
	}
}
function checkPasswordMatch(obj1,obj2,errorId){
	element = document.getElementById(errorId);
	if(obj1.value == obj2.value)
	{
		if(element.firstChild != null)
		{
			element.firstChild.parentNode.removeChild(element.firstChild);
		}
	}
	else{
		element.innerHTML = "Oops, your passwords do not appear to match.";
	}
}
function checkPassLength(obj){
	element = document.getElementById("error_pass_6");
	if(element.firstChild != null)
	{
		element.firstChild.parentNode.removeChild(element.firstChild);
	}
	if(obj.value.length <6)
	{
		element.innerHTML = "Please enter a password with 6 to 16 characters.";
	}
	
}
function clearText(obj,errorId){
	element = document.getElementById(errorId);
	if(obj.checked && element.firstChild != null)
	{
		element.firstChild.parentNode.removeChild(element.firstChild);
	}
}

