
/*
	globalfunctions.js
	Funciones generales
*/



/*
	cambiarCombos
	Ejecuta un submit si cambio el valor de un combo
*/
function cambiarcombos(obl){

	updateUserInterface();
	if (obl == 1){
		irTarget('');
		document.formu.boton2.value='Combo';
		document.formu.submit();
	}
}


/*
	cambiarValueChkBox
	Cambia el valor de los check boxes
*/
function cambiarValueChkBox(objChk)
{
	if (objChk.value == "1") {
		objChk.value="0";
	}else{
		objChk.value="1";
	}
}



/*
	CampoFecha_Press
	Anade las barras a los campos fecha
*/	

function CampoFecha_Press(IdCampo)
{

	var ValorTotal = new String();
	var Valor = new String();
	var Longitud;
	var objCampoFecha;

	objCampoFecha = document.all[IdCampo];
	ValorTotal = objCampoFecha.value;

	// Obtengo el valor de la tecla presionada
	Valor = event.keyCode;

	// Unicamente si es un numero lo chequeo
	if ((Valor > 47) && (Valor < 58)) {
		Longitud = ValorTotal.length;
		
		switch (Longitud) {
			case 2:
				/* 
				 Termino de tipear los digitos correspondientes al dia.
				 Valido que sea un numero valido para el dia
				*/
				objCampoFecha.value = objCampoFecha.value + '/';
				break;
			case 5:
				/* 
				 Termino de tipear los digitos correspondientes al mes.
				 Valido que sea un numero valido para el dia, tomando en cuenta el mes
				*/
				objCampoFecha.value = objCampoFecha.value + '/';
				break;
			case 10:
				event.returnValue = false;				
			default:
		}
	}
	else {
		// No dejo ingresar el caracter inválido
		event.returnValue = false;
	}

	return false;

}

/*
	CampoFechaYHora_Press
	Anade las barras a los campos fecha
*/	

function CampoFechaYHora_Press(IdCampo)
{

	var ValorTotal = new String();
	var Valor = new String();
	var Longitud;
	var objCampoFecha;

	objCampoFecha = document.all[IdCampo];
	ValorTotal = objCampoFecha.value;

	// Obtengo el valor de la tecla presionada
	Valor = event.keyCode;

	// Unicamente si es un numero lo chequeo
	if ((Valor > 47) && (Valor < 58)) {
		Longitud = ValorTotal.length;
		
		switch (Longitud) {
			case 2:
				objCampoFecha.value = objCampoFecha.value + '/';
				break;
			case 5:
				objCampoFecha.value = objCampoFecha.value + '/';
				break;
			case 10:
				objCampoFecha.value = objCampoFecha.value + ' ';
				break;
			case 13:
				objCampoFecha.value = objCampoFecha.value + ':';
				break;
			case 16:
				objCampoFecha.value = objCampoFecha.value + ':';
				break;
			case 19:
				event.returnValue = false;				
			default:
		}
	}
	else {
		// No dejo ingresar el caracter inválido
		event.returnValue = false;
	}

	return false;

}


/*
	CampoHHMM_Press
	Añade los dos puntos a los campos hora
*/
function CampoHHMM_Press(IdCampo)
{
	var ValorTotal = new String();
	var Valor = new String();
	var Longitud;
	var objCampoHora;

	objCampoHora = document.all[IdCampo];
	ValorTotal = objCampoHora.value;

	// Obtengo el valor de la tecla presionada
	Valor = event.keyCode;

	// Unicamente si es un numero lo chequeo
	if ((Valor > 47) && (Valor < 58)) {
		Longitud = ValorTotal.length;
		
		switch (Longitud) {
			case 2:
				objCampoHora.value = objCampoHora.value + ':';
				break;
			case 5:
				event.returnValue = false;
			default:			
		}
	}
	else {
		// No dejo ingresar el caracter inv lido
		event.returnValue = false;
	}

}



/*
	CampoHora_Press
	Añade los dos puntos a los campos hora
*/
function CampoHora_Press(IdCampo)
{
	var ValorTotal = new String();
	var Valor = new String();
	var Longitud;
	var objCampoHora;

	objCampoHora = document.all[IdCampo];
	ValorTotal = objCampoHora.value;

	// Obtengo el valor de la tecla presionada
	Valor = event.keyCode;

	// Unicamente si es un numero lo chequeo
	if ((Valor > 47) && (Valor < 58)) {
		Longitud = ValorTotal.length;
		
		switch (Longitud) {
			case 2:
				/* 
				 Termino de tipear los digitos correspondientes al dia.
				 Valido que sea un numero valido para el dia
				*/
				objCampoHora.value = objCampoHora.value + ':';
				break;
			case 5:
				/* 
				 Termino de tipear los digitos correspondientes al mes.
				 Valido que sea un numero valido para el dia, tomando en cuenta el mes
				*/
				objCampoHora.value = objCampoHora.value + ':';
				break;
			case 8:
				event.returnValue = false;
			default:			
		}
	}
	else {
		// No dejo ingresar el caracter inv lido
		event.returnValue = false;
	}

	return false;
}


/*
	CampoControlDeHora
	Controla que la hora este entre las 00:00 y las 23:59
*/
function CampoControlDeHora(IdCampo)
{

	var objCampoHora;
	var strValor = new String();
	var intNumeroHora;
	var intHoraPrimerDigito

	objCampoHora = document.all[IdCampo];
	strValor = objCampoHora.value;
	
		
	if (strValor != "")
	{
		
		if ( (objCampoHora.value.length < 5) &&  (objCampoHora.value.length >=1) )
		{	
			alert ('Corrobore que la hora sea válida');
			objCampoHora.value = '';
			objCampoHora.focus();
		}
		else
		{
			if (objCampoHora.value.length = 5)
			{
				intNumeroHora = strValor.substr(0,1);
				if (intNumeroHora >= 3){
					alert ('Corrobore que la hora sea válida');
					objCampoHora.value = '';
					objCampoHora.focus();
					strValor = '';
					
				}
				
				intNumeroHora = strValor.substr(0,2);
				if (intNumeroHora >= 24){
					alert ('Corrobore que la hora sea válida');
					objCampoHora.value = '';
					objCampoHora.focus();
					strValor = '';
				}
				
				
				intNumeroHora = strValor.substr(3,1);
				if (intNumeroHora >= 6){
					alert ('Corrobore que la hora sea válida');
					objCampoHora.value = '';
					objCampoHora.focus();
				}
			
			}
		
		}
		
		
	
	}


}




/*
	formatearNum
	Formatea un dato numerico
*/
function formatearNum(auxStrNum, errpage){
	
	var result = "";
	var szNumero = "" + auxStrNum;
	var len = szNumero.length;
	var decSep = false;
	var i;

	for (i=(len-1); i>=0; i--) {
		if (!isNaN(szNumero.substr(i,1))) {
			result = szNumero.substr(i,1) + result;
		}
		else {
			if ((szNumero.substr(i,1) == ",") && !decSep) {
				result = szNumero.substr(i,1) + result;
				decSep = true;
			}
			if (szNumero.substr(i,1) != "." && szNumero.substr(i,1) != ",") {
				result = szNumero.substr(i,1) + result;
			}
			
		}
	}
	return result;
}



/*
	getLongDate()
	Genera la fecha en formato largo
*/
function getLongDate() {

	var date = new Date();
	var day = "";
	var month = "";
	var year = "";

	day = date.getDay();
	month = date.getMonth();
	year = date.getFullYear();
	
	var d;
	var m;
	var y;
	
	switch (day) {
	case 0:
		d = obtenerEtiqueta(szuil, "IDS_DOM");
		break;
	case 1:
		d = obtenerEtiqueta(szuil, "IDS_LUN");
		break;
	case 2:
		d = obtenerEtiqueta(szuil, "IDS_MAR");
		break;
	case 3:
		d = obtenerEtiqueta(szuil, "IDS_MIE");
		break;
	case 4:
		d = obtenerEtiqueta(szuil, "IDS_JUE");
		break;
	case 5:
		d = obtenerEtiqueta(szuil, "IDS_VIE");
		break;
	case 6:
		d = obtenerEtiqueta(szuil, "IDS_SAB");
		break;
	}
	
	switch (month) {
	case 0:
		m = obtenerEtiqueta(szuil, "IDS_ENERO");
		break;
	case 1:
		m = obtenerEtiqueta(szuil, "IDS_FEBRERO");
		break;
	case 2:
		m = obtenerEtiqueta(szuil, "IDS_MARZO");
		break;
	case 3:
		m = obtenerEtiqueta(szuil, "IDS_ABRIL");
		break;
	case 4:
		m = obtenerEtiqueta(szuil, "IDS_MAYO");
		break;
	case 5:
		m = obtenerEtiqueta(szuil, "IDS_JUNIO");
		break;
	case 6:
		m = obtenerEtiqueta(szuil, "IDS_JULIO");
		break;
	case 7:
		m = obtenerEtiqueta(szuil, "IDS_AGOSTO");
		break;
	case 8:
		m = obtenerEtiqueta(szuil, "IDS_SEPTIEMBRE");
		break;
	case 9:
		m = obtenerEtiqueta(szuil, "IDS_OCTUBRE");
		break;
	case 10:
		m = obtenerEtiqueta(szuil, "IDS_NOVIEMBRE");
		break;
	case 11:
		m = obtenerEtiqueta(szuil, "IDS_DICIEMBRE");
		break;
	}
	
	var szFecha = d + ", " + date.getDate() + " " + obtenerEtiqueta(szuil, "de") + " " + m + " " + obtenerEtiqueta(szuil, "de") + " " + year + ".";
	return szFecha;
}


/*
	hideTooltipOnEscape()
	Oculta un div setendo su propiedad display en 'none' al pulsar la tecla ESC
*/
function hideTooltipOnEscape(tooltipID) {
	if (event.keyCode == 27 && !event.altKey && !event.ctrlKey && !event.shiftKey)
		document.getElementById(tooltipID).style.display = "none";
}



/*
	irTarget
	Setea el target al formulario
*/
function irTarget(strTarget) {
	document.formu.target=strTarget;
}


/*
	Function: obtenerEtiqueta
	Obtiene una cadena del archivo de recursos de cadena (Cliente: XML Data Island)
*/
function obtenerEtiqueta(strIdioma, strEtiqueta) {
	var szEtiqueta = strEtiqueta;
	if (strIdioma == "" || strEtiqueta == "")
		return szEtiqueta;
		
	if (!document.all) 
		return szEtiqueta;

	var xml = xmlStringTable.documentElement;
	if (xml != null) 
	{
		var qs = '//language[@id="' + strIdioma + '"]/text[@id="' + strEtiqueta + '"]';
		var node = xml.selectSingleNode(qs);
		if (node != null)
			szEtiqueta = node.text;
		
		if (szEtiqueta == "")
			szEtiqueta = strEtiqueta;
	}
	return szEtiqueta;	
}


/*
	Val_Len
	Valida ellargo de un campo
*/
function Val_Len(IdCampo,len)
{
	var ValorTotal = new String();
	var Valor = new String();
	var Longitud;
	var objCampo;

	if (len!=0){
		objCampo = document.all[IdCampo];
		ValorTotal = objCampo.value;

		// Obtengo el valor de la tecla presionada
		Valor = event.keyCode;
		// Si es distinto de enter
		if (Valor != 13) {
			Longitud = ValorTotal.length;
			if (Longitud >= len){
				event.returnValue = false;
			}		
		}
	}
	return false;
}


/*
	Muestra_Ayuda
	Funcion que abre la ayuda
*/
function Muestra_Ayuda(Ancla)
{
	javascript:window.open('HLP.asp?ANCLA=' + Ancla + ' ','_blank','scrollbars=yes, toolbar=yes, location=no, status=no, width=800, height=600, left=50, top=50, resizable=yes');return false
}


/*
 * @class	NumberFormatter
 * formatea los números para mostrar en el gráfico
 *
 * */
function NumberFormatter(maxValue) {
	this.__cantLineasHorizontales = 0;
	this.__valDesc = 0;
	this.__maxValue = 0;
	
	var sMaxValue = "";
	var sDigitoInicial = "";
	var sValDesc = "";
	var nMax = 0;
	var nDecPos = -1;
	var nCantidadCeros = -1;
	
	sMaxValue = maxValue.toString();
	sDigitoInicial = String(parseInt(sMaxValue.substring(0, 1)) + 1);
	
	nDecPos = sMaxValue.indexOf(".");
	if (nDecPos == -1) {
		nCantidadCeros = sMaxValue.length - 1;
	} else {
		nCantidadCeros = sMaxValue.substring(0, nDecPos).length - 1;
	}
	
	sValDesc = "1" + "00000000000000000000".substring(0, nCantidadCeros);
	if (parseInt(sDigitoInicial) < 6 && parseInt(sDigitoInicial) > 2) {
		sValDesc = String(parseInt(sValDesc) / 2);
	}
	if (parseInt(sDigitoInicial) < 3) {
		sValDesc = String(parseInt(sValDesc) / 4);
	}
	
	sMaxValue = sDigitoInicial + "00000000000000000000".substring(0, nCantidadCeros);
	this.__maxValue = Math.ceil(sMaxValue);
	
	nMax = parseInt(sMaxValue);
	while (nMax > 0) {
		if (parseInt(sValDesc) == 0) {
			sValDesc = "1";
		}
		nMax = nMax - parseInt(sValDesc);
		this.__cantLineasHorizontales++;
	}
	this.__valDesc = parseInt(sValDesc);
};
NumberFormatter.prototype.getMaxValue = function() {
	return this.__maxValue;
};
NumberFormatter.prototype.getCantLineasHorizontales = function() {
	return this.__cantLineasHorizontales
};
NumberFormatter.prototype.formatValueY = function(value) {
	return (parseInt(value) - this.__valDesc);
};

