/* $Id: Login.js,v 1.14 2011/11/13 07:40:04 santosh.mishra Exp $ */
function encryptPassword(textPwd) 
{
	var num_out = "", str_in = escape(textPwd);
	for (i = 0; i < str_in.length; i++) {
		num_out += str_in.charCodeAt(i) - 23;
	}
	return num_out;		
}

function decryptPassword(encPwd)
{
	var str_out = "", num_out = encPwd;
	for (i = 0; i < num_out.length; i += 2) {
		num_in = parseInt(num_out.substr(i,[2])) + 23;
		num_in = unescape('%' + num_in.toString(16));
		str_out += num_in;
	}
	return unescape(str_out);
}

function ValidateLoginForm(form)
{
	var d = document, uName = d.login.j_username.value, pwd = d.login.j_password.value, encPwd = encryptPassword(pwd), expDate = new Date(), sso = "true", domainList = d.login.domain, signedIn = d.login.checkbox.checked;
	if (uName == "" || pwd == "") {
		alert(jQuery("#jserror").html());
		if (uName == "") {
			d.j_username.focus();
		} else { 
			d.login.j_password.focus();
		}
		return false;
	}
	if (signedIn) {
		expDate.setTime(expDate.getTime() + (24 * 60 * 60 * 1000 * 365));
	} else {   
		expDate.setTime(expDate.getTime());
		sso = "false";
	}
	d.cookie = "username= " + uName + ";expires= " + ((expDate).toGMTString());
	d.cookie = "password= "+ encPwd + ";expires= " + ((expDate).toGMTString());
	d.cookie = "singlesignon= " + sso + ";expires= " + ((expDate).toGMTString());
	if (domainList != null) {
		if (domainList.value == "") {
			alert(jQuery("#choosedomain").html());
			domainList.focus();
			return false;
		}
		d.cookie = "domainname= " + domainList.value + ";expires= "+((expDate).toGMTString());       
	}
	var adDomain = jQuery("#domainID").val();
	d.login.logonDomainName.value = adDomain;
	jQuery("#username").val((jQuery("#username").val()).toLowerCase());
	return true;
}

function setFocus(name)
{
        name.focus();
}

function getSSOCookie()
{
	var d = document, domainList = d.login.domain;
	d.login.j_username.value = "";
	init = (d.cookie).indexOf("username");
	if (init != -1) {
		ulen = "username".length;//No I18N
		beginIndex = ((d.cookie).indexOf("username") + ulen);
		endIndex = (d.cookie).indexOf(";", beginIndex);
		if (endIndex == -1) {
			endIndex = (d.cookie).length;
		}
		uName = (d.cookie).substring(beginIndex + 1, endIndex);
		startIndex = ((d.cookie).indexOf("password") + "password".length);//No I18N
		endInd = (d.cookie).indexOf(";", startIndex);
		if (endInd == -1) {
			endInd = (d.cookie).length;
		}
		var encPwd = (d.cookie).substring(startIndex + 1, endInd), pwd = decryptPassword(encPwd), ssoStart = ((d.cookie).indexOf("singlesignon") + "singlesignon".length), ssoEnd = (d.cookie).indexOf(";", ssoStart);//No I18N
		if (ssoEnd == -1) {
			ssoEnd = (d.cookie).length;
		}
		var singlesignon = (d.cookie).substring(ssoStart + 1, ssoEnd);

		d.login.j_username.value = uName;
		d.login.j_password.value = pwd;
		d.login.checkbox.checked = false;
	
		/***********************************************************************
		 * If domainList is available, cookie will be set
		 **********************************************************************/

		if (domainList != null) {
			domainStartIndex = ((d.cookie).indexOf("domainname") + "domainname".length);//No I18N
			domainEndIndex = (d.cookie).indexOf(";", domainStartIndex);
			if (domainEndIndex == -1) {
				domainEndIndex = (d.cookie).length;
			}
			domain = (d.cookie).substring(domainStartIndex + 1, domainEndIndex);
			var domainCount = domainList.length;
			for (i = 0; i < domainCount; i++) {
				var data = domainList[i].value;
				if (data == domain) {
					domainList[i].selected = true;
					break
				}
			}
		}
		//************ End of DomainList Operation
		if (singlesignon == "true" && uName != "" && pwd != "") {
			d.login.checkbox.checked = true;
			d.login.submit();
		}
	} else {
        d.login.j_username.focus();
    }
}

function hideLoginInfo() 
{
	window.open("sd/HideLogin.sd", "LoginInfo");
	jQuery("#loginInfo").attr("style", "display:none");
}

function hideShowDomainList()
{
	if (jQuery("#domainDisplay").attr("class") == "hide") {
		showDomainList();
	} else {
		hideDomainList();
	}
}

function hideDomainList() {
	jQuery("#domainDisplay").attr("class", "hide");
	jQuery("#DoubleDownArrow").attr("class", "DoubleUpArrow");
}

function showDomainList() {
	jQuery("#domainDisplay").attr("class", "show");
	jQuery("#DoubleDownArrow").attr("class", "DoubleUpArrow");
}

function ShowHide(divId)
{
	var id = jQuery("#"+divId);
	if (id.css("display") == "none") {
		id.attr("style", "display:block");
	} else {
		id.attr("style", "display:none");
	}
}
function getLoginInformation(loginname,fromCustomer)
{
	var url = "/servlet/SCPAjaxUtil?action=getLoginInformation&userName=" + loginname, getLogin = AjaxValidate(url);//No I18N
	if (getLogin != "OK") {
		window.location = "jsp/Logout.jsp"; // No I18N
		alert(jQuery("#supportrepPermissionchk").val()); // No I18N
	} else {
		loadHomepage(fromCustomer);
	}
}

function AjaxValidate(url)
{
	if (window.XMLHttpRequest) { // Non-IE browsers
		AJAX = new XMLHttpRequest();
	} else {
		AJAX = new ActiveXObject("Microsoft.XMLHTTP"); //No I18N
	}
	if (AJAX) {
		AJAX.open("GET", url, false);
		AJAX.send(null);
		return AJAX.responseText;
	} else {
		return "false"; //No I18N
	}
}

function delCookie(cName)
{
	document.cookie = cName + "=;expires=" + (new Date()).toGMTString() + ";" + ";";
}

function checkIfExternalLogin()
{
	var uNameToken = "extUsername", pwdToken = "extPassword", sURL = window.document.URL.toString();

	if(sURL.indexOf(uNameToken) > 0 && sURL.indexOf(pwdToken) > 0) {
			var d = document, i = 0, uName = "", pwd = "", arrParams = sURL.split("?"), arrURLParams = arrParams[1].split("&"), arrParamNames = new Array(arrURLParams.length), arrParamValues = new Array(arrURLParams.length);
		for (i = 0; i < arrURLParams.length; i++) {
			var sParam =  arrURLParams[i].split("=");
			if (sParam[0] == uNameToken) {
				uName = sParam[1];
			} else if (sParam[0] == pwdToken) {
				pwd = sParam[1];
			}
		}
		d.login.j_username.value = uName;
		d.login.j_password.value = pwd;
		d.login.submit();
		return true;
	}
	return false;
}

function loadLogin(sso)
{
	if (!checkIfExternalLogin()) {
		getSSOCookie();
	}
	if (sso) {
		var d = document, loggedUser = jQuery("#loggedUser").val(), loggedDomain = jQuery("#loggedDomain").val();
		if(loggedUser != null && loggedDomain != null && loggedUser != "null" && loggedDomain != "null") {
			d.login.j_username.value = loggedUser.toLowerCase();
			d.login.j_password.value = '*********' ;
			d.login.logonDomainName.value = loggedDomain;
			d.login.submit();
		}
	}
}
function insertAdminDetails()
{
	var admin = "administrator";//NO I18N
	jQuery("#username").val(admin);
	jQuery("#password").val(admin);
	document.login.submit();
}
function insertGuestDetails()
{
	jQuery("#username").val("guest");//NO I18N
	jQuery("#password").val("guest");//NO I18N
	document.login.submit();
}

function saveDomainInCookie()
{
	var domainId = jQuery("#domainID");
	if(domainId != null){
		document.cookie = "domainName= " + domainId.val();
	}
}


