/*
	@autor: Elvis Navarro Vega
	Grupo de Desarrollo Plataforma - Universidad de Pamplona.
	Pamplona (Norte de Santander). Colombia.
	Marzo 21 del 2006
	HMSRetrocesoTeclas.js
	Version para PortalIG
*/


function HMSBloquearTeclas () {
	
	this.BloquearTeclas = function ( _valor ) {
		HMSFoco = _valor;
	}; 
	
	/**
	 * valida las teclas bajo los exploradores IE
	 */
	this.HMSCualTeclaIE = function ( _event ) {
		try {	
			if ( navigator.appVersion.search(/MSIE/) != -1 ){	
			
				if( window.event && window.event.keyCode >= 110 && window.event.keyCode <= 125 ) {
					window.event.keyCode = 505;
				}	  
			
				if( window.event && window.event.keyCode == 116 )	window.event.keyCode = 505; 
				if( window.event && window.event.keyCode == 505 ) {
					window.event.cancelBubble = true;
					window.event.returnValue = false;
					return false; 
				}
					
				if ( HMSFoco == 'OFF' ){
					if ( ( event.altLeft ) || ( event.altKey ) || ( event.ctrlKey ) ) { return false; }
				}
				
				if(	window.event.ctrlKey && (
					window.event.keyCode == 68 || window.event.keyCode == 78 || window.event.keyCode == 79 || 
					window.event.keyCode == 82 || window.event.keyCode == 84 || window.event.keyCode == 85 ) ) { 
						window.event.cancelBubble = true;
						window.event.returnValue  = false;
						return false; 
				} 
		
				if ( HMSFoco == 'OFF' ){
					if( window.event && event.altLeft && ( window.event.keyCode == 37 || window.event.keyCode == 39 ) ) { return false; } 
				}
				
				if ( HMSFoco == 'OFF' ){
					if ( window.event && window.event.keyCode == 8 ) {
						window.event.cancelBubble = true;
						window.event.returnValue = false;
						return false;
					}
				}
			}
		} catch (e) {
			alert ( 'Ocurrio un error: \nIntenta acceder a una función de tecla que no esta permitida en esta página.\n\n' + e.message );
		}
	};


	/**
	 * valida las teclas bajo los exploradores NS
	 */
	this.HMSCualTeclaNS = function  ( event ) {
		try {	
			if ( navigator.appName == "Netscape" ){	
				if ( HMSFoco == 'OFF' ){
					// Teclas de Retroceso	
					if ( event.keyCode == 8 ) {
						var newEvent = document.createEvent("KeyEvents")
						newEvent.initKeyEvent("onkeypress", true, true, document.defaultView, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, 0, 0)
						event.preventDefault()
						event.target.dispatchEvent(newEvent)
					}	
				}
					
				// Teclas de Funcion F1 - F12	
				if ( event.keyCode > 110 && event.keyCode < 125 ) {
					var newEvent = document.createEvent("KeyEvents")
					newEvent.initKeyEvent("onkeypress", true, true, document.defaultView, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, 0, 0)
					event.preventDefault()
					event.target.dispatchEvent(newEvent)
				}
										
				// Teclas de Flecha Adelante o Atras
				if ( HMSFoco == 'OFF' ){
					if ( event.keyCode == 37 || event.keyCode == 39 ) {
						var newEvent = document.createEvent("KeyEvents")
						newEvent.initKeyEvent("onkeydown", true, true, document.defaultView, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, 0, 0)
						event.preventDefault()
						event.target.dispatchEvent(newEvent)
					}
				}
				
				if ( HMSFoco == 'OFF' ){
					if ( event.ctrlKey ) {
						//	100 >>> CTRL - D	110 >>> CTRL - N	111 >>> CTRL - O	112 >>> CTRL - P	114 >>> CTRL - R	116 >>> CTRL - T	117 >>> CTRL - U
						if ( event.which >= 100 && event.which <= 120 ) {
							var newEvent = document.createEvent("KeyEvents")
							if ( HMSFoco == "OFF" )
								newEvent.initKeyEvent("onkeydown", true, true, document.defaultView, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, 0, 0)
							else
								newEvent.initKeyEvent("onkeydown", true, true, document.defaultView, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey, event.which, 0)
							event.preventDefault()
							event.target.dispatchEvent(newEvent)
						}
					}	
				}
			}
		} catch (e) {
			alert ( 'Ocurrio un error: \nIntenta acceder a una función de tecla que no esta permitida en esta página.\n\n' + e.message );
		}
		
	};



}	//--> fin de HMSBloquearTeclas ()

var HMSFoco 		= 'OFF';
var HMSTeclas 		= new HMSBloquearTeclas ();
document.onkeydown  = HMSTeclas.HMSCualTeclaIE;
document.onkeypress = HMSTeclas.HMSCualTeclaNS;


function HMSObjetos () {
	this.HMSDigito = -1;

	this.SoloDigitosDecimal = function ( e ) {
		this.HMSDigito = -1;
		if ( e && e.which ) this.HMSDigito = e.which; // NS
		else if ( window.event && window.event.keyCode ) this.HMSDigito = window.event.keyCode; // IE
		return ( this.HMSDigito > -1 ? ( ( this.HMSDigito > 47 && this.HMSDigito < 58) || ( this.HMSDigito == 8 ) || ( this.HMSDigito == 46 )  ) : true);
	};
	
	this.SoloDigitos = function ( e ) {
		this.HMSDigito = -1;
		if ( e && e.which ) this.HMSDigito = e.which; // NS
		else if ( window.event && window.event.keyCode ) this.HMSDigito = window.event.keyCode; // IE
		return ( this.HMSDigito > -1 ? ( ( this.HMSDigito > 47 && this.HMSDigito < 58) || ( this.HMSDigito == 8 ) ) : true);
		
	};
	
	this.GetObjeto = function ( oName, oDocument ) {
		return ( document.getElementById ( oName ) );
	};
}

var HMSobjetos = new HMSObjetos ();


