﻿// JScript File

var modalDiv = null;
var show_dialog = null;
var waiting_object = null;

/////signature////
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 SignChangeRequest()
{
   var userName = document.getElementById("loginID").value;
	 
    ksFileName = document.getElementById("ksFileName").value;
    
    ksFile = document.SignatureApplet.GetStoreFile(userName.toUpperCase(), ksFileName);     
    
    if (ksFile != null) 
    {
        createModal('keystorePasswordWindow',371, 170, 2, 98, 'keystorePasswordWindow', 'logonPass');        
        keystorePassEl = document.getElementById("keystorePass");
		keystorePassEl.focus();
    }
    else
    {
        createErrorWindow("You haven't pluged in your removable device with your keystore! Please plug in it");                         			      
		loginID = document.getElementById("loginID");
		loginID.blur(); 
    }
    
}

function createModal(modalDialogID, width, height, useTop, z_index, formHandler, operation)
 {
	 var arrayPageSize = getPageSize();
	 var arrayPageScroll = getPageScroll();	 	

	
	switch (operation)
	{ 
	    case "logonPass" : 
	        document.getElementById("Button2").onclick = function() {generateAndSignRequest('logonPass')};	    	           	    
	        break;	    
	} 
	
	 
	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) + 100 + "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 createErrorWindow(errorMessageText)
{  
  errorMessage = document.getElementById("errorMessageID");   
  errorMessage.innerHTML = errorMessageText;
  createModal("errorDeviceWindow", 262, 420, 2, 100, "errorDeviceWindow");                               
}


function generateAndSignRequest(operation)
{
    userName = document.getElementById("loginID").value;
    
    ksFileName = document.getElementById("ksFileName").value;    
    alias = document.getElementById("ksAlias").value;    
    server_time = document.getElementById("server_time").value;    
    keystorePass = document.getElementById("keystorePass").value; 
    ebank_parent_url = document.getElementById("ebank_parent_url").value;

    switch(operation)
    {
      case "logonPass" :                  
            
            request = "action=change&username="+userName.toUpperCase()+"&server_time="+server_time;
            signedRequest = document.SignatureApplet.GenerateSignature(request, userName, ksFileName, keystorePass, keystorePass, alias);
            
            if (signedRequest != null)
            {
                keystorePasswordWindow.style.display = "none";           
                createWaiting(keystorePasswordWindowFormDiv, 300, 300);
                window.location = ebank_parent_url + "ForgotPassword.aspx" + "?" + signedRequest;                                                
            }
            else
            {
                createErrorWindow("Entered password for your keystore is wrong!");
                ksFileNameEl = document.getElementById("keystorePass");
                ksFileNameEl.blur();
            }
            
            
      break;
       }
}

function CallWindowAtKeyDown(event)
{
	event = event || window.event;
	var charcode  = (event.charCode) ? event.charCode : event.keyCode;		
	
	if (charcode == 13) 
	{			
		document.getElementById("loginID").blur();		
		document.getElementById("ForgotPasswordButton").onclick();		
		document.getElementById("keystorePass").focus();		
		
	}
}

function CallSignAtKeyDown(event)
{
    event = event || window.event;
	var charcode  = (event.charCode) ? event.charCode : event.keyCode;		
	
	if (charcode == 13) 
	{
	    document.getElementById("keystorePass").blur();
		document.getElementById("Button2").onclick();	    
	}
}
