﻿// JScript File

var contentDivHTML = "";
var StrArrPlaceHolders = null;    

function HandleLogin(ControlID)
{
    var LoginName = null;
    var items;
    var id;
    
    for(var i=0; i < document.forms[0].elements.length;i++)
    {
        items = document.forms[0].elements[i];
        id = items.id;

        if (id.indexOf("_txtUserName")>=0)
        {
            LoginName = document.forms[0].elements[i];
            break;
        }
    }
    
    if(LoginName!=null)
    {
        if(LoginName.value == "")
        {
            ShowAlert("Alert_Login_EnterUserName");
            return;
        }
        if (isSpecialCharacter(LoginName.value))
        {
            ShowAlert("Alert_Login_LoginNameShouldNotContainSpecialChar");
            return;
        }
        __doPostBack(ControlID);
    }
}

function HandleChangePasswordPressEnter(Event,ControlID,LoginName,FirstName,LastName,PolicyCount,PolicyNameString,PolicyValueString)
{
    if(Event.keyCode == 13)
        HandleChangePassword(ControlID,LoginName,FirstName,LastName,PolicyCount,PolicyNameString,PolicyValueString);
        
}
    

function HandleChangePassword(ControlID,LoginName,FirstName,LastName,PolicyCount,PolicyNameString,PolicyValueString)//,txtOldPasswordID,txtNewPasswordID,txtConfirmPasswordID)
{
    var OldPassword = null;
    var NewPassword = null;
    var ConfirmPassword = null;
    var items;
    var id;
    var PolicyName="";
    var PolicyValue="";
    var PolicyNameArray = PolicyNameString.split(";");
    var PolicyValueArray = PolicyValueString.split(";");
    
    if(FirstName != "")
        FirstName = DecodeSpecialCharactersForJS(FirstName);
        
    if(LastName != "")
        LastName = DecodeSpecialCharactersForJS(LastName);
        
    if(LoginName != "")
        LoginName = DecodeSpecialCharactersForJS(LoginName);
    
    for(var i=0; i < document.forms[0].elements.length;i++)
    {
        items = document.forms[0].elements[i];
        id = items.id;

        if (id.indexOf("_txtOldPassword")>=0)
        {
            OldPassword = document.forms[0].elements[i];
        }
        else if (id.indexOf("_txtNewPassword") >=0)
        {
            NewPassword = document.forms[0].elements[i];
        }
        else if (id.indexOf("_txtConfirmPassword") >=0)
        {
            ConfirmPassword = document.forms[0].elements[i];
        }
    }
    
    if(NewPassword.value != ConfirmPassword.value)
    {
        ShowAlert("Alert_NewAndCnfmNewPwdNotSame_Shared");
        return;
    }
    
    for(i=0;i<PolicyCount;i++)
    {
        PolicyName = PolicyNameArray[i];
        PolicyValue = PolicyValueArray[i];
        
        if(PolicyName=="MINIMUMLENGTH")
        {
            if(NewPassword.value.length < PolicyValue)
            {
                InitializePlaceHolderArray(1,1);
                AddPlaceHolderToArray(0,0,"PASSWORDLENGTH",PolicyValue);
                ShowAlert("Alert_PwdLength_Shared",StrArrPlaceHolders);
                return;
            }    
        }
        else if(PolicyName=="REQUIRESPECIALCHARACTER")
        {
            var SpecialCharacterCount = 0;
            
            if(PolicyValue.toUpperCase()=="YES")
            {
                var RefString="!#$%^&*()+=[]\\\';,/{}|\":<>?";
	            for (var Count=0; Count < NewPassword.value.length; Count++) 
                {
		            var TempChar= NewPassword.value.substring (Count, Count+1);
		            if (RefString.indexOf (TempChar, 0) >= 0)  
		                SpecialCharacterCount++;
	            }
	            if(SpecialCharacterCount==0)
	            {
	                ShowAlert("Alert_PwdMustContainSpecialChar_Shared");
	                return;
	            }
            }
        }
        else if(PolicyName=="REQUIREDIGIT")
        {
            if(PolicyValue.toUpperCase()=="YES")
            {
                if(IsContainDigit(NewPassword.value)==false)
                {
                    ShowAlert("Alert_PwdMustContainDigit_Shared");
	                return;
                }
            }
        }
        else if(PolicyName=="EXCLUDENAMES")
        {
            if(PolicyValue.toUpperCase()=="YES")
            {
                if(NewPassword.value.toUpperCase().indexOf(LoginName.toUpperCase())!= -1)
                {
                    ShowAlert("Alert_PwdShouldNotContainLoginName_Shared");
                    return;
                }
		        if(FirstName != "")
		        {
                	if(NewPassword.value.toUpperCase().indexOf(FirstName.toUpperCase())!= -1)
	                {
        	            ShowAlert("Alert_PwdShouldNotContainFirstName_Shared");
                	    return;
	                }
		        }
		        if(LastName != "")
		        {
                	if(NewPassword.value.toUpperCase().indexOf(LastName.toUpperCase())!= -1)
	                {
        	            ShowAlert("Alert_PwdShouldNotContainLastName_Shared");
                	    return;
	                }
		        } 
            }
        }
    }
    __doPostBack(ControlID,'');
}

function IsContainDigit (InString)
{
	if(InString.length==0) 
	    return (false);
	var RefString="1234567890";
	var DigitCount = 0;
	for (Count=0; Count < InString.length; Count++) 
    {
		var TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0) >= 0)  
		    DigitCount++;
	}
	if(DigitCount==0)
	    return false;
	return true;
}

function onLoad()
{
    var parentWin = self.opener;
    
    var Span_ErrorXML = document.getElementById("Span_ErrorXML");
	Span_ErrorXML.innerHTML = parentWin.document.forms[0].ErrorXML.value;

}

function DisplayChangePasswordError(ErrorString,TenantName)
{
	var Span_ErrorString = document.getElementById("Span_ErrorString");
	Span_ErrorString.innerText = ErrorString;
	Span_ErrorString.visible = true;
}

function onKeyPress(Event,txtUserNameID,SignInButtonControlID)
{
    var txtUserName = null;
    
    if ( document.getElementById)
     {
        txtUserName = document.getElementById(txtUserNameID.id);          
     }
     else
     {
        txtUserName = document.all(txtUserNameID.id);          
     }
     
     if(Event.keyCode == 13)
     {
        HandleLogin(SignInButtonControlID); 
     }
}

function isSpecialCharacter (str_InString)
{
	var str_RefString   = "~`!#$%^&*()+=|\\:;,/\"?<>'";
	var int_SpCharCount = 0;
	
	if(str_InString.length==0) 
	{
	    return (false);
	}
	
	for (Count=0; Count < str_InString.length; Count++) 
    {
		var TempChar= str_InString.substring (Count, Count+1);
		if (str_RefString.indexOf (TempChar, 0) >= 0)  
		    int_SpCharCount++;
	}
	
	if(int_SpCharCount==0)
	{
	    return false;
	}
	 
	return true;
}

function InitializePlaceHolderArray(Rows, Columns)
{
    //Prepare array of placeholders
    StrArrPlaceHolders       = new Array(Rows);
    StrArrPlaceHolders[0]    = new Array(Columns);
}

function AddPlaceHolderToArray(Row, Column, PlaceHolder, PlaceHolderValue)
{
    StrArrPlaceHolders[Row][Column]     = PlaceHolder;
    StrArrPlaceHolders[Row][Column + 1] = PlaceHolderValue;
}