/*
	info login.js
	info Version 7.1 Rel. (01/21/05)
	info Copyright (c) 2005 by HBS, Inc. 
	info All rights reserved.
*/

var jspgm = "login.js";
var jsver = "7.1 01/21/05";

var partsflag = "N";

function GetInfo()
{
	var xmlhttp;

	xmlhttp = GetXMLHTTP();
	if ( !xmlhttp )
		return;

	xmlhttp.open("POST", "/ecg/ecglogin", true);
	xmlhttp.onreadystatechange=function()
	{
		if (xmlhttp.readyState == 4)
		{
			if ( ie )
			{
				var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); 
				xmldoc.async = "false"; 
				while(xmldoc.readyState != 4) {}; 
				xmldoc.loadXML(xmlhttp.responseText);

				fldCompany.innerHTML = xmldoc.getElementsByTagName("Company").item(0).text;
				document.title = xmldoc.getElementsByTagName("PgmName").item(0).text;
				partsflag = xmldoc.getElementsByTagName("PartsFlag").item(0).text;
			}
			else
			{
				var parser = new DOMParser();
				var objDoc = parser.parseFromString(xmlhttp.responseText, "text/xml");
				for (var i=0; i < objDoc.childNodes.length; i++)
				{
					if ( objDoc.childNodes[i].nodeName == "xml" )
					{
						var objXML = objDoc.childNodes[i];

						for (var j=0; j < objXML.childNodes.length; j++)
						{
							if ( objXML.childNodes[j].nodeName == "Company" )
							{
								document.getElementById('fldCompany').innerHTML = objXML.childNodes[j].firstChild.data;
							}
							if ( objXML.childNodes[j].nodeName == "PgmName" )
							{
								document.title = objXML.childNodes[j].firstChild.data;
							}
							if ( objXML.childNodes[j].nodeName == "Company" )
							{
								partsflag = objXML.childNodes[j].firstChild.data;
							}
						}
					}
				}
			}
		}
	}
  	xmlhttp.send("<Cmd>INFO</Cmd>");
}

function Login()
{
	var xmlhttp;

	xmlhttp = GetXMLHTTP();
	if ( !xmlhttp )
		return;

	xmlhttp.open("POST", "/ecg/ecglogin", true);
	xmlhttp.onreadystatechange=function()
	{
		var custnum   = " ";
		var sessionid = " ";
		var errstr    = " ";
		if (xmlhttp.readyState == 4)
		{
			if ( ie )
			{
				var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); 
				xmldoc.async = "false"; 
				while(xmldoc.readyState != 4) {}; 
				xmldoc.loadXML(xmlhttp.responseText);

				custnum = xmldoc.getElementsByTagName("Cust").item(0).text;
				sessionid = xmldoc.getElementsByTagName("SessID").item(0).text;
				errstr = xmldoc.getElementsByTagName("Error").item(0).text;
			}
			else
			{
				var parser = new DOMParser();
				var objDoc = parser.parseFromString(xmlhttp.responseText, "text/xml");
				for (var i=0; i < objDoc.childNodes.length; i++)
				{
					if ( objDoc.childNodes[i].nodeName == "xml" )
					{
						var objXML = objDoc.childNodes[i];

						for (var j=0; j < objXML.childNodes.length; j++)
						{
							if ( objXML.childNodes[j].nodeName == "Cust" )
							{
								custnum = objXML.childNodes[j].firstChild.data;
							}
							else if ( objXML.childNodes[j].nodeName == "SessID" )
							{
								sessionid = objXML.childNodes[j].firstChild.data;
							}
							else if ( objXML.childNodes[j].nodeName == "Error" )
							{
								errstr = objXML.childNodes[j].firstChild.data;
							}
						}
					}
				}
			}
			if ( custnum >= "0" && sessionid >= "0" )
			{
				if ( partsflag == "Y" )
				{
					startUp( "/e-customer_parts_lookup.htm", custnum, sessionid );
				}
				else
				{
					startUp( "/e-customer_gateway.htm", custnum, sessionid );
				}
			}
			else
			{
				if ( errstr != " " )
					alert(errstr);
				else
					alert("Invalid response logging in.  Try again later.");
				document.getElementById('usrnm').focus();
				document.getElementById('usrnm').select();
			}
		}
	}

	var usr = new String(document.getElementById('usrnm').value );
	var cmd = "<Cmd>LOGIN</Cmd><User>";
	cmd += checkStr( usr.toLowerCase() );
	cmd += "</User><Pwd>";
	cmd += escapeStr( document.getElementById('passwd').value );
	cmd += "</Pwd>";
  	xmlhttp.send( cmd );
}

function EMail()
{
	var xmlhttp;

	xmlhttp = GetXMLHTTP();
	if ( !xmlhttp )
		return;

	xmlhttp.open("POST", "/ecg/ecglogin", true);
	xmlhttp.onreadystatechange=function()
	{
		var errstr    = " ";
		if (xmlhttp.readyState == 4)
		{
			if ( ie )
			{
				var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); 
				xmldoc.async = "false"; 
				while(xmldoc.readyState != 4) {}; 
				xmldoc.loadXML(xmlhttp.responseText);

				errstr = xmldoc.getElementsByTagName("Error").item(0).text;
			}
			else
			{
				var parser = new DOMParser();
				var objDoc = parser.parseFromString(xmlhttp.responseText, "text/xml");
				for (var i=0; i < objDoc.childNodes.length; i++)
				{
					if ( objDoc.childNodes[i].nodeName == "xml" )
					{
						var objXML = objDoc.childNodes[i];

						for (var j=0; j < objXML.childNodes.length; j++)
						{
							if ( objXML.childNodes[j].nodeName == "Error" )
							{
								errstr = objXML.childNodes[j].firstChild.data;
							}
						}
					}
				}
			}
			if ( errstr != " " )
				alert(errstr);
			else
				alert("Invalid response from host.  Try again later.");
			document.getElementById('usrnm').focus();
			document.getElementById('usrnm').select();
		}
	}

	var usr = new String(document.getElementById('usrnm').value );
	var cmd = "<Cmd>PWD</Cmd><User>";
	cmd += checkStr( usr.toLowerCase() );
	cmd += "</User>";
  	xmlhttp.send( cmd );
}

function doOnLoad()
{
	var unm = GetCookie( 'logn_name' );
	if ( unm != null && unm != '' )
	{
		document.getElementById("usrnm").value = unm;
		document.getElementById("rememberme").checked = true;
		document.getElementById("passwd").focus();
	}
	else
	{
		document.getElementById("usrnm").focus();
	}

	GetInfo();
}

function doLogin()
{
	if ( document.getElementById("rememberme").checked )
	{
		set_name( document.getElementById("usrnm").value.toLowerCase() );
	}
	else
	{
		set_name( '' );
	}

	Login();
}

function emailPW()
{
	if ( document.getElementById('usrnm').value == "" )
	{
		alert( 'Please enter your username' );
	}
	else
	{
		EMail();
	}
}

function mapEnterToLogin(theEvent)
{
	if ( theEvent.keyCode == 10 || theEvent.keyCode == 13 )
	{
		theEvent.returnValue=false;
		doLogin();
		return;
	}
}

function SetCookie (name, value)
{
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
			((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
			((path == null) ? "" : ("; path=" + path)) +
			((domain == null) ? "" : ("; domain=" + domain)) +
			((secure == true) ? "; secure" : "");

}

function set_name(val)
{
	var expdate = new Date();
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
	SetCookie ("logn_name", val, expdate);
}

function GetCookie (name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0)
			break; 
	}
	return null;
}

function getCookieVal (offset)
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

