//ad event to page load
//addEvent(window, 'load', init);

var xmlobject;
var request_in_progress = false;

function init() {
	if (email != "") {
		var url = 'Update';

		var pars = "activity=init&Email=" + email;

		var myAjax = new Ajax.Request(url, {
			method : 'post',
			parameters : pars,
			onComplete : initResponse
		});
	}
}

function initResponse(originalRequest) {
	var response = originalRequest.responseText;

	// load response into xml object

	// get response string and make convert to XML
	try {
		// Firefox, Opera 8.0+, Safari
		xmlobject = (new DOMParser()).parseFromString(response, "text/xml");
	} catch (e) {
		// Internet Explorer
		xmlobject = new ActiveXObject("Microsoft.XMLDOM");
		xmlobject.async = "false";
		xmlobject.loadXML(response);
	}

	// get message node
	var xMessage = xmlobject.childNodes[0].childNodes[0];

	// get message type
	var mType = xMessage.attributes[0].value;

	// get message status
	var mStatus = xMessage.attributes[1].value;

	// if no errors
	if (mStatus == "ok") {
		if ($('message'))
			$('message').innerHTML = "Data was loaded";
		var xRecord = xmlobject.childNodes[0].childNodes[1].childNodes;

		for ( var i = 0; i < xRecord.length; i++) {
			if ($(xRecord[i].attributes[0].value)) {
				if (xRecord[i].firstChild.nodeValue == "null")
					$(xRecord[i].attributes[0].value).value = "";
				else if (xRecord[i].attributes[0].value.indexOf("Opt") != -1) {
					if (xRecord[i].firstChild.nodeValue == 1) {
						$(xRecord[i].attributes[0].value).checked = true;
					} else {
						$(xRecord[i].attributes[0].value).checked = false;
					}
				} else
					$(xRecord[i].attributes[0].value).value = xRecord[i].firstChild.nodeValue;
			}
		}
	} else// display errors
	{
		// get message error type
		var mEType = xMessage.attributes[2].value;
		// get message value
		var mValue = xMessage.firstChild.nodeValue;
		$('message').innerHTML = mValue;
	}

}

var requiresLoginOpt;
function requiresLogin(callbackFnct, targetUrl) {
	requiresLoginOpt = {
		callbackFnct : callbackFnct,
		targetUrl : targetUrl
	};
	
	if (typeof (userId) == 'undefined' || userId == null) {
		openLoginLB();
	} else {
		if (requiresLoginOpt.callbackFnct
				&& requiresLoginOpt.callbackFnct != null) {
			requiresLoginOpt.callbackFnct();
			return;
		}
		if (requiresLoginOpt.targetUrl && requiresLoginOpt.targetUrl != null) {
			document.location.href = requiresLoginOpt.targetUrl;
			return;
		}
		window.location.reload();
	}
}
function openLogin() {
	requiresLoginOpt = null;
	openLoginLB();
}
function openLoginLB() {
	jQuery('#loginBox').jqmShow();
}
function errorLB(message){
	jQuery('#alertWindow #message').html(message);
	jQuery('#alertWindow').jqmShow();
}

function login() {
    if(!request_in_progress) {
        request_in_progress = true;
        var url = 'Login';

        var pars = $('login').serialize();

        var myAjax = new Ajax.Request(url, {
            method : 'post',
            parameters : pars,
            onComplete : showLoginResponse
        });
    }
}

// response for login
function showLoginResponse(originalRequest) {
    request_in_progress = false;
    
	var response = originalRequest.responseText;

	var xmlobject;

	// get response string and make convert to XML
	try {
		// Firefox, Opera 8.0+, Safari
		xmlobject = (new DOMParser()).parseFromString(response, "text/xml");
	} catch (e) {
		// Internet Explorer
		xmlobject = new ActiveXObject("Microsoft.XMLDOM");
		xmlobject.async = "false";
		xmlobject.loadXML(response);
	}

	// get message node
	var xMessage = xmlobject.childNodes[0].childNodes[0];

	// get message type
	var mType = xMessage.attributes[0].value;

	// get message status
	var mStatus = xMessage.attributes[1].value;

	if (mStatus == "ok") {
		if (jQuery('.rememberMe input').is(':checked')){	
			jQuery.cookie('remeberMeEmail', jQuery('#loginEmail').val(), { expires: 365 } );
		} 
		if (requiresLoginOpt && requiresLoginOpt != null) {
		// Close the login box
			if (requiresLoginOpt.callbackFnct
					&& requiresLoginOpt.callbackFnct != null) {
				requiresLoginOpt.callbackFnct();
			}
			if (requiresLoginOpt.targetUrl
					&& requiresLoginOpt.targetUrl != null) {
				document.location.href = requiresLoginOpt.targetUrl;
				return;
			}
			window.location.reload();
		} else {
			window.location.reload();
		}
	} else {
		// get message error type
		var mEType = xMessage.attributes[2].value;
		// get message value
		var mValue = xMessage.firstChild.nodeValue;

		if (mValue == 'START.Message::User Not Found')
			$('result').innerHTML = "Username isn't on file.";
		else if (mValue == 'START.Message::Password Does Not Match')
			$('result').innerHTML = "You have entered an incorrect password.";
		else
			$('result').innerHTML = mValue;
	}

}

// logout
function logout() {
	var url = 'Logout';

	var pars = "";

	var myAjax = new Ajax.Request(url, {
		method : 'post',
		parameters : pars,
		onComplete : showLogoutResponse
	});
}

// response to logout
function showLogoutResponse(originalRequest) {
	window.location.reload();
	/*
	 * var response = originalRequest.responseText; $('result').innerHTML = "You
	 * are logged out."; $('login').style.display = "block";
	 * $('logout').style.display = "none";
	 */
}

// retreive forgotten password
function forgot() {
	$('resultforgot').innerHTML = "Connecting...";

	var url = 'Forgot';

	var pars = $('forgot').serialize();

	var myAjax = new Ajax.Request(url, {
		method : 'post',
		parameters : pars,
		onComplete : showForgotResponse
	});
}

// response to forgot()
function showForgotResponse(originalRequest) {
	var response = originalRequest.responseText;
	if (response.indexOf('START.Message::User Not Found') != -1)
		$('resultforgot').innerHTML = "Username isn't on file. Please make sure you typed it correctly or register to get an account.";
	else
		$('resultforgot').innerHTML = response;

	setTimeout('doneForgot()', 10000);
}

function doneForgot() {
	$('resultforgot').innerHTML = "&nbsp;";
}

// save updates made to profile
function save(form) {
	var url = 'SaveProfile';

	var pars = "source=" + form + "&" + $(form).serialize();

	var myAjax = new Ajax.Request(url, {
		method : 'post',
		parameters : pars,
		onComplete : showForgotResponse
	});
}

// add event
function addEvent(obj, sType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(sType, fn, false);
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on" + sType, fn);
	} else {
		alert("Handler could not be attached");
	}
}

function revert(myType) {
	var xRecord = xmlobject.childNodes[0].childNodes[1].childNodes;
	var bottom;
	var top;

	switch (myType) {
	case "contactinfo":
		bottom = 1;
		top = 10;
		break;

	case "healthinfo":
		bottom = 10;
		top = 16;
		break;

	case "preferences":
		bottom = 16;
		top = 21;
		break;

	}

	for ( var i = bottom; i < top; i++) {
		if ($(xRecord[i].attributes[0].value)) {
			if (xRecord[i].firstChild.nodeValue == "null")
				$(xRecord[i].attributes[0].value).value = "";
			else if (xRecord[i].attributes[0].value.indexOf("Opt") != -1) {
				if (xRecord[i].firstChild.nodeValue == 1) {
					$(xRecord[i].attributes[0].value).checked = true;
				} else {
					$(xRecord[i].attributes[0].value).checked = false;
				}
			} else
				$(xRecord[i].attributes[0].value).value = xRecord[i].firstChild.nodeValue;
		}
	}

}

function pu(URL) {
	day = new Date();
	id = day.getTime();
	eval("page"
			+ id
			+ " = window.open(URL, '"
			+ id
			+ "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=585,height=600,left = 502.5,top = 197.5');");
}

