
/*********************************************/
/*        GENERAL AJAX FUNCTIONS             */
/*********************************************/
	var sendReq = getXmlHttpRequestObject();
	var receiveReq = getXmlHttpRequestObject();

	function getXmlHttpRequestObject(service, onComplete, method, params) {
		var xml_response;
		if (window.XMLHttpRequest) {
			xml_response = new XMLHttpRequest();
			//return new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			xml_response = new ActiveXObject("Microsoft.XMLHTTP");
			//return new ActiveXObject("Microsoft.XMLHTTP");
		} else {
			document.getElementById('p_status').innerHTML =
			'Status: Cound not create XmlHttpRequest Object.' +
			'Consider upgrading your browser.';
			return;
		}
		if(onComplete){
			getResponse(xml_response, service, onComplete, method, params);
		}

		return xml_response;


	}
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}	
var tmp=new Object();
//test for js libraries and use their onload handler if found
if(window.Prototype){
	//prototype found
	Event.observe(window, "load", initLoginEvents);
} else if(window.MooTools){
	window.addEvent('domready', initLoginEvents);
} else if(window.jQuery){
	jQuery.noConflict();
	jQuery(document).ready(initLoginEvents);
} else {
	addLoadEvent(initLoginEvents);
}
function initLoginEvents()
{	var docBody=(document.getElementsByTagName('body'))[0];
	initializeOverlay("pop_back");
	//Fix for IE resizing issue (BEGIN)
	document.getElementsByTagName("body")[0].className = document.getElementsByTagName("body")[0].className;
	document.getElementsByTagName("body")[0].onresize =
		function()
		{
			document.getElementsByTagName("body")[0].className = document.getElementsByTagName("body")[0].className;
		};
	//Fix for IE resizing issue (END)
	loadUserName(true);	
	if (!$("pop_back"))
	{
		var divBack=document.createElement("div");
		divBack.setAttribute("class","back_alpha hidden");
		divBack.setAttribute("id","pop_back");
		docBody.appendChild(divBack);
	} 
}

function initializeOverlay(id) {
	var objBody = $(id);
	if (!objBody)
	{
		objBody = document.getElementsByTagName("body").item(0);
	    overlayBack = document.createElement("div");
	    overlayBack.setAttribute("class","back_alpha hidden");
	    overlayBack.setAttribute("id",id);
	    objBody.insertBefore(overlayBack, objBody.firstChild);
    }
}

//Interval holder to allow removal
var insiderUserNameInterval;

function loadUserName(halt)
{
	var spans = document.getElementsByTagName("span");
	var span;
	var name = getUserFirstName();
	for (var i=0; i<spans.length; i++)
	{
		span = spans[i];
		if (span.className == "insider_first_name")
		{
			span.innerHTML = name;
		}
	}
	if(halt && insiderUserNameInterval)
	{
		clearInterval(insiderUserNameInterval);
	}
	else if(!insiderUserNameInterval)
	{
		insiderUserNameInterval = setInterval(loadUserName, 500);
	}
}
loadUserName();

//login function
function doLogin() { 
	var loginForm=$('loginForm');
	if (!loginForm.insiderEmail.value)
	{
		showMessage("Please enter your email address.");
	}
	else
	{	
		loginForm.password.value=hex_md5(loginForm.pwd.value);	
		loginForm.aetv_redirect.value=location.href;
		loginForm.submit();
	}
}

function keyEnter(e) {
	var evt = e || window.event;
	if (evt.keyCode == 13){
		evt.cancelBubble = true;
		evt.returnValue = false;
    evy.preventDefault();
	  }else{
	    return true;
	   }
}

function doLoginOverlay() { 
	var loginForm=$('loginForm2');
	
	if (!loginForm.insiderEmail.value)
	{
		showMessage("Please enter your email address.");
		return false;
	}
	
	loginForm.password.value=hex_md5(loginForm.pwd.value);	
	loginForm.aetv_redirect.value="/insider/index.jsp"; //location.href;
	loginForm.submit();
}


//forgotten password AJAX request function
function doRecoverPassword(){
	var memberName=$('mail').value;
	tmp['ajaxMsg2']=$("ajaxMsg2").innerHTML;
	if(validateForgot(memberName,"ajaxMsg2")){
		$("ajaxMsg2").innerHTML = "Please wait...";
		if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
			//alert('${deleteMessages}?'+idsValues);
			receiveReq.open("GET", "/insider/PasswordRecovery.do?email="+memberName+"&formAction=recoverPassword", true);
			//receiveReq.open("GET", '../index.jsp', true);
			receiveReq.onreadystatechange = handleRecoverPassword; 
			receiveReq.send(null);
		}
	}
	return false;
}

function handleRecoverPassword(){
	if (receiveReq.readyState == 4) {
		$("ajaxMsg2").innerHTML=tmp['ajaxMsg2'];	
		showMsg(receiveReq.responseText,"ajaxMsg2","Close","pop_forgot");
		return true;
	}
}

//forgotten password AJAX request function
function doRecoverLWPassword() { 
	var memberName=$('mail').value;
	tmp['ajaxMsg2']=$("ajaxMsg2").innerHTML;
	if(validateForgot(memberName,"ajaxMsg2")){
		dojo.byId("ajaxMsg2").innerHTML = "Please wait..."; 
		dojo.xhrGet( { 
			
			url: "PasswordRecovery.do?email="+memberName+"&formAction=recoverPassword&lw=true",
			handleAs: "text",		
			timeout: 20000, // Time in milliseconds
	
			// The LOAD function will be called on a successful response.
			load: function(response, ioArgs) { 
			$("ajaxMsg2").innerHTML=tmp['ajaxMsg2'];	
				showMsg(response,"ajaxMsg2","Close","pop_forgot");
			  return true; 
			},
	
			// The ERROR function will be called in an error case.
			error: function(response, ioArgs) { 
				console.error("HTTP status code: ", ioArgs.xhr.status); 
				return false; 
			}
		});
	}
	return false;
}


//remember me
function doRemember(close)
{	
	var msg="By selecting \"remember me\" you will stay logged into this computer until you click logout. If this is a public computer please do not use this feature.<br/><a href='javascript:hideMessage();'>Ok</a>";
	var checked=($('okRemember').value.length==0);
	if(checked)
	{	
		showMessage(msg);
	}
	$('okRemember').value="true";
}

function okRemember()
{	$('rememberMsg').className="hidden";
	$('ajaxMsg').className="pop_info";
}

//Resend Activation Link AJAX request function
function resendActivationLink(email) { 
	//var email=$('email').value;
	tmp['ajaxMsgResendLink']=$("ajaxMsgResendLink").innerHTML;
	if(validateForgot(email,"ajaxMsgResendLink")){
		dojo.byId("ajaxMsgResendLink").innerHTML = "Please wait..."; 
		dojo.xhrGet( { 
			
			url: "ResendActivation.do?email="+email+"&formAction=resendActivation",
			handleAs: "text",		
			timeout: 20000, // Time in milliseconds
	
			// The LOAD function will be called on a successful response.
			load: function(response, ioArgs) { 
			$("ajaxMsgResendLink").innerHTML=tmp['ajaxMsgResendLink'];	
				showMsg(response,"ajaxMsgResendLink","Close","pop_resendLink");
			  return true; 
			},
	
			// The ERROR function will be called in an error case.
			error: function(response, ioArgs) { 
				console.error("HTTP status code: ", ioArgs.xhr.status); 
				return false; 
			}
		});
	}
}
