/*
[D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\dad\js/login.js]
*/
DGE = document.getElementById;
function pageEndJS(){
	 document.onreadystatechange=new Function("if(document.readyState=='complete'){DGE('disableScreen').style.display='none'}")
}
function FOnContextMenu()
{
	return ((event.srcElement.tagName == "INPUT" && event.srcElement.type == "text") || (event.srcElement.tagName == "TEXTAREA") ||(event.ctrlKey && !event.ctrlLeft));
}
var loginTemplate = 'Login_AM';
function getPassWordCtrlOBJ(){
	 return DGE("CTRL_[" + rlMap['[' + loginTemplate + ']'] + "^" + rlMap['[' + loginTemplate + '.WebPassword]'] + "]_0");
}
function getWebIDCtrlOBJ(){
	 return DGE("CTRL_[" + rlMap['[' + loginTemplate + ']'] + "^" + rlMap['[' + loginTemplate + '.WebID]'] + "]_0");
}
function vsm() {
}

/*function LoginContinue(){
	var x = getPassWordCtrlOBJ();
	if(x.value=='')
		x.value='*';
}*/
/*function SetGuestData() {
	var webID = getWebIDCtrlOBJ();
	webID.style.color = "white";
	webID.value = "guest";
	var webPassword = getPassWordCtrlOBJ();
	webPassword.style.color = "white";
	webPassword.value = "guest";
	 return true;
}*/

function loginOnEnter(){
	if(event.keyCode==13)
		LoginUser();
}
/*
function sIV(id, value) {
	if(!value)
		return;
	var hI = document.createElement("input");
	hI.type= "hidden";
	hI.name = id;
	hI.id = id;
	hI.value = value;
	DGE("DummyForm").appendChild(hI);
}
*/
function submitPage(topmodel){
	 DGE('disableScreen').style.display='block';
	var url = topmodel?"topmodel=" + topmodel:"";
	 document.forms[0].action = "index.jsp?" + url + "&qcs=" + urlqcs(url);
	 document.forms[0].submit();
}

function RegisterForm(){
/*    sIV("topmodel", "[AM_Login_RegisterForm]")
	 sIV("actormodel", rlMap['[L.RegistrationLink]'])
	 sIV("clickedModelId", rlMap['[L.RegistrationLink]'])
*/
	 submitPage("[AM_Login_RegisterForm]");
}

function ForgotPassword(){
/*    sIV("command[" + rlMap['[L.RegistrationLink]'] + "]", "clear,clearstate")
	 sIV("topmodel", "[ForgotPass]")
	 sIV("actormodel", rlMap['[L.ForgotPass]'])
	 sIV("clickedModelId", rlMap['[L.ForgotPass]'])
*/
	 submitPage("[ForgotPass]");
}

function LoginGuestUser(langID){
	 //SetGuestData();
	 LoginUser(1,langID);
}

function LoginUser(guest,langID){
	DGE('disableScreen').style.display='block';
	var username = strTrim(getWebIDCtrlOBJ().value);
	var pwd = strTrim(getPassWordCtrlOBJ().value);
	 if(guest){
		username = 'guest';
		pwd = null;
	 }

	if(!secureLogin(username, pwd, langID, top.isdm)){
		DGE('disableScreen').style.display='none';
		getWebIDCtrlOBJ().value = getPassWordCtrlOBJ().value = '';
	}
/*    LoginContinue();
	 sIV("model[" + rlMap['[Login_AM]'] + "]", "FORMAT=MATRIX;<mx xmlns=\"http://idm.synisys.com/matrix\"><hs><h id=\"0\">[E5].[IDM].[IDM].[USER]</h><h id=\"1\">[E5].[IDM].[IDM].[Measures]</h></hs><cs><c><m id=\"0\"></m><m id=\"1\">iUserID</m><v></v></c></cs></mx>")
	 sIV("modeldata[" + rlMap['[Login_AM]'] + "]", "FORMAT=MATRIX;<mx xmlns=\"http://idm.synisys.com/matrix\"><hs><h id=\"0\">[E5].[IDM].[IDM].[USER]</h><h id=\"1\">[E5].[IDM].[IDM].[Measures]</h></hs><cs><c><m id=\"0\"></m><m id=\"1\">iUserID</m><v></v></c><c><m id=\"0\"></m><m id=\"1\">SUSERLOGINNAME</m><v>" + getWebIDCtrlOBJ().value + "</v></c><c><m id=\"0\"></m><m id=\"1\">SUSERPASSWORD</m><v>" + getPassWordCtrlOBJ().value + "</v></c></cs></mx>")
	 sIV("command[" + rlMap['[Login_AM]'] + "]", "save")
	 sIV("model[" + rlMap['[GuestUser_L]'] + "]", "[E5].[IDM].[IDM].[GuestUser].[" +(guest?1:0)+"]")
	 sIV("command[" + rlMap['[GuestUser_L]'] + "]", "save")
	 sIV("topmodel", "[Login_AM]")
	if(langID)
		 sIV("LanguageID", langID)
	 sIV("actormodel", rlMap['[Login_AM]'] + "," + rlMap['[GuestUser_L]'])
	 sIV("clickedModelId", rlMap[(guest?'[L.GuestLink]':'[L.Continue]')])

	 submitPage();*/
}

function getXmlHttp(){
	var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	return xmlhttp;
}

function secureLogin(username, pwd, langID, isdm){
	var isGuest = pwd==null;
	var topmodel = "topmodel=" + (isdm?"[DM_SL]":"[SL]");

	var xmlhttp = getXmlHttp();
   if (!true){
  	 username = username.toLowerCase()
	}

	var url = topmodel + "&loginRequest=getsalt&username=" + calcMD5(username);
	xmlhttp.open("POST", "index.jsp?" + url + "&qcs="+urlqcs(url), false);
	  xmlhttp.send();
	if(xmlhttp.readyState!=4){
		//alert('error1')
		return false;
	}
	var result = xmlhttp.responseText;

	result = result.split('\u0001');
	if(result[0]=='0'){//error
		alert(eval(result[1]))
		return false;
	}
	var sessionid = result[0];
	var salt = result[1];
	var pwdHash;
	if(isGuest){
		pwdHash = '';
	}
	else{
		pwdHash = calcMD5(pwd);
		pwdHash = calcMD5(pwdHash + salt);
	}
	var url = topmodel + "&sessionid=" + sessionid + "&loginRequest=login&pwdhash=" + pwdHash;
	if(langID!=undefined)
		url +='&LanguageID=' + langID;
	xmlhttp.open("POST", "index.jsp?" + url + "&qcs="+urlqcs(url), false);
	  xmlhttp.send();
	if(xmlhttp.readyState!=4){
		//alert('error2')
		return false;
	}
	 result = xmlhttp.responseText;
	result = result.split('\u0001');
	if(result.length<=1){
		//alert('error3')
		return false;
	}
	if(result[0]=='0'){//error
		alert(eval(result[1]))
		return false;
	}
	synExec("navigatePost(\"" + result[1] + "\")");

	return true;
}
function loadExtraJS(jsfile, wnd){
	if(!wnd)
		wnd = window;

	var script = wnd.document.createElement("script");
	script.src = jsfile;
	script.type = 'text/javascript'
	script.defer = true;
	wnd.document.body.appendChild(script);
}

function synExec(code){// overrided in login2.js
	eval(code);
}
urlqcs = function (url){
	var c = 0;
	var params = url.split('&');
	for(var i=0; i<params.length; i++){
		var p = params[i].split('=');
		c += qcs(p[0]) + qcs(p[1]);
	}
	return c%256;
}
qcs = function (str){
	var c = 0;
	for(var i=0; i<str.length; i++)
		c+=str.charCodeAt(i);
	return c%256;
}

function htmlEncode(text){
	if(!this.span)
		this.span = document.createElement('span');
	this.span.innerText = text;
	return this.span.innerHTML;
}

function ML_IsModified(){
		var cookies = document.cookie.split(";");
		var languageID;
		for(var i=0; i<cookies.length; i++){
		  var cookie = cookies[i].split('=');
		  if(cookie[0]=="IDMLanguage")
			 var languageID = cookie[1];
		}

		if(!languageID)
		  languageID = window.location.href.indexOf('LanguageID=2')==-1?"2":"1";
		else
		  languageID = languageID=="1"?"2":"1"
		//var lid = window.location.href.indexOf('LanguageID=2')==-1?"2":"1";
		var url = "LanguageID=" + languageID;
		window.navigate("index.jsp?"+ url + "&qcs="+urlqcs(url));
}

function navigatePost(url){
	var urlParts = url.split(new RegExp('\\?|&', 'g'));

	var form = document.createElement('<form method=post>')

	var formContent = '';
	var sessionParam='';
	for(var i=1; i<urlParts.length; i++){
		var param = urlParts[i].split('=');
		if(param[0]=="sessionid")
			sessionParam = urlParts[i];
		else
			formContent +="<input type=hidden name='" + param[0] + "' value='" + param[1] + "'>";
	}
	form.innerHTML = formContent;
	form.action = urlParts[0] + "?" + sessionParam;
	document.body.appendChild(form);
	form.submit();

}
function strTrim(str){
		return str.replace(new RegExp("(^\\s+)|(\\s+$)", "g"), "");
}

