var req;
var target;
var target1;
var isIE;

function initRequest(url) {
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

function validateUserIdReg() {
    if (!target) target = document.getElementById("userID");
	
	var identification = "";
	var openIDField = document.getElementById("radioOpenID");
	if (openIDField.checked) identification = "openID";
	var emailField = document.getElementById("radioEmail");
	if (emailField.checked) identification = "email";
	var anonymousField = document.getElementById("radioAnonymous");
	if (anonymousField.checked) identification = "anonymous";

    var url = "validate?id=" + escape(target.value)+"&identification="+identification;    
    initRequest(url);
    req.onreadystatechange = processRequest;
    req.open("GET", url, true); 
    req.send(null);
} 

function validateUserId() {
    if (!target) target = document.getElementById("userID");
	
	var identification = "";
	var openIDField = document.getElementById("radioOpenID");
	if (openIDField.checked) identification = "openID";
	var emailField = document.getElementById("radioEmail");
	if (emailField.checked) identification = "login";
	var anonymousField = document.getElementById("radioAnonymous");
	if (anonymousField.checked) identification = "anonymous";
	
    var url = "validateLogin?id=" + escape(target.value)+"&identification="+identification;
    
    initRequest(url);
    req.onreadystatechange = processRequest;
    req.open("GET", url, true); 
    req.send(null);
}

function validateUserIdReset() {
    if (!target) target = document.getElementById("userID");
	
    var url = "validateLogin?id=" + escape(target.value)+"&identification=login";
    
    initRequest(url);
    req.onreadystatechange = processRequest;
    req.open("GET", url, true); 
    req.send(null);
}

function processRequest() {
    if (req.readyState == 4) {
        if (req.status == 200) {
            var message = req.responseXML.getElementsByTagName("valid")[0].childNodes[0].nodeValue;	
			if (message == "existing_user") {
				if (document.getElementById("forgot_pwd_btn") != null) 
					document.user_form.submit();	
			} else {
				setMessageUsingDOM(message);				
			}
        }
    }
}

function setMessageUsingDOM(message) {
	var userMessageElement = document.getElementById("userIdMessage");
	var messageText = "";
	if (message == "error_empty_user_id") 
		messageText = "Please, provide a user Id.";
	else if (message == "error_email_address") 
		messageText = "Not a valid e-mail address";
	else if (message == "error_existing_user")	
		messageText = "User with this Id already exists. Please, choose another Id.";
	else if (message == "error_non_existing_user") 
		messageText = "User with this Id does not exist";
	var messageBody = document.createTextNode(messageText);
	if (userMessageElement.childNodes[0]) 
		userMessageElement.replaceChild(messageBody, userMessageElement.childNodes[0]);
	else 
		userMessageElement.appendChild(messageBody);
}

function disableSubmitBtn() {    
	var submitBtn = document.getElementById("submit_btn");
    submitBtn.disabled = true;
}

function enableSubmitBtn() {    
	var submitBtn = document.getElementById("submit_btn");
    submitBtn.disabled = false;
}

function loading() {
//	document.getElementById('loading').innerHTML = "<img src='icons/ajax-loader-nobg.gif' /> loading...";
}

function checkPassword() {
	var error = "";
	if (document.getElementById("userID").value != "") {
		if (document.user_form.password.value && document.user_form.password_repeat.value) {
			if (document.user_form.password.value != document.user_form.password_repeat.value)
				error = "The passwords you have entered do not match!";
			else if (document.user_form.password.lenth < 6 || document.user_form.password.lenth > 8)
				error = "The password you have entered must be between 6 - 8 characters.";
		}
		else 
			error = "Please enter both password fields!";		
	}
		
	if (error != "") {
		mdiv = document.getElementById("error");
		mdiv.innerHTML = "Error: "+error;	
	} else
		document.user_form.submit();
}	

function clearErrors() {
	mdiv1 = document.getElementById("error");
	if (mdiv1 != null) {
		if (mdiv1.innerHTML != "") 
			mdiv1.innerHTML = "";
	}
	mdiv2 = document.getElementById("error_option");
	if (mdiv2 != null) {
		if (mdiv2.innerHTML != "") 
			mdiv2.innerHTML = "";		
	}		
}

function clearMessage() {
	mdiv = document.getElementById("userIdMessage");
	if (mdiv.innerHTML != "") 
		mdiv.innerHTML = "";
}

function enableOpenIDOption() {
	input = document.getElementById("radioOpenID");
	input.checked = true;
	disableEmailOption();
	disableAnonymousOption();	
	clearErrors();
}

function enableEmailOption() {
	input = document.getElementById("radioEmail");
	input.checked = true;
	disableOpenIDOption();
	disableAnonymousOption();	
	clearErrors();
}

function disableOpenIDOption() {
	input = document.getElementById("radioOpenID");
	input.checked = false;	
	clearOpenIDField();		
}

function disableEmailOption() {
	input = document.getElementById("radioEmail");
	input.checked = false;	
	clearEmailFields();	
}

function disableAnonymousOption() {
	input = document.getElementById("radioAnonymous");
	input.checked = false;	
}

function anomymousSelected() {
	clearOpenIDField();
	clearEmailFields();
	clearErrors();
}

function clearOpenIDField() {
	input = document.getElementById("id_openid_url");
	input.value = "";	
}

function clearEmailFields() {
	input = document.getElementById("userID");
	input.value = "";		
	
	input = document.getElementById("userpassw");
	input.value = "";
	
	input = document.getElementById("userpassw_r");
	if (input != null) input.value = "";	
}

function checkOptionSelected(pagename) {
	if (!document.getElementById("radioOpenID").checked && !document.getElementById("radioEmail").checked && !document.getElementById("radioAnonymous").checked) {
		mdiv = document.getElementById("error_option");
		mdiv.innerHTML = "Select one of the options";		
	}
	else {
		if (document.getElementById("radioEmail").checked && pagename == "register")
			checkPassword();
		else {
			document.user_form.submit();
			loading();			
		}
	}	
}
