// brief	return object for multiple browser support
// author 	olov@olovsundstrom.com, Kråmagnom 2006
// version	1
function getObj(id) {
	if (document.getElementById) {					// FF
		return document.getElementById(id);
	} else if (document.all) {						// IE
		return document.all[id];
	} else {
	  return document.getElementById(id); 
	}
}

// brief	return object for httpreuest
// author 	olov@olovsundstrom.com, Kråmagnom 2006
//version	1
function getRequestObj() {
	
	request = null;
	
	// DOM browser
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
		if (request.overrideMimeType) request.overrideMimeType('text/xml')
	
	// IE browser
	} else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject("msxml2.XMLHTTP");
		} catch(e) {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	
	} else {
	}
	
	return request;
}

// brief	validate a form
// author 	olov@olovsundstrom.com, Kråmagnom 2006
// version 	1
var username_status = true;

function validateForm() {
	
	var settings = new validationSettings();
	var valid = true;
	var errmess = "";
		
	// Username
	if (settings.username) {
		
		xObj = getObj(settings.username);
		
		if (xObj.value == "" || !username_status) {
			if (settings.username_color) xObj.style.backgroundColor = settings.username_color;
			if (settings.username_mess) errmess += "\n -" + settings.username_mess;
		} else {
			xObj.style.backgroundColor = settings.returncolor;
		}
		

	}
	// Password
	if (settings.password1 && settings.password2) {
		
		xObj1 = getObj(settings.password1);
		xObj2 = getObj(settings.password2);
		
		if ((xObj1.value == "") || (xObj1.value != xObj2.value)) {
			if (settings.password_color) {
				xObj1.style.backgroundColor = settings.password_color;
				xObj2.style.backgroundColor = settings.password_color;
			}
			if (settings.password_mess) errmess += "\n -" + settings.password_mess;
			valid = false;
		} else {
			xObj1.style.backgroundColor = settings.returncolor;
			xObj2.style.backgroundColor = settings.returncolor;
		}
	}
	// Email
	if (settings.email) {
		xObj = getObj(settings.email);
		if ((xObj.value == "") || (xObj.value.indexOf("@") == -1)) {
			if (settings.email_color) xObj.style.backgroundColor = settings.email_color;
			if (settings.email_mess) errmess += "\n -" + settings.email_mess;
			valid = false;
		} else {
			xObj.style.backgroundColor = settings.returncolor;
		}
		
	}
	
	// SKiva
	if (settings.treperar1) {
		xObj = getObj(settings.treperar1);
		if ((xObj.value == "0")) {
			if (settings.treperar1_color) xObj.style.backgroundColor = settings.treperar1_color;
			if (settings.treperar1_mess) errmess += "\n -" + settings.treperar1_mess;
			valid = false;
		} else {
			xObj.style.backgroundColor = settings.returncolor;
		}
		
	}
	
	
	// Notnull
	notnull = false;
	for (i=0; i<settings.notnull.length; i++) {
		xObj = getObj(settings.notnull[i]);
			if (xObj.value == "") {
				notnull = true;
				if (settings.notnull_color) xObj.style.backgroundColor = settings.notnull_color;
				valid = false;
			} else {
				xObj.style.backgroundColor = settings.returncolor;
			}
	}
	if (notnull && settings.notnull_mess) {
		errmess += "\n -" + settings.notnull_mess;
	}
	if (errmess.length > 0) {
		errmess = settings.mess_head + "\n" + errmess + "\n\n" + settings.mess_foot;
		alert(errmess);
	}
	
	return valid;
}

// brief	validate username on-the-fly with AJAX
// author 	olov@olovsundstrom.com, Kråmagnom 2006
// version	1
function validateUsername() {
	
	var http_request;
	if ((http_request = getRequestObj()) == null) {
	
	return false;				//check if request is supported
	
	} else {
		
	return true;	
	}
	var settings = new validationSettings();
	var xUsername = getObj(settings.username);
	var xSubmitbutton = getObj(settings.submitbutton);
	var url = settings.username_validationurl + '?username=' + xUsername.value;
	
	xSubmitbutton.disabled = true;												//disable submitbutton while validating
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.responseText != "true") {
				username_status = false;
			} else {
				username_status = true;
			}
			xSubmitbutton.disabled = false;
		}
	}
	http_request.open('GET', url, true);
	http_request.send(null);
}