var skip_unload_check=false;

/** Scroller **/
/*var scrollCounter = 0;
var scrollText = "24-hour Enquiry : 2152 0111"
var scrollDelay = 80;
var i = 0;

while (i ++ < 140)
	scrollText = " " + scrollText;

function Scroller() {
	window.status = scrollText.substring(scrollCounter++,
	scrollText.length);
	if (scrollCounter == scrollText.length)
	scrollCounter = 0;
	setTimeout("Scroller()", scrollDelay);
}

Scroller();*/


/** Block Right Click **/
am = "Right click is disabled.";
bV  = parseInt(navigator.appVersion)
bNS = navigator.appName=="Netscape"
bIE = navigator.appName=="Microsoft Internet Explorer"


function nrc(e) {
	if (bNS && e.which > 1){
		alert(am);
		return false;
	} else if (bIE && (event.button >1)) {
		alert(am);
		return false;
	}
}


var dis_key_msg = "This KEY is disabled.";
//var msg = 'That functionality is restricted.';
var asciiBack		= 8;
var asciiTab		= 9;
var asciiEnter		= 13;
var asciiSHIFT		= 16;
var asciiCTRL		= 17;
var asciiALT		= 18;
var asciiHome		= 36;
var asciiLeftArrow	= 37;
var asciiRightArrow	= 39;
var asciiMS			= 92;
var asciiView		= 93;
var asciiF1			= 112;
var asciiF2			= 113;
var asciiF3			= 114;
var asciiF4			= 115;
var asciiF5			= 116;
var asciiF6			= 117;
var asciiF11		= 122;
var asciiF12		= 123;
var asciiF11		= 122;

document.onkeydown = blockKeys; /** enable later **/
document.onmousedown = nrc;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
if (bNS && bV<5) window.onmousedown = nrc; /** enable later **/


/** Normal Functions **/
function DisableField(obj) {
	//obj.disabled = true;
	document.getElementById(obj).disabled=true;
	//obj.style.backgroundColor = '#CCCCCC';
	 document.getElementById(obj).style.backgroundColor = '#CCCCCC';
}


function EnableField(obj) {
	//obj.disabled = false;
	document.getElementById(obj).disabled=false;    
	//obj.style.backgroundColor = '#FFFFFF';
	document.getElementById(obj).style.backgroundColor = '#FFFFFF';
}


/*window.onbeforeunload = function(event) {
	var oEvent = (window.event) ? window.event : event;
	var X = oEvent.pageX? oEvent.pageX:oEvent.clientX;
	var Y = oEvent.pageY? oEvent.pageY:oEvent.clientY;
	if ( oEvent.pageX || oEvent.pageY ) {
		alert('pageX = ' + oEvent.pageX + '\npageY' + oEvent.pageY);
	} else if ( oEvent.clientX || oEvent.clientY ) {
		alert('clientX' + oEvent.clientX + '\nclientY' + oEvent.clientY);
	}
	if ( skip_unload_check == false ) {
		//if (event.clientX > document.body.clientWidth || event.altkey) {
		//if (window.event.clientX <0 || window.event.clientY<0 || window.event.altkey) {
		if ( X<0 || Y<0 || oEvent.altkey || exit_flag ) {
			return ' ';
		} 
	}
}*/


function getEvent() {
	if (document.all) {
		return window.event;
	}
	func = getEvent.caller;
	while ( func != null ) {
		var arg0 = func.arguments[0];
		if (arg0) {
			if ( (arg0.constructor==Event || arg0.constructor==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation) ) {
				return arg0;
			}
		}
		func = func.caller;
	}
	return null;
}

function ConfirmClose() {
	if ( window.event ) {
/*		alert('ie');
		if ( window.event.clientX || window.event.clientY ) {
			alert('clientX' + window.event.clientX + '\nclientY' + window.event.clientY);
		}
*/		if ( skip_unload_check == false ) {
			if ( window.event.clientX <0 || window.event.clientY<0 || window.event.altkey ) {
				window.event.returnValue = '';
			} 
		}
	} else {
/*		alert('firefox');
		alert('event'+getEvent());
		if ( getEvent.clientX || getEvent.clientY ) {
			alert('clientX' + getEvent.clientX + '\nclientY' + getEvent.clientY);
		}
*/		if ( getEvent().pageX || getEvent().pageY ) {
			alert('pageX' + getEvent().pageX + '\npageY' + getEvent().pageY);
		}
		if ( skip_unload_check == false ) {
			if ( getEvent().pageX<0 || getEvent().pageY<0 || getEvent().altkey ) {
				getEvent().preventDefault();
			}
		}
	}
}

/*window.onbeforeunload = ConfirmClose;*/



function entering_data(obj_name, chk_len, next_obj_name, e) {
	// Skip this function for "TAB" and "Shift-TAB" key strokes
	var key = (e.which) ? e.which : window.event.keyCode;
	if ((key == "9") || (key == "16"))
		return;

	var c_len = document.getElementById(obj_name).value.length;
	if (c_len == chk_len)
		document.getElementById(next_obj_name).focus();
}


function dim_input_by_objects(chk_obj_1,chk_obj_2,chk_obj_3, tar_object) {
	var value_1 = document.getElementById(chk_obj_1).value;
	var value_2 = document.getElementById(chk_obj_2).value;
	var value_3 = document.getElementById(chk_obj_3).value;
	var t_color = document.getElementById(tar_object).style.backgroundColor;
	var t_disble = document.getElementById(tar_object).disabled;
	
	if ((value_1 == "") || (value_2 == "") || (value_3 = "")) {
		t_color = '#CCCCCC';
		t_disble = true;
	} else if ((value_1 != "") && (value_2 != "") && (value_3 != "")) {
		t_color = '#FFFFFF';
		t_disble = false;
	}
}


function disable_input_by_objects(chk_obj_1,chk_obj_2,chk_obj_3) {
	// Skip this function for "TAB" and "Shift-TAB" key strokes
	if ((event.keyCode == "9") || (event.keyCode == "16"))
		return;
	var c_len_1=0;
	var c_len_2=0;  
	var c_len_3=0;    
	//if (document.getElementById(chk_obj_1)) {
	//alert('checking ');
	//c_len_1 = document.getElementById(chk_obj_1).value.length;
	//}
	c_len_1 = document.getElementById(chk_obj_1).value.length;
	c_len_2 = document.getElementById(chk_obj_2).value.length;
	c_len_3 = document.getElementById(chk_obj_3).value.length;    
	if (!(c_len_1>0 && c_len_2>0 && c_len_3>0))
		event.keyCode=0;
}


function clear_input_by_objects(chk_obj_1,chk_obj_2,chk_obj_3, clear_obj) {
	var c_len_1=0;
	var c_len_2=0;  
	var c_len_3=0;    
	c_len_1 = document.getElementById(chk_obj_1).value.length;
	c_len_2 = document.getElementById(chk_obj_2).value.length;
	c_len_3 = document.getElementById(chk_obj_3).value.length;    
	if (c_len_1==0 && c_len_2==0 && c_len_3==0) {
		document.getElementById(clear_obj).value='';    
		DisableField(clear_obj);
	} else if(c_len_1==0 || c_len_2==0 || c_len_3==0) {
		DisableField(clear_obj);
	} else {
		EnableField(clear_obj);
	}
}



function next_focus(next_obj_name) {
	document.getElementById(next_obj_name).focus();
}


/** OnMouseOver Image Swapper **/
function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}


function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function check_radio(objectSelect) {
    var isChecked = false;
	for (var i=0; i<objectSelect.length; i++) {
		if (objectSelect[i].checked == true) {
			isChecked = true;
			break;
		}
	}
	
	return isChecked;
}


function blockKeys(evt) {

	window.status = '';
	//get the event object
	var oEvent = (window.event) ? window.event : evt;
	
	//hmmm in mozilla this is jacked, so i have to record these seperate
	//what key was pressed
	var nKeyCode = 	oEvent.keyCode ? oEvent.keyCode : oEvent.which ? oEvent.which : void 0;
	//alert("nKeyCode=" + nKeyCode);
	
	var bIsFunctionKey = false;

	if(oEvent.charCode == null || oEvent.charCode == 0){ 
		bIsFunctionKey = (nKeyCode >= asciiF2 && nKeyCode <= asciiF12) || (nKeyCode == asciiALT || nKeyCode == asciiMS || nKeyCode == asciiView || nKeyCode == asciiHome || nKeyCode == asciiBack) 
	}

	//hmmm in mozilla the keycode would contain a function key ONLY IF the charcode IS 0	
	//else key code and charcode read funny, the charcode for 't' 
	//returns 116, which is the same as the ascii for F5
	//SOOO,... to check if a the keycode is truly a function key, 
	//ONLY check when the charcode is null OR 0, IE returns null, mozilla returns 0 
	if(oEvent.charCode == null || oEvent.charCode == 0) { 
		bIsFunctionKey = (nKeyCode >= asciiF2 && nKeyCode <= asciiF12) || (nKeyCode == asciiALT || nKeyCode == asciiMS || nKeyCode == asciiView || nKeyCode == asciiHome || nKeyCode == asciiBack)
	}
	
	//convert the key to a character, makes for more readable code
	
	var sChar = String.fromCharCode(nKeyCode).toUpperCase();

	//get the active tag that has the focus on the page, and its tag type
	var oTarget = (oEvent.target) ? oEvent.target : oEvent.srcElement;
	var sTag = oTarget.tagName.toLowerCase();
	var sTagType = oTarget.getAttribute("type");
	var bAltPressed = (oEvent.altKey) ? oEvent.altKey : oEvent.modifiers & 1 > 0;
	var bShiftPressed = (oEvent.shiftKey) ? oEvent.shiftKey : oEvent.modifiers & 4 > 0;
	var bCtrlPressed = (oEvent.ctrlKey) ? oEvent.ctrlKey : oEvent.modifiers & 2 > 0;
	//var bMetaPressed = (oEvent.metaKey) ? oEvent.metaKey : oEvent.modifiers & 8 > 0;

	var bRet = true; //assume true as that will be the case most times
	//alert (nKeyCode + ' ' + sChar + ' ' + sTag + ' ' + sTagType + ' ' + bShiftPressed + ' ' + bCtrlPressed + ' ' + bAltPressed);

	
	if(sTagType != null){
		sTagType = sTagType.toLowerCase();
	}
	
	if(nKeyCode == asciiEnter && sTag == "input" && (sTagType == "text" || sTagType == "password")){
		bRet = false;
		return false;
	}

	if (sTag == "textarea" || (sTag == "input" && (sTagType == "text" || sTagType == "password")) && (nKeyCode == asciiBack || nKeyCode == asciiSHIFT || nKeyCode == asciiHome || bShiftPressed || (bCtrlPressed && (nKeyCode == asciiLeftArrow || nKeyCode == asciiRightArrow)))){ //allow typing in the text box
		return true;
	} else if(bAltPressed && (nKeyCode == asciiLeftArrow || nKeyCode == asciiRightArrow || nKeyCode == asciiHome)){ // block alt + left or right arrow
		bRet = false;		
		return false;
	} else if(nKeyCode == asciiView){
		bRet = false;	
		alert (dis_key_msg);	// View KEY is disabled	 
	} else if ((bCtrlPressed && sChar == 'R') || (bCtrlPressed && sChar == 'N')) {
		bRet = false;
	} else if(bCtrlPressed && (sChar == 'A' || sChar == 'C' || sChar == 'V' || sChar == 'X')){ // ALLOW cut, copy and paste, and SELECT ALL 
		bRet = true;
	} else if(bShiftPressed && nKeyCode == asciiTab){//allow shift + tab
		bRet = true;
	} else if(bIsFunctionKey){ // Capture and stop these keys
		bRet = false;
	} /*else if(bCtrlPressed || bShiftPressed || bAltPressed) { //block ALL other sequences, includes CTRL+O, CTRL+P, CTRL+N, etc....
		bRet = false;
	}*/
	
		
	if(!bRet){
		try{
			oEvent.returnValue = false;
			oEvent.cancelBubble = true;

			if(document.all){ //IE
				oEvent.keyCode = 0;
			}else{ //NS
				oEvent.preventDefault();
				oEvent.stopPropagation();
			}
			//window.status = msg; 
		}catch(ex){
			//alert(ex);
		}
	}
	
	/* temp add */
	return bRet;
}

// Restrict the input of the field "obj" to maximum length "maxlen"

function limit_length(obj, maxlen) {
	if (obj.value.length > maxlen) {
		alert("Input cannot exceeds " + maxlen + " characters");
		obj.value = obj.value.substring(0, maxlen);
	}
}

