<!--
// SIEMPRE que NO querramos validar el cierre abrupto de una ventana, necesitaremos poner
// la siguiente variable en false...  needToConfirm=false;
// esto lo podemos hacer al inicio del programa o al hacer click en un boton o link (con javascript)
var needToConfirm = false; // arrancamos en falso, preocuparnos por ponerlo TRUE donde lo requiramos
var mmsg="Cerrar ésta ventana de ésta forma puede ocasionar problemas a sus datos.\n\n..desea continuar?";
window.onbeforeunload = confirmExit;
function confirmExit() {
	if (needToConfirm) { return (mmsg);	}
} //function confirmExit(... 

var isFormElementInRange;
var eVisible = new Array();

function checkFormElementInRange (form, name, min, max ) {

    isFormElementInRange  =  true;
    var val = parseInt( eval( "form." + name + ".value"  ));

    if(isNaN(val)) {
        isFormElementInRange = false;
        return false;
    }
    if (val < min || val > max )  {
        alert( val +" is not a valid row number!" );
        isFormElementInRange = false;
        eval( "form."+ name + ".focus()");
        eval( "form."+ name + ".select()");
    }else {
    eval( "form."+ name + ".value = val" );
    }
    return true;
}// function checkFormElementInRange (form, name, ...

function db_chkop(forma,campo,llave,nombre,tabla,valor,engrupos){
	//alert("Vienen, forma=["+forma+"], llave=["+llave+"], nombre=["+nombre+"], tabla=["+tabla+"], valor=["+valor+"], engrupos=["+engrupos+"]");
	/*
	 * NUEVO! (Abril 2011) agregamos parametro campo, que es el nombre del campo de FORM que estamos modificando
	 * mientras que llave debe ser unicamente el nombre del campo de la tabla que sirve de llave para lookup
	var x = eval(forma) ;
	var f = document.x ;
	 * NUEVO! (abril 2011) antes del cambio, utilizabamos el "*" o el "_" para poder usar el mismo nombre de llave-campo
	 * en distintos campos de un FORM (para evitar que se duplique y evitar errores en el FORM)
	 * AHORA usamos un parametro adicional, que es el "campo" que no es mas que el nombre del campo del FORM que deseamos usar
	 * me parece que vamos a utilizar una combinacion de ambos metodos para lograr un efecto mas utilitario...
	pueden venir las variables con un "*" o con un "_" al final; en ese caso necesitamos
	usar la variable limpia sin eso, pero agregarle 3 letras de la tabla. Esto se hizo para permitir que varias variables
	llamadas igual en las tablas, se puedan usar en el mismo FORM. Entonces, par ala variable local "var k" necesitamos
	saber el nomrbe que en la FORM se le da a esa variable
	ORIGINALMENTE USABAMOS ESTO:
		x=llave;
		kpa=x.indexOf("*");
		x=llave;
		kpg=x.indexOf("_");
		x=llave;
		if (kpa>0) { 
			ky=x.substring(0,kpa);
			ll=String(tabla).length;
			ky+="_"+String(tabla).substring(ll,ll-3); 
		}//if (kpa>0...
		else if (kpg>0) { ky=x.substring(0,kpg); }
		else { ky=x.toString(); }
	AHORA, LUEGO DEL CAMBIO en Abril 2011, cuando agregamos "campo"
	// adicionalmente si campo y llave son distintas, vamos a utilizar 3 letras del nombre del "campo"
	// para que sirvan como nombre diferenciador en lugar de 3 letras del nombre de la tabla
	// (esto fue porque en las pruebas de crafts.amonestaciones vimos que el nombre del nombde de la tabla
	// crafts.empleados era el mismo en jefe y en empleado porque estabamos consultando la misma tabla
	// para diferente campo (jefe y empleado-amonestado).
	*/
	if (campo==llave) { laref=tabla; } else { laref=campo; }
	x=campo;
	cpa=x.indexOf("*");
	x=campo;
	cpg=x.indexOf("_");
	x=campo;
	if (cpa>0) { 
		cm=x.substring(0,cpa);
		ll=String(laref).length;
		cm+="_"+String(laref).substring(ll,ll-3); 
	}//if (kpa>0...
	else if (cpg>0) { cm=x.substring(0,cpg); }
	else { cm=x.toString(); }
	
	//alert("kpa=["+kpa+"], kpg=["+kpg+"], llave=["+llave+"], ky=["+ky+"]");
	var wpars="location=0,menubar=0,status=1,scrollbars=1,resizable=1,width=350,height=500";
	var c=eval("document."+forma+".m_"+cm+".value");
	var vars='vf='+campo+'&vi='+llave+'&vn='+nombre+'&vl='+c+'&mf='+forma+'&tb='+tabla+'&gr='+engrupos;
	var urls='db_lukop.php?' + vars;
	window.open( urls, 'wincat', wpars );
} // db_chkop(forma,campo,...
function format_number(vlr)
{
	//xval = abs(vlr);
	//xdec = vlr - xval;
	//resultado = xval + '.' + xdec.substring(0,3);
	resultado = vlr.toFixed(2);
	//resultado = vlr;
	return (resultado);
}// format_number(...
function radioval(ro) 
{
	var radlen = ro.length;
	var valrad = ''; // inicializamos 
	for (var i=0; i<radlen; i++) 
	{
		if (ro[i].checked) 
		{
			var valrad = ro[i].value;
		}// if (ro[i].checked...
	}// for (var... 
	return (valrad);
}// function radioval(...

// ********************************
// Elements' Visibility
// ********************************
// NUEVO Junio 2011, muestra o esconde elementos de pagina HTML, para usarlo
// debemos incluir en el programa php o la pagina HTML la funcion ElementId()
// para identificar los elementos con su id="xxx" ( x ej: <table id="miTabla"> )
// asi:
// function ElementId(whichElement) {
//	if (whichElement==1) { x=document.getElementById("miTabla"); } // numero secuencial con el que identificamos al elemento
//  if (whichElement==2) { x=document.getElementById("miTexto"); } // numero secuencial con el que identificamos al elemento
//	return x; // este resultado es el que necesitan las funciones hideElement(n), removeElement(n), showElement(n)...
// }
//
// luego entonces para hacer invisible la tabla "miTabla" ponemos un LINK asi:
// Hacer [<a href='Javascript:hideElement(1);' >invisible</a>] la tabla. <br>
// RECUERDE: los elementos identificables dentro de una pagina HTML o programa php
// los referimos por su numero secuencial, definido en la funcion ElementId(...
//
// la function ElementId() DEBE estar en la pagina o programa que la usa porque
// la UNICA forma de conocer el valor "addresable" del id es corriendo el codigo
// Javascript donde fué creado el elemento id=""... (pequeño secretito del javascript)
// Estas funciones de visibilidad funcionan MUCHO mejor para mostrar o esconder 
// parrafos o elementos incluidos en un <div></div>,  x ej: <div id="midiv"> ... </div>
// pero tambien pueden fucionar con elementos individuales, x ej: <table id="miTabla">...</table>
function setElementVisibility(elementToSet, showItSwitch, keepPlacementSwitch)
{
	 if (showItSwitch) {
	   elementToSet.style.display = "inline";
	   elementToSet.style.visibility = "visible";
	 } else {
	   if (keepPlacementSwitch) {
	     elementToSet.style.display = "inline";
	     elementToSet.style.visibility = "hidden";
	   } else {
	     elementToSet.style.display = "none";
	   }//if (keepPlacementSwitch) {
	 }//if (showItSwitch) {
}//function setElementVisibility
function hideElement(whichElement)	
{ // esto solo "esconde" el elemento respetando el espacio que ocupaba
	var x=eval( "document.getElementById('" + whichElement +"')" ); 
	setElementVisibility( x, false, true);
}//function hideElement(
function removeElement(whichElement) 
{ // esto "remueve" desplazando hacia arriba lo que se encuentre debajo
	var x=eval( "document.getElementById('" + whichElement +"')" ); 
	setElementVisibility( x, false, false); 
}//function removeElement(
function showElement(whichElement) 
{ // esto "muestra" el elemento
	var x=eval( "document.getElementById('" + whichElement +"')" ); 
	setElementVisibility( x, true); 
}//function showElement(
function toogleElement(whichElement) 
{ // esto muestra/esconde el elemento; AGUAS! no en todos los browsers funciona!
	// oporque algunos browser usan display y otros visible... 
	var x=eval( "document.getElementById('" + whichElement +"')" ); 
	if (x.style.display=='none' | x.style.visibility=='hidden') {
		// esta escondido...
		showElement(whichElement); toogleElimage(true);
	} else { 
		// esta visible...
		removeElement(whichElement);  toogleElimage(whichelement,false);
	}//if (x.style.display
}//function showElement(
function toogleElimage(whichElement,ipath,ifile1,ifile2)
{
	var x=eval( "document.getElementById('" + whichElement +"')" ); 
	var g=eval( "document.getElementById('i" + whichElement +"')" );
	if (x.style.display=='none' | x.style.visibility=='hidden') {
		// esta escondido...
		showElement(whichElement); var xopen = true;
	} else { 
		// esta visible...
		removeElement(whichElement); var xopen = false;
	}//if (x.style.display
	if (xopen)	{ 
		ffile=ifile2; // puesto que esta abierto, mostramos imagen para cerrar 
	} else { 
		ffile=ifile1; // puesto que esta cerrado, mostramos imagen para abrir
	}//if (xopen)	{
	g.src = ipath + ffile; // cambiamos la grafica para mostrar abierto o cerrado
}//function toogleElimage(whichElement...
//********************************

//-->


