var initJS = function () {
	// Test if browser understands the DOM
	if (document.getElementById && document.getElementsByTagName)
	{
		if (document.getElementById("username-field")) {
			document.getElementById("username-field").focus();
		}
		if (document.getElementById("name")) {
			document.getElementById("name").focus();
		}
	}
}

/*
 * Display a message to the user in div element with id="msgbox"
 */
var showMsg = function (msgTxt) {
	var msgBox = document.getElementById("msgbox");
	msgBox.innerHTML = '<a href="javascript:hideMsg();"><img src="images/close.gif" style="float:right" /></a><p>' + msgTxt + '</p>';
	msgBox.style.display = "block";
}
/*
 * Hide message to the user in div element with id="msgbox"
 */
var hideMsg = function () {
	var msgBox = document.getElementById("msgbox");
	msgBox.style.display = "none";
}

/* Log user action using an Ajax call, then submit form to log into B2020
 * EasyData site.
 */
var goEasyData = function (subId, formId) {
	new Ajax.Request('ajax.php',
	{
		parameters: {action: 'logEasyData',
					 subId: subId},
		method: 'get',
		onSuccess: function(transport) {
			var myJson = eval("(" + transport.responseText + ")");
		},
		onFailure: function() {
			alert("failure");
		}
	});

	var subForm = document.getElementById(formId);
	subForm.submit();
}
/* Submit form to log into EasyXL.
 */
var goEasyXL = function (subId) {
	new Ajax.Request('ajax.php',
	{
		parameters: {action: 'logEasyData',
					 subId: subId},
		method: 'get',
		onSuccess: function(transport) {
			var myJson = eval("(" + transport.responseText + ")");
		},
		onFailure: function() {
			alert("failure");
		}
	});

	var subForm = document.getElementById('formeasyxl');
	subForm.submit();
}

/* Ensure that user filled in all required fields and check if sign in detalis
 * are valid and display relevant messages.
 */
var validateSignInForm = function (Form) {
	var GoAhead = true;
	var Focus = null;

	var Username = "";
	var Password = "";

	if (!Form.username.value) {
		if (!Focus) {
			Focus = Form.username;
		}
		GoAhead = false;
	} else {
		Username = Form.username.value;
	}

	if (!Form.password.value) {
		if (!Focus) {
			Focus = Form.password;
		}
		GoAhead = false;
	} else {
		Password = Form.password.value;
	}

	if (!GoAhead && Focus) {
		Focus.focus();
	}

	if (!GoAhead) {
		warningMsg(document.getElementById("signinmsg"), "Please fill in all the fields.");
	} else {
		new Ajax.Request('ajax.php', {
			parameters: {
				action: 'login',
				username: Username,
				password: Password
			},
			method: 'get',
			onSuccess: function(transport){
				var Response = transport.responseText || "no response text";
				var P = eval("(" + transport.responseText + ")");

				if (P.auth) {
					Form.submit();
				}
				else {
					Form.username.value = "";
					Form.password.value = "";
					warningMsg(document.getElementById("signinmsg"), "Incorrect login details. Please try again.");

					Form.username.focus();
				}
			},
			onFailure: function() {
				var OldMsg = document.getElementById("signinmsg");
				var NewMsg = document.createElement("p");
				NewMsg.id = "signinmsg";
				NewMsg.className = "redtext";
				NewMsg.appendChild(document.createTextNode("An error occured while trying to connect to the server. Please try again later."));
				OldMsg.parentNode.replaceChild(NewMsg, OldMsg);
			}
		});
	}
	return false;
}
/**
 * Display warning message relating to incorrect form fields.
 */
var warningMsg = function(Elem, MsgTxt) {
	var NewMsg = document.createElement("span");
	NewMsg.className = "redtext";
	NewMsg.appendChild(document.createTextNode(MsgTxt));
	if (Elem.getElementsByTagName("span")[0]) {
		var OldMsg = Elem.getElementsByTagName("span")[0];
		Elem.replaceChild(NewMsg, OldMsg);
	} else {
		Elem.appendChild(NewMsg);
	}
}
/**
 * Remove warning messages when form fields have been corrected.
 */
var removeWarningMsg = function (Elem) {
	if (Elem.getElementsByTagName("span")[0]) {
		var OldMsg = Elem.getElementsByTagName("span")[0];
		Elem.removeChild(OldMsg);
	}
}

