var g_processing = false;

function Set_Cookie( name, value, expires, path, domain, secure ) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	/*
	if the expires variable is set, make the correct
	expires time, the current script below will set
	it for x number of days, to make it for hours,
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
	( ( path ) ? ";path=" + path : "" ) +
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ ) {
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );

		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name ) {
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 ) {
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ) {
		return null;
	}
}


function initThisPage() {
	// add a property to all the inputs of type="text" that captures the original value of the field.
	// so we can compare later for colouring
	var elArr = document.getElementsByTagName("input");
	var elItem,i;
	for (i in elArr) {
		elItem = elArr[i];
		if (elItem.type == "text" || elItem.type == "password") {
			if (elItem.addEventListener) {
				elItem.addEventListener("keyup", submitIfEnter, false);
			} else if (elItem.attachEvent) { // must be IE.. so try attachEvent
				elItem.attachEvent("onkeyup", submitIfEnter);
			} else {
				alert("browser not supported...");
			}
		}
	}
	// get email address cookie for dumb non DHTML browsers... (e.g. all of them...!!?)
	var userEmailCookie = Get_Cookie("user_email");
	if (userEmailCookie) {
		var tmpEl = document.getElementById("user_email");
		tmpEl.value = userEmailCookie;
		var tmpEl = document.getElementById("pwd_string");
		tmpEl.focus();
	}
}

function submitIfEnter(e) {
	var evt = (e) ? e : window.event; // fix IE
	var theKey = e.keyCode;
	if (theKey === 13) {
		doLogin();
	}
}

function doLogin() {
	// call psykees/authAPI.php to check user/password using JSONRequest...
	if (g_processing) {
		return;
	}
	g_processing = true;

	var objEmailText = document.getElementById("user_email");
	var objPassword = document.getElementById("pwd_string");
	objEmailText.disabled = true;
	objPassword.disabled = true;
	startProgressAni();

	// assemble JSON object
	var blobject = {};
	blobject.user_email = objEmailText.value;
	blobject.pwd_string = objPassword.value;
	// send JSON object
	var jsSerialNumber = JSONRequest.post("psykees/authAPI.php?action=LoginAuthJS", blobject, loginResult);
}
function loginResult(sn, result, error) {
	// the JSONRequest calls this function when it's done, return error or redirect.
	var objEmailText = document.getElementById("user_email");
	var objPassword = document.getElementById("pwd_string");
	if (error) {
		objEmailText.disabled = false;
		objPassword.disabled = false;
		alert(error);
		window.setTimeout("endProgressAni(); g_processing = false;", 300);
	} else if (result.error_text !== "") {
		objEmailText.disabled = false;
		objPassword.disabled = false;
		alert(result.error_text);
		window.setTimeout("endProgressAni(); g_processing = false;", 300);
	} else {
		// add email address cookie for dumb non DHTML browsers... (e.g. all of them...!!?)
		Set_Cookie("user_email", objEmailText.value, 365, "/", "", "");
		objEmailText.disabled = false;
		objPassword.disabled = false;
		window.location = "index_choose_deck.html?user_id="+ result.user_id +"&login_session="+ result.login_session;
		/*alert("user_id: "+ result.user_id +" login_session: "+ result.login_session);
		window.setTimeout("endProgressAni(); g_processing = false;", 300);
		endProgressAni();*/
	}
}
function startProgressAni() {
	var progDiv = document.getElementById("progressDiv");
	progDiv.style.display = "block";
}
function endProgressAni() {
	var progDiv = document.getElementById("progressDiv");
	progDiv.style.display = "none";
}

