/*
'---------------------------------------------------------------------------------------------
'                                       COMPONENT
'---------------------------------------------------------------------------------------------
' File Name........:    Global.js
' Type.............:    Javascript
' Reference........:    SWR XXXX - DB Mortgages.
' Author...........:    Mike Eggington	
' Date.............:    10th November 2006
' Description......:    Global Javascript functions.
' Warning/Notes....:    
'---------------------------------------------------------------------------------------------

'---------------------------------------------------------------------------------------------
'                                    AMENDMENT HISTORY
'---------------------------------------------------------------------------------------------
' Reference........:    Project reference number, SWR number, Helpdesk call number, etc.
' Author...........:    Programmer's name
' Date.............:    Amendment date #1
' Description......:    Reason for amendment
' Warning/Notes....:    Must include limitations, constrains, etc.
'---------------------------------------------------------------------------------------------
' Reference........:    Project reference number, SWR number, Helpdesk call number, etc.
' Author...........:    Programmer's name
' Date.............:    Amendment date #2
' Description......:    Reason for amendment
' Warning/Notes....:    Must include limitations, constrains, recommendations, etc.
'---------------------------------------------------------------------------------------------
*/




/**************************************************************/
// Generic DIV Toggle Display function 
/**************************************************************/

function ToggleDisplay(id)
	{
		var elem = document.getElementById('d' + id);
		var elemImage = document.getElementById('i' + id);
		
		if (elem)
		{
			if  (elem.style.display != 'block')
			{
				elem.style.display = 'block';
				elem.style.visibility = 'visible';
				elemImage.src = '../../Image/DesktopTitleImages/dblup.gif';
			}
			else
			{
				elem.style.display = 'none';
				elem.style.visibility = 'hidden';
				elemImage.src = '../../Image/DesktopTitleImages/dbldn.gif';
			}
		}
	}
	
/**************************************************************/
// Hide DIV Function
/**************************************************************/

function HideDivision(division){
	
	document.all[division].style.display = "none";	
}	

/**************************************************************/
// Show DIV Function
/**************************************************************/

function ShowDivision(division){
	
	document.all[division].style.display = "block";	
}	
	
/***************************************************************/
// Default button control
/***************************************************************/

function DefaultButtonHandler(control, name, btnName)
{
	// Only process when the [Enter] key is pressed
	if (event.keyCode == 13)
	{
		// Cancel the default submit
		event.returnValue = false;
		event.cancel = true;
		
		// Create the control button name
		button = control.id;
		button = button.replace(name, btnName);
		
		// Submit the form by programmatically clicking the specified button
		document.getElementById(button).click();
	}		
}

// **************************************************************************
// To Upper Case function
// **************************************************************************
				
function ToUpperCase(control) {

var elemText = document.getElementById(control.id);
	
	// Set the value in the text field to upper case
	elemText.value = elemText.value.toUpperCase();
				
}

// **************************************************************************
// Validator Turn-Off function
// **************************************************************************
				
function ValidatorDisable(control, controlName, ValidatorName) {

// Create the control

	Validator = control.id;
	Validator = Validator.replace(controlName, ValidatorName);

//Declare element
	var elemValidator = document.getElementById(Validator);

	elemValidator.enabled = false;
}



// **************************************************************************
// CheckNumeric_Money (including decimal place character)
// **************************************************************************
		
function checkNumeric_Money( control ) {

	// Add leading zero if required
	if (control.value.indexOf('.') == 0){
		control.value = "0" + control.value;
	}	

	// Find which key was pressed.		
	var evt = (evt) ? evt : ((window.event) ? event : null); 
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;

	// If not any of below pressed
	if ((charCode == '8')||(charCode == '46')||    // Delete, Backspace
		(charCode == '9')||                        // Tab Key	
		(charCode == '37')||					   // Cursor Left
		(charCode == '38')||					   // Cursor Up
		(charCode == '39')||					   // Cursor Right
		(charCode == '40')||					   // Cursor Down
		(charCode == '13')||					   // Return
		(charCode == '48')||(charCode == '96')||   // 0 , 0 (keypad)
		(charCode == '49')||(charCode == '97')||   // 1 , 1 (keypad)			
		(charCode == '50')||(charCode == '98')||   // 2 , 2 (keypad)
		(charCode == '51')||(charCode == '99')||   // 3 , 3 (keypad)
		(charCode == '52')||(charCode == '100')||  // 4 , 4 (keypad)
		(charCode == '53')||(charCode == '101')||  // 5 , 5 (keypad)
		(charCode == '54')||(charCode == '102')||  // 6 , 6 (keypad)
		(charCode == '55')||(charCode == '103')||  // 7 , 7 (keypad)
		(charCode == '56')||(charCode == '104')||  // 8 , 8 (keypad)
		(charCode == '57')||(charCode == '105')||  // 9 , 9 (keypad)
		(charCode == '110')||(charCode == '190')){ // . , . (keypad)
		
		
			if ((charCode == '8')||(charCode == '46')||    // Delete, Backspace
			(charCode == '9')||                        // Tab Key	
			(charCode == '37')||					   // Cursor Left
			(charCode == '38')||					   // Cursor Up
			(charCode == '39')||					   // Cursor Right
			(charCode == '40')){}					   // Cursor Down
			else{
			  					   
				// If there is a decimal
				if (control.value.indexOf('.') != -1){
					// Only allow one decimal point
					var DecimalPoints = new Array();
					DecimalPoints = control.value.split('.');
					if (DecimalPoints.length == 2 && ((charCode == '110')||(charCode == '190'))){
						return false;
					}	
					//Only allow two decimal places
					dectext = control.value.substring(control.value.indexOf('.') + 1, control.value.length);
					if (dectext.length >= 2){
						control.value = control.value.substring(0, control.value.indexOf('.') + 3);
						return false;
					}
				}	
			}
		}	
		else{
			return false;
		}	
}

// *************************************************************************
// Check Numeric (Numeric Only)
// *************************************************************************
function checkNumeric( control ) {

// Find which key was pressed.		
var evt = (evt) ? evt : ((window.event) ? event : null); 
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;

// If not a tab , delete or backspace, set FirmName and Postcode fields to ""
	if ((charCode == '8')||(charCode == '46')||    // Delete, Backspace
		(charCode == '9')||                        // Tab Key	
		(charCode == '37')||					   // Cursor Left
		(charCode == '38')||					   // Cursor Up
		(charCode == '39')||					   // Cursor Right
		(charCode == '40')||					   // Cursor Down
		(charCode == '48')||(charCode == '96')||   // 0 , 0 (keypad)
		(charCode == '49')||(charCode == '97')||   // 1 , 1 (keypad)			
		(charCode == '50')||(charCode == '98')||   // 2 , 2 (keypad)
		(charCode == '51')||(charCode == '99')||   // 3 , 3 (keypad)
		(charCode == '52')||(charCode == '100')||  // 4 , 4 (keypad)
		(charCode == '53')||(charCode == '101')||  // 5 , 5 (keypad)
		(charCode == '54')||(charCode == '102')||  // 6 , 6 (keypad)
		(charCode == '55')||(charCode == '103')||  // 7 , 7 (keypad)
		(charCode == '56')||(charCode == '104')||  // 8 , 8 (keypad)
		(charCode == '57')||(charCode == '105')    // 9 , 9 (keypad)
		){ 
	}	
	else{
		return false;
	}	
}

// *************************************************************************
// Right Trim
// *************************************************************************
function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	
	if(v_length < 0){
		return"";
	}
	
	var iTemp = v_length -1;

	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	} 
	return strTemp;
} 
// *************************************************************************
// Left Trim
// *************************************************************************

function LTrim(VALUE){

	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}

	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} 
	return strTemp;
} 

// **************************************************************************
// DivToggleYesEqualsShow
// **************************************************************************

function DivToggleYesEqualsShow(control, ControlName, divisionTextbox, division){

	// Define division Text Box
	var DivisionText = control.id;
	var DivisionText = DivisionText.replace(ControlName, divisionTextbox);
	var	elemDivisionText = document.getElementById(DivisionText);
	
	var	elemListAddress = document.getElementById(control.id);

	if (elemListAddress.value == 'Y'){
		ShowDivision(division);
		elemDivisionText.value = 'block';
	}
	else{
		HideDivision(division);
		elemDivisionText.value = 'none';
	}	
}

// **************************************************************************
// DivToggleNoEqualsShow
// **************************************************************************

function DivToggleNoEqualsShow(control, ControlName, divisionTextbox, division){

	// Define division Text Box
	var DivisionText = control.id;
	var DivisionText = DivisionText.replace(ControlName, divisionTextbox);
	var	elemDivisionText = document.getElementById(DivisionText);
	
	var	elemListAddress = document.getElementById(control.id);

	if (elemListAddress.value == 'N'){
		ShowDivision(division);
		elemDivisionText.value = 'none';
	}
	else{
		HideDivision(division);
		elemDivisionText.value = 'block';
	}	
}	

// **************************************************************************
// DivToggleCheckedTrueEqualsShow
// **************************************************************************

function DivToggleCheckedTrueEqualsShow(control, ControlName, divisionTextbox, division){

	// Define division Text Box
	var DivisionText = control.id;
	var DivisionText = DivisionText.replace(ControlName, divisionTextbox);
	var	elemDivisionText = document.getElementById(DivisionText);
	var	elemListAddress = document.getElementById(control.id);
	
	// Test to see if the control checked value is true
	if (elemListAddress.checked == true){
		ShowDivision(division);
		elemDivisionText.value = 'block';
	}
	else{
		HideDivision(division);
		elemDivisionText.value = 'none';
	}	
}	

// **************************************************************************
// DivToggleCheckedFalseEqualsShow
// **************************************************************************

function DivToggleCheckedFalseEqualsShow(control, ControlName, divisionTextbox, division){

	// Define division Text Box
	var DivisionText = control.id;
	var DivisionText = DivisionText.replace(ControlName, divisionTextbox);
	var	elemDivisionText = document.getElementById(DivisionText);
	var	elemListAddress = document.getElementById(control.id);
	
	// Test to see if the control checked value is true
	if (elemListAddress.checked == false){
		ShowDivision(division);
		elemDivisionText.value = 'block';
	}
	else{
		HideDivision(division);
		elemDivisionText.value = 'none';
	}	
}	

// **************************************************************************
// CheckNumeric_Money_No_Decimals (excluding decimal place character)
// **************************************************************************
		
function checkNumeric_Money_NoDec( control ) {

	// Add leading zero if required
	if (control.value.indexOf('.') == 0){
		control.value = "0" + control.value;
	}	

	// Find which key was pressed.		
	var evt = (evt) ? evt : ((window.event) ? event : null); 
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
	
	// If not any of below pressed
	if ((charCode == '8')||(charCode == '46')||    // Delete, Backspace
		(charCode == '9')||                        // Tab Key	
		(charCode == '37')||					   // Cursor Left
		(charCode == '38')||					   // Cursor Up
		(charCode == '39')||					   // Cursor Right
		(charCode == '40')||					   // Cursor Down
		(charCode == '48')||(charCode == '96')||   // 0 , 0 (keypad)
		(charCode == '49')||(charCode == '97')||   // 1 , 1 (keypad)			
		(charCode == '50')||(charCode == '98')||   // 2 , 2 (keypad)
		(charCode == '51')||(charCode == '99')||   // 3 , 3 (keypad)
		(charCode == '52')||(charCode == '100')||  // 4 , 4 (keypad)
		(charCode == '53')||(charCode == '101')||  // 5 , 5 (keypad)
		(charCode == '54')||(charCode == '102')||  // 6 , 6 (keypad)
		(charCode == '55')||(charCode == '103')||  // 7 , 7 (keypad)
		(charCode == '56')||(charCode == '104')||  // 8 , 8 (keypad)
		(charCode == '57')||(charCode == '105')){  // 9 , 9 (keypad)
		//(charCode == '110')||(charCode == '190')){ // . , . (keypad)
		
		//Only allow two decimal places
			if (control.value.indexOf('.') != -1){
				dectext = control.value.substring(control.value.indexOf('.') + 1, control.value.length);
				
				if (dectext.length > 2){
					control.value = control.value.substring(0, control.value.indexOf('.') + 3);
					return false;
				}
				
				// Only allow one decimal point
				var DecimalPoints = new Array();
				DecimalPoints = control.value.split('.');
				if (DecimalPoints.length == 2 && ((charCode == '110')||(charCode == '190'))){
					return false;
				}
			}
	}	
	else{
		return false;
	}	
}
// **************************************************************************
// Sort Code Auto Dash Fill
// **************************************************************************
function AutoDashFill( control ){
/*
	var evt = (evt) ? evt : ((window.event) ? event : null); 
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
	var elemSortCode = document.getElementById('_ctl0_txtBankSortCode');
	var flag = checkNumeric(control);

	if (flag == false){
		return false;
	}
	else{
		if ((charCode == '8')||(charCode == '46')){
		}
		else{
			if ((elemSortCode.value.length == "2")||(elemSortCode.value.length == "5")){
						elemSortCode.value = elemSortCode.value + "-"
			}
		}
	}	
}
*/
	var evt = (evt) ? evt : ((window.event) ? event : null);
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
	var elemDate = document.getElementById(control.id);
	var flag = checkNumericBank(control);

	if (flag == false){
		return false;
	}
	else{
		if ((charCode == '8')||(charCode == '46')){
		}
		else{
			if ((elemDate.value.length == "2")||(elemDate.value.length == "5")){
						elemDate.value = elemDate.value + "-"
			}
		}
	}	
}
// *************************************************************************
// Check Numeric (Numeric Only)
// *************************************************************************
function checkNumericBank( control ) {

// Find which key was pressed.		
var evt = (evt) ? evt : ((window.event) ? event : null); 
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;

// If not a tab , delete or backspace, set FirmName and Postcode fields to ""
	if ((charCode == '8')||(charCode == '46')||    // Delete, Backspace
		(charCode == '9')||                        // Tab Key	
		(charCode == '37')||					   // Cursor Left
		(charCode == '38')||					   // Cursor Up
		(charCode == '39')||					   // Cursor Right
		(charCode == '40')||					   // Cursor Down
		(charCode == '48')||(charCode == '96')||   // 0 , 0 (keypad)
		(charCode == '49')||(charCode == '97')||   // 1 , 1 (keypad)			
		(charCode == '50')||(charCode == '98')||   // 2 , 2 (keypad)
		(charCode == '51')||(charCode == '99')||   // 3 , 3 (keypad)
		(charCode == '52')||(charCode == '100')||  // 4 , 4 (keypad)
		(charCode == '53')||(charCode == '101')||  // 5 , 5 (keypad)
		(charCode == '54')||(charCode == '102')||  // 6 , 6 (keypad)
		(charCode == '55')||(charCode == '103')||  // 7 , 7 (keypad)
		(charCode == '56')||(charCode == '104')||  // 8 , 8 (keypad)
		(charCode == '57')||(charCode == '105')    // 9 , 9 (keypad)
		){ 
	}	
	else{
		return false;
	}	
}

// **************************************************************************
// Sort Code Auto Dash Fill
// **************************************************************************
function DateFormatting ( control ) {
	var evt = (evt) ? evt : ((window.event) ? event : null);
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
	var elemDate = document.getElementById(control.id);
	var flag = checkNumeric(control);

	if (flag == false){
		return false;
	}
	else{
		if ((charCode == '8')||(charCode == '46')){
		}
		else{
			if ((elemDate.value.length == "2")||(elemDate.value.length == "5")){
						elemDate.value = elemDate.value + "/"
			}
		}
	}	
}



		// MOD 1 Mike Eggington - change check Numeric

// *************************************************************************

// Check Numeric (Numeric Only)

// *************************************************************************

function checkNumeric(event, control) {

// Find which key was pressed. 

var evt = (evt) ? evt : ((window.event) ? event : null);

var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

// If not a tab , delete or backspace, set FirmName and Postcode fields to ""

if ((keyCode == '8') || (keyCode == '46') || // Delete, Backspace

(keyCode == '9') || // Tab Key 

(keyCode == '37') || // Cursor Left

(keyCode == '38') || // Cursor Up

(keyCode == '39') || // Cursor Right

(keyCode == '40') || // Cursor Down

(keyCode == '48') || // 0 , 0 (keypad)

(keyCode == '49') || // 1 , 1 (keypad) 

(keyCode == '50') || // 2 , 2 (keypad)

(keyCode == '51') || // 3 , 3 (keypad)

(keyCode == '52') || // 4 , 4 (keypad)

(keyCode == '53') || // 5 , 5 (keypad)

(keyCode == '54') || // 6 , 6 (keypad)

(keyCode == '55') || // 7 , 7 (keypad)

(keyCode == '56') || // 8 , 8 (keypad)

(keyCode == '57') // 9 , 9 (keypad)

) {

}

else {

return false;

}

}

// MOD 1 - Mike Eggington - new cross browser routine added.

// **************************************************************************

// Date Oblique Auto Fill

// **************************************************************************

function DateFormatting(event, control) {

var evt = (evt) ? evt : ((window.event) ? event : null);

var elemDate = document.getElementById(control.id);

var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

var flag = checkNumeric(event, control);

if (flag == false) {

return false;

}

else {

if ((keyCode == '8') || (keyCode == '46')) {

}

else {

if ((elemDate.value.length == "2") || (elemDate.value.length == "5")) {

elemDate.value = elemDate.value + "/"

}

}

}

}


//////////////////////////////////////////////////////////////////////////////////////////
// Drop down menu
//////////////////////////////////////////////////////////////////////////////////////////
var timeout	= 100;
var closetimer	= 0;
var ddmenuitem	= 0;

// open hidden layer
function mopen(id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 
