﻿// JScript File

var userName = null;
var password = null;

var waiting_object = null;

var ksFileName = null;
var ksFile = null;
var keystorePasswordWindow = null;
var keystorePasswordWindowFormDiv = null;
var errorDeviceWindow = null;
var errorDeviceWindowFormDiv = null;
var keystorePass = null;
var alias = null;
var signedRequest= null;
var request = null;
var errorMessage = null;
var closeButEl = null;
var pwd = null;
var ksFileNameEl = null;
var ebank_parent_url = null;
var server_time = null;

  function signAndLogin()
{
    userName = document.getElementById("lgn").value;
    password = document.getElementById("pwd").value;    
    ebank_parent_url = document.getElementById("ebank_parent_url").value;        
    
    
    if (pki == "0")
    {      
      form = document.forms[0];
      form.submit();  
    }
    else 
    {
    
    
        if (userName.length > 1 && password.length > 1)
        {            
            ksFileName = document.getElementById("ksFileName").value;    
            ksFile = document.SignatureApplet.GetStoreFile(userName.toUpperCase(), ksFileName);               
            
            if (ksFile != null)
            {           
                 createModal("keystorePasswordWindow", 295, 128, 2, 98, "keystorePasswordWindow");                                         
                 keystorePassEl = document.getElementById("keystorePass");
		         keystorePassEl.focus();
            }
            else  
            {
                //With read-only access
                 /*    createErrorWindow("You haven't pluged in your removable device with your keystore! Please plug in it");                         			      
			         pwd = document.getElementById("pwd");
			         pwd.blur();                   
			         */			    			     
			     request = "login="+userName.toUpperCase()+"&password="+document.SignatureApplet.GetEncodedHashFromInit(password)+"&type=2";                        
			     window.location = ebank_parent_url + "login.aspx?" + request;			     			     
            }    
        }  
    }    
}

function SetFocusOnPassword(event)
{
    event = event || window.event;
	var charcode  = (event.charCode) ? event.charCode : event.keyCode;		
	if(event.keyCode==13)
	 if(event.preventDefault)event.preventDefault();
	
	if (charcode == 13) 
	{
		 pwd = document.getElementById("pwd");
	     pwd.focus();
	}   
}

function CallLoginAtKeyDown(event)
{
	event = event || window.event;
	var charcode  = (event.charCode) ? event.charCode : event.keyCode;			
	
	if(event.keyCode==13)
	 if(event.preventDefault)event.preventDefault();
	
	if (charcode == "13") 
	{
		ShowUserPKIStatus();	
	/*	alert('1');
		login2 = document.getElementById("login2");		
		login2.focus();
		alert('2');
		*/
	}
	
}

function CallSignAtKeyDown(event)
{
	event = event || window.event;
	var charcode  = (event.charCode) ? event.charCode : event.keyCode;		
	
	if (charcode == 13) 
	{
		generateAndSignRequest();				
	}
}

function createErrorWindow(errorMessageText)
{  
  errorMessage = document.getElementById("errorMessageID");   
  errorMessage.innerHTML = errorMessageText;
  createModal("errorDeviceWindow", 262, 420, 2, 100, "errorDeviceWindow");                               
}

function generateAndSignRequest()
{

    if (ksFile != null)
    {        
        userName = document.getElementById("lgn").value;
        password = document.getElementById("pwd").value;
        ksFileName = document.getElementById("ksFileName").value;    
        alias = document.getElementById("ksAlias").value;    
        server_time = document.getElementById("server_time").value;    
        keystorePass = document.getElementById("keystorePass").value; 
        
                      
        
        request = "login="+userName.toUpperCase()+"&password="+document.SignatureApplet.GetEncodedHashFromInit(password)+"&server_time="+server_time+"&type=3";                        
        
        signedRequest = document.SignatureApplet.GenerateSignature(request, userName, ksFileName, keystorePass, keystorePass, alias);        
        
        if (signedRequest != null)
        {
           ebank_parent_url = document.getElementById("ebank_parent_url").value;        
           window.location = ebank_parent_url + "login.aspx" + "?" + signedRequest;           
           keystorePasswordWindow.style.display = "none";           
           createWaiting(keystorePasswordWindowFormDiv, 300, 300);
        }
        else 
        {
            createErrorWindow("Entered password for your keystore is wrong!");
            ksFileNameEl = document.getElementById("keystorePass");
            ksFileNameEl.blur();        
        }
    }
}

function createModal(modalDialogID, width, height, useTop, z_index, formHandler)
 {
	 var arrayPageSize = getPageSize();
	 var arrayPageScroll = getPageScroll();
	 
	show_dialog = document.getElementById(modalDialogID);

	show_dialog.style.display = "block";
	show_dialog.style.left = (((arrayPageSize[0] - 20 - width) / 2) + "px");
	
	if (useTop == 0)
	{   
	    show_dialog.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2) + 1000 + "px");	
	}
	else
	{
		show_dialog.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2) + "px");	
	}	

 		modalDiv  = document.createElement("div");
		modalDiv.style.display = "block";
		
   	modalDiv.style.zIndex = z_index;

	modalDiv.className = "modal"; 
	
	modalDiv.style.height = (arrayPageSize[1] + 'px');
	modalDiv.style.width = (arrayPageSize[2] + 'px');	
	modalDiv.appendChild(show_dialog);	
	
	document.body.appendChild(modalDiv);   	 	
	
	switch (formHandler)
	{
		case "keystorePasswordWindow" :
			 keystorePasswordWindow = show_dialog;
			 keystorePasswordWindowFormDiv =modalDiv;   		 	
		 break;
		 
		case "errorDeviceWindow" :
			errorDeviceWindow =  show_dialog;
			errorDeviceWindowFormDiv = modalDiv;			
		 break;		
	}
 }
 
function closeModal(event, formHandler)
 {
	switch (formHandler)
	{
		case "keystorePasswordWindow" :
			 keystorePasswordWindow .style.display = "none";
			 keystorePasswordWindowFormDiv.style.display = "none";
		 break;
		case "errorDeviceWindow"  :
			errorDeviceWindow.style.display = "none";
			errorDeviceWindowFormDiv.style.display = "none";
		 break;		
	}
	
 }
 
  
 function createWaiting(objectReceiver, width, height)
{
    var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	if (!waiting_object)
	{
		waiting_object = document.getElementById("waitingBack");
	}
	
	
	 waiting_object.style.left = (((arrayPageSize[0] - 20 - width) / 2) + "px");
	
	 waiting_object.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - height) / 2) + "px");	  
	
	 waiting_object.style.display = "block";
	
	if (objectReceiver)
	{
		objectReceiver.innerHTML = "";
		objectReceiver.appendChild(waiting_object);
	}	
	
	
}

function closeWaiting(objectReceiver)
{
	if (objectReceiver)
	{
		if (waiting_object)
		{		
			objectReceiver.removeChild(waiting_object);
		}
	}

}

 function ClearFormControl(controlID)
{
	 var controlIDElement = document.getElementById(controlID);	 
	 if (controlIDElement) 
	 {
	    if (controlIDElement.value)
	    {
	        controlIDElement.value = "";	        
	    }
	 }	 
}
