function loadXMLDoc(url) 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = emailReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = emailReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}
function emailReqChange(){
	statusDiv = document.getElementById("status"); // <div id="status"></div>
	if (req.readyState == 0){ statusDiv.innerHTML = ""; } // uninitialized
  	if (req.readyState == 1){ statusDiv.innerHTML = "<img src=\"/images/working.gif\">"; } // set up
  	if (req.readyState == 2){ statusDiv.innerHTML = "<img src=\"/images/working.gif\">"; } // sent
 	if (req.readyState == 3){ statusDiv.innerHTML = "<img src=\"/images/working.gif\">"; } // processing
    // only if req shows "complete"
    if (req.readyState == 4){
        // only if "OK"
        if (req.status == 200) {
        	statusDiv.innerHTML = "<img src=\"/images/accept.png\">"; // Image: Complete
	        // ...processing statements go here...
	      	response  = req.responseXML.documentElement;
	      	method    = response.getElementsByTagName('method')[0].firstChild.data;
			result    = response.getElementsByTagName('result')[0].firstChild.data;
	
	      	eval(method + '(\'\', result)');
        } else {
            alert("There was a problem retrieving the XML data:\n");
        }
    }
}

var nameExists;
function checkName(input, response)
{	
	if (response != ''){ 
	    // Response mode
	    message   = document.getElementById('nameCheckFailed');
	    submit    = document.register.submitform;
	    
	    if (response == 1){
	    	nameExists = true;
	    	statusDiv.innerHTML = ""; //got rid of complete image as it may confuse user with the complete green check and error message
	    	message.className = 'registererror';
	    	submit.disabled = true;
	    }else{
	    	nameExists = false;
	    	message.className = 'registererrorhidden';
	    	// only enable if the two emails match
	    	if(emailsMatch)
	    		submit.disabled = false;
	    } 
	}else{
	    // Input mode
	    url  = 'http://www.dvidshub.net/ajax_handler.php?do=checkemail&email=' + input;
	    loadXMLDoc(url);
	}
}

// Compares the email and verification email in form
// email, vemail are ids of fields with the emails.  container holds passed in error message
// use submit button id to disable or enable submit button, if present
var emailsMatch;
function compareEmails(email, vemail, errorMessage, container, submitButton)
{
	var email = document.getElementById(email);
	var vemail = document.getElementById(vemail);
	var container = document.getElementById(container);
	
	if(email.value != vemail.value){
		emailsMatch = false;
		container.innerHTML = '';
		var span = document.createElement('span');
		span.className = 'registererror';
		span.innerHTML = errorMessage;
		container.appendChild(span);
		if(submitButton)
			document.getElementById(submitButton).disabled = true;
	}else{
		emailsMatch = true;
		container.innerHTML = '';		
		if(submitButton){
			// don't enable submit button if there already exists the "email already exists error"
			if(!nameExists){
				document.getElementById(submitButton).disabled = false;
			}
		}
	}
}
