var g_req = null;

var QTCL_STATUS = 1;

var QT_STATUS_LOGIN_SUCCESS = 370;
var QT_STATUS_SEND_BETA_REQ_SUCCESS = 360;
var QT_STATUS_SEND_BETA_REQ_FAIL = -360;
var QT_STATUS_LOGIN_FAIL = -370;
var QT_STATUS_FORGOT_PASS__USER_NOT_FOUND = -430;
var QT_STATUS_FORGOT_USERNAME__USER_NOT_FOUND = -431;
var QT_STATUS_FORGOT_PASS__EMAIL_SENT = 430;
var QT_STATUS_FORGOT_USERNAME__EMAIL_SENT = 431;
var QT_STATUS_SUCCESS = 1;
var QT_STATUS_NONE = 0;
var QT_STATUS_FAIL = -1;
var QT_STATUS_SERVER_FAIL = -2;
var QT_STATUS_CLIENT_MSG_FAIL = -3;

var	AJAX_PARAM_DOC_ID = 27;
var	AJAX_PARAM_EMAIL = 37;
var	AJAX_PARAM_NAME = 35;
var	AJAX_PARAM_PASSWORD = 80;
var AJAX_PARAM_PROJ_ID = 52;
var	AJAX_PARAM_USERNAME = 79;

var QTCL_END = "ze";

var COLOR_FAIL = "#f02525";
var COLOR_FAIL_DK = "#af0000";
var COLOR_SUCCESS = "#008f00";

var g_status = 0;

var NUM_ISSUES = 5;
var ISSUE__NONE = -1;
var ISSUE__FORGET_PASS = 0;
var ISSUE__FORGET_USERNAME = 1;
var ISSUE__RETRY = 2;
var ISSUE__NO_ACCOUNT = 3;
var ISSUE__OTHER = 4;

function fnDoesStrHaveValue(str_in)
{
	if (typeof(str_in)=="undefined")
		return false;
	if (""==str_in)
		return false;
	return true;
}

function fnSetInnertext(str_elem, str_value)
{
	var str_value2 = "";
	if (document.getElementById(str_elem)!= null)
	{
		if (fnDoesStrHaveValue(str_value))
			str_value2 = str_value;

		if (browser.isIE)
			document.getElementById(str_elem).innerText = str_value2;
		else
			document.getElementById(str_elem).textContent = str_value2;
	}
}

function fnSetInnerhtml(str_elem, str_value)
{
	var str_value2 = "";
	if (document.getElementById(str_elem)!= null)
	{
		if (fnDoesStrHaveValue(str_value))
			str_value2 = str_value;
		document.getElementById(str_elem).innerHTML = str_value2;
	}
}

function fnGetInnerhtml(str_elem)
{
	if (document.getElementById(str_elem)!= null)
		return document.getElementById(str_elem).innerHTML;
	return "";
}

function fnParamToURL(n_ajax_param)
{	
	return (";" + n_ajax_param + "=");
}

function fnOnKeyPress_Password(evt)
{
	var keycode = (evt) ? evt.keyCode:((window.event)?event.which:null);
	if (13 == keycode)
		fnLogin();
}

function fnOnKeyPress_Email(evt)
{
	var keycode = (evt) ? evt.keyCode:((window.event)?event.which:null);
	if (13 == keycode)
		fnSendBetaRequest();
}

function fnShow(elem)
{
	if (null != elem)
	{
		if (document.getElementById(elem))
		{
			document.getElementById(elem).style.display = "";
			document.getElementById(elem).style.visibility = "visible";
		}
	}
}
function fnHide(elem)
{
	if (null != elem)
	{
		if (document.getElementById(elem))
		{
			document.getElementById(elem).style.display = "none";
			document.getElementById(elem).style.visibility = "hidden";
		}
	}
}
function fnSetColor(elem, str_color)
{
	if (null != elem)
	{
		if (document.getElementById(elem))
			document.getElementById(elem).style.color = str_color;
	}
}
function fnSetRel(elem)
{
	if (null != elem)
	{
		if (document.getElementById(elem))
			document.getElementById(elem).style.position = "relative";
	}
}


// Safely parse numbers, so that if the input string is invalid, we return the default given
function fnSafeParseInt(str_num, n_default)
{
	if (typeof(str_num)=="undefined")
		return n_default;

	if (str_num == "")
		return n_default;

	if (!str_num)
		return n_default;

	var n_out = n_default;

	try
	{
		n_out = parseInt(str_num,10);
	}
	catch (err)
	{
		n_out = n_default;
	}
	return n_out;
}

function fnShowLoginErr()
{
	xHeight("div_login_box_body", 190);
	fnHide("div_nav_bar_login_result_err");
	var str_out = "Incorrect username or password.";
	fnSetInnerhtml("div_nav_bar_login_result_err", str_out);
	fnShow("div_nav_bar_login_result_err");
}
function fnShowLoginErr_invalid()
{
	xHeight("div_login_box_body", 158);
	fnHide("div_nav_bar_login_result_err");
	//alert(
	fnSetInnertext("div_nav_bar_login_result_err", "Please enter a \"username\" and \"password\".");
	fnShow("div_nav_bar_login_result_err");
}
function fnShowLoginErr_browser()
{
	xHeight("div_login_box_body", 158);
	fnHide("div_nav_bar_login_result_err");
	fnSetInnerhtml("div_nav_bar_login_result_err", "Quasitime currently only supports IE 7+ and Firefox 2+ browsers.<br><br> You can download IE 7 for free by clicking <a href=\"http://www.microsoft.com/windows/downloads/ie/getitnow.mspx\" target=\"_new\">here</a>.<br> You can download Firefox 2 for free by clicking <a href=\"http://www.mozilla.com/en-US/firefox/\" target=\"_new\">here</a>.");
	fnShow("div_nav_bar_login_result_err");
}
function fnShowLoginSpinner()
{
	fnHide("div_nav_bar_login_result_img2");
	fnShow("div_nav_bar_login_result_img2");
	setTimeout('fnSetInnerhtml("div_nav_bar_login_result_img2","<img src=\"spinningq.gif\">")',200);
}
function fnShowLoginSuccess()
{
	xHeight("div_login_box_body", 108);
	fnHide("div_nav_bar_login_result_err");
	fnHide("div_nav_bar_login_result");
	fnHide("div_login_form");
	if (browser.isIE)
	{
		xWidth("div_nav_bar_login_result_img2",50);
		xHeight("div_nav_bar_login_result_img2",52);
		fnShowLoginSpinner();
	}
	else
		document.getElementById('div_nav_bar_login_result_img').style.backgroundImage = 'url(/spinningq.gif)';
	fnSetInnerhtml("div_nav_bar_login_result_text", " &nbsp; Signing into Quasitime...");
	fnSetColor("div_nav_bar_login_result",COLOR_SUCCESS);
	fnShow("div_nav_bar_login_result");
}

function fnShowBetaReqErr()
{
	alert("Error sending request. Please try again later.");
}
function fnShowBetaReqErr_Invalid()
{
	alert("Please enter a \"username\" and \"password\".");
}
function fnShowBetaReqErr_Browser()
{
	alert("Quasitime currently only supports IE 7+ and Firefox 2+ browsers.<br><br> You can download IE 7 for free by clicking <a href=\"http://www.microsoft.com/windows/downloads/ie/getitnow.mspx\" target=\"_new\">here</a>.<br> You can download Firefox 2 for free by clicking <a href=\"http://www.mozilla.com/en-US/firefox/\" target=\"_new\">here</a>.");
}
function fnShowBetaReqSuccess()
{
	alert("We have received your request. We will notify you if you are selected to join the Beta.");
}

function fnProcessQTCL(str_in)
{
	var str_data = ""+str_in;
	// Find end of QT segment to remove any extra characters like trailing "\r\n"
	var ze_index = str_data.lastIndexOf(QTCL_END);	
	if (-1!=ze_index)
	{
		str_data = str_data.slice(0,ze_index);
	}
	
	var array_sets = str_data.split("&");
	var array_setpairs = null;
	var i_sets=0;
	var datatype_code = 0;
	var str_temp ="";
	var bm_data_sent = 0;
	var array_values = null;

	fnHide("div_nav_bar_login_success");
	fnHide("div_nav_bar_login_fail");
	fnHide("div_nav_bar_login_err_invalid");
	fnHide("div_nav_bar_login_err_browser");
	fnHide("div_nav_bar_beta_req_success");
	fnHide("div_nav_bar_beta_req_err");
	fnHide("div_nav_bar_beta_req_err_invalid");
	fnHide("div_nav_bar_beta_req_err_browser");

	for (i_sets=0; i_sets<array_sets.length; i_sets++)
	{
		array_setpairs = array_sets[i_sets].split("=");
		str_temp = array_setpairs[0];
		// if this is the first set, remove the "qt" prefix.
		if (0==i_sets)
			str_temp = str_temp.substring(2);
		datatype_code = fnSafeParseInt(str_temp,0);

		switch (datatype_code)
		{
			case QTCL_STATUS:
			{
				array_values = array_setpairs[1].split("^");
				str_temp = array_values[0];
				g_status = fnSafeParseInt(str_temp,0);
				switch (g_status)
				{
					case QT_STATUS_FORGOT_PASS__USER_NOT_FOUND:
						fnConfigAssistance(QT_STATUS_FORGOT_PASS__USER_NOT_FOUND);
						break;
					case QT_STATUS_FORGOT_USERNAME__USER_NOT_FOUND:
						fnConfigAssistance(QT_STATUS_FORGOT_USERNAME__USER_NOT_FOUND);
						break;
					case QT_STATUS_FORGOT_PASS__EMAIL_SENT:
						fnConfigAssistance(QT_STATUS_FORGOT_PASS__EMAIL_SENT);
						break;
					case QT_STATUS_FORGOT_USERNAME__EMAIL_SENT:
						fnConfigAssistance(QT_STATUS_FORGOT_USERNAME__EMAIL_SENT);
						break;
				}
			}
			break;
		}
	}
}

function processAJAXMsg(strIn)
{
	// first check the type of communication
	if ("qt" == strIn.substring(0,2))
	{
		fnProcessQTCL(strIn);
		return;
	}
	// If if it not one of the above types, then it is not a valid qt msg.
}

function processStateChange()
{
	if (g_req)
	{
		if (g_req.readyState == 4) // Complete
	    {
	    	if (g_req.status == 200) // OK response
	      	{
	      		var str_in = g_req.responseText;
	      		if ((str_in == null) || (str_in == ""))
	      			return;
      			processAJAXMsg(str_in);
		    } // end of request OK
		    g_req = null;
		} // end of request Complete
	}
} 

function fnNull()
{
}

function fnAJAXCall_Post_Sync(str_loc, str_params)
{
	if (window.XMLHttpRequest) // Non-IE browsers or IE7+
    {
    	g_req = new XMLHttpRequest();
	    g_req.onreadystatechange = fnNull;
      	try
      	{
      		// The last param means async when true
       		g_req.open("POST", str_loc, false);
			g_req.setRequestHeader("Content-Type", "text/xml");
			g_req.setRequestHeader("Accept-Encoding","gzip,deflate");
		}
      	catch (e)
      	{
        	alert(e);
      	}
      	g_req.send(str_params);
   		processStateChange();
    }
	else if (window.ActiveXObject) // Old IE
	{
		// Format the url
	  	var newurl = str_loc;
		var progIDs = ['MSXML2.XMLHTTP.6.0', 'Msxml2.XMLHTTP', 'MSXML2.XMLHTTP.3.0'];
		var b_done = 0;
		var i = 0;

        while ((i < progIDs.length) && (!b_done))
        {
 	    	try
 	       	{
				g_req = new window.ActiveXObject(progIDs[i]);
				if (g_req)
					b_done = 1;
          	}
          	catch (ex)
          	{
          		fnLogError(ex);
	      	}
	      	i++;
      	}
      	if (g_req != null)
      	{
	        g_req.onreadystatechange = processStateChange;
      		// The last param means async when true
        	g_req.open("POST", newurl, false);
			g_req.setRequestHeader("Content-Type", "text/xml");
			g_req.setRequestHeader("Accept-Encoding","gzip,deflate");
	        g_req.send(str_params);
      	}
	}
}

function fnGetElemValue(str_elem)
{
	if (document.getElementById(str_elem)!= null)
		return document.getElementById(str_elem).value;
	return "";
}

function fnSetElemValue(elem, str_value)
{
	if (document.getElementById(elem)!= null)
		document.getElementById(elem).value = str_value;
}

function fnAdjust_Box_Sizes()
{
	var elem = null;
	var client_width = xClientWidth();
	var client_height = xClientHeight();
	
	xWidth("div_content_area", client_width-120);
	xHeight("div_content_area", client_height-46);
}

function fnLogin()
{
	if (!( (browser.isIE && browser.versionMajor >= 7) || (browser.isGecko && browser.versionMajor >= 2) || (browser.isSafari)))
	{
		fnShowLoginErr_browser();
		return;
	}
	
	var str_username = fnGetElemValue("input_qt_username");
	var str_password = fnGetElemValue("input_qt_password");
	if (!str_username || str_username=="")
	{
		fnShowLoginErr_invalid();
		return;
	}
	if (!str_password || str_password=="")
	{
		fnShowLoginErr_invalid();
		return;
	}
	
	var str_param = "" + AJAX_PARAM_USERNAME + "=" + str_username;
	str_param += fnParamToURL(AJAX_PARAM_PASSWORD) + str_password;
	
	fnAJAXCall_Post_Sync("/tdt/validateLogin.do", str_param);
	if (QT_STATUS_LOGIN_SUCCESS == g_status)
		document.getElementById("qt_login_form").submit();
	if (browser.isIE)
		fnShowLoginSpinner();	
}

function fnSendBetaRequest()
{
	if (!( (browser.isIE && browser.versionMajor >= 7) || (browser.isGecko && browser.versionMajor >= 2) ))
	{
		fnShowBetaReqErr_Browser();
		return;
	}

	var str_email = fnGetElemValue("input_qt_email");
	if (!str_email || str_email=="")
	{
		fnShowBetaReqErr_Invalid();
		return;
	}

	var str_name = fnGetElemValue("input_qt_name");	
	if (!str_name || str_name=="")
	{
		fnShowBetaReqErr_Invalid();
		return;
	}
	var str_param = "" + AJAX_PARAM_PROJ_ID + "=" + g_proj_id;
	str_param += fnParamToURL(AJAX_PARAM_DOC_ID) + g_doc_id;
	str_param += fnParamToURL(AJAX_PARAM_EMAIL) + str_email;	
	str_param += fnParamToURL(AJAX_PARAM_NAME) + str_name;	
	fnAJAXCall_Post_Sync("/tdt/req4Beta.do", str_param);
}

function fnChangeClass(str_elem, str_newclass)
{
	if (null != str_elem)
	{
		if (document.getElementById(str_elem))
			document.getElementById(str_elem).className = str_newclass;
	}
}

function fnSetChecked(elem)
{
	if (null != elem)
	{
		if (document.getElementById(elem))
			document.getElementById(elem).checked = true;
	}
}
function fnSetUnchecked(elem)
{
	if (null != elem)
	{
		if (document.getElementById(elem))
			document.getElementById(elem).checked = false;
	}
}
function fnGetChecked(str_elem)
{
	if (!str_elem)
		return 0;
	var elem = document.getElementById(str_elem);
	if (!elem)
		return 0;
	if (typeof(elem)=="undefined")
		return 0;
	if (typeof(elem.checked)=="undefined")
		return 0;
	return (elem.checked?1:0);
}

function fnSubmitForgotPass()
{
	var str_username = fnGetElemValue("input_assistance_username");
	if (!str_username || str_username=="")
	{
		return;
	}
	var str_param = "" + AJAX_PARAM_USERNAME + "=" + encodeURIComponent(str_username);
	fnAJAXCall_Post_Sync("/tdt/forgotPass.do", str_param);
}

function fnSubmitForgotUsername()
{
	var str_email = fnGetElemValue("input_assistance_email");
	if (!str_email || str_email=="")
	{
		return;
	}
	var str_param = "" + AJAX_PARAM_EMAIL + "=" + encodeURIComponent(str_email);
	fnAJAXCall_Post_Sync("/tdt/forgotUsername.do", str_param);
}

function fnConfigAssistance(issue)
{
	var i=0;
	for (i=0; i<NUM_ISSUES; i++)
	{
		if (issue==i)
			fnSetChecked("radio_which_issue__"+i);
		else
			fnSetUnchecked("radio_which_issue__"+i);
	}	
	
	var str_out = "";
	switch(issue)
	{
		case ISSUE__NONE:
			fnSetInnerhtml("div_signin_assistance","");
			break;
		case ISSUE__FORGET_PASS:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with forgotten password";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Forgotten your password?  We can reset it for you."; 
			str_out += 		"</div>"; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Enter your Quasitime Username below and click 'Submit'. Quasitime will send you an email at the address you used when signing up for Quasitime.  This email will have instructions and provide you with a link to click to reset your password, and will tell you the new password.";			
			str_out += 		"</div>"; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Once you log back into Quasitime, you can change your password in the 'My Account' section (link to 'My Account' is at the top left of the screen."; 
			str_out += 		"</div>"; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 		"</div>"; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"<span style='position:relative;'>";
			str_out += 				"Quasitime Username:";
			str_out += 			"</span>";
			str_out += 			"<span style='position:absolute;left:165px;'>";
			str_out += 				"<input type='text' id='input_assistance_username' style='width:300px'/> ";
			str_out += 				"&nbsp; <button class='style_button' onclick='fnSubmitForgotPass();'>Submit</button>";
			str_out += 			"</span>";
			str_out += 		"</div>";
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case ISSUE__FORGET_USERNAME:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with forgotten username";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Forgotten your Quasitime username?  We can send it to you via email."; 
			str_out += 		"</div>";
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Enter your email address below and then click 'submit'. Quasitime will send you an email at the address you used when signing up for Quasitime.  This email will contain your username for your Quasitime account."; 
			str_out += 		"</div>";
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 		"</div>";
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"<span style='position:relative;'>";
			str_out += 				"Email:"; 
			str_out += 			"</span>";
			str_out += 			"<span style='position:absolute;left:125px;'>";
			str_out += 				"<input type='text' id='input_assistance_email' style='width:300px'/> ";
			str_out += 				"&nbsp; <button class='style_button' onclick='fnSubmitForgotUsername();'>Submit</button>";
			str_out += 			"</span>";
			str_out += 		"</div>";
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case ISSUE__RETRY:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Caps Lock";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"When signing in, the username is not case-sensitive, but the password is.  This means that you must enter the captial letters exactly as you did when you created the password.  Having Caps Lock turned is a common cause of entering passwords incorrectly. "; 
			str_out += 		"<br><br><a href='index.htm'>Click here to try to login again.</a>"; 
			str_out += 		"<br><br><a href='#' onclick='fnConfigAssistance(ISSUE__FORGET_PASS);return false;'>Click here if you have forgotten your password.</a>"; 
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case ISSUE__NO_ACCOUNT:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance getting a Quasitime account";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"Click the following link to go to the Quasitime registration page and fill out the form in order to register for Quasitime and create a new account."; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"<a href='http://www.Quasitime.com/tdt/reg.jsp'>Quasitime Registration</a>."; 
			str_out += 		"</div>"; 			
			str_out += "</div>";
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case ISSUE__OTHER:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with other issues";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"For help with other issues, please contact us at <a href='mailto:help@quasitime.com'>help@quasitime.com</a>."; 
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case QT_STATUS_FORGOT_PASS__USER_NOT_FOUND:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with forgotten password";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"We could not find a user with that username."; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"If you feel that you may have mistyped the username, <a href='#' onclick='fnConfigAssistance(ISSUE__FORGET_PASS);return false;'>click here to try again</a>."; 
			str_out += 		"</div>"; 			
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Alternatively, you can <a href='#' onclick='fnConfigAssistance(ISSUE__FORGET_USERNAME);return false;'>click here to have an email sent to you to provide you with your username</a>."; 
			str_out += 		"</div>"; 			
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case QT_STATUS_FORGOT_USERNAME__USER_NOT_FOUND:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with forgotten username";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"We could not find a user with that email address."; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"<a href='#' onclick='fnConfigAssistance(ISSUE__FORGET_USERNAME);return false;'>Click here to try again with another email address.</a>"; 
			str_out += 		"</div>"; 			
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case QT_STATUS_FORGOT_PASS__EMAIL_SENT:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with forgotten password";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"An email has been sent to the email address you registered with in Quasitime that includes instructions on how to reset your password."; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Email can sometimes be significantly delayed due to issues with mail servers.  So, if you don't receive an email right away, wait 20 minutes and check again.";
			str_out += 		"</div>"; 			
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
		case QT_STATUS_FORGOT_USERNAME__EMAIL_SENT:
			str_out += "<hr>";
			str_out += "<div class='style_subtitle' style='margin-top:17px;'>";
			str_out += 		"Assistance with forgotten username";
			str_out += "</div>"; 
			str_out += "<div class='style_signin_help_body'>";
			str_out += 		"An email has been sent to the email address you provided that includes your username for Quasitime."; 
			str_out += 		"<div class='style_signin_help__body_row'>";
			str_out += 			"Email can sometimes be significantly delayed due to issues with mail servers.  So, if you don't receive an email right away, wait 20 minutes and check again.";
			str_out += 		"</div>"; 			
			str_out += "</div>"; 
			fnSetInnerhtml("div_signin_assistance",str_out);
			break;
	}
}

//function fn

function fnInit()
{
	fnConfigAssistance(ISSUE__NONE);	
}
fnInit();

