/**************************************************************
*	Funcion para inicializar dropdowns
*
*	@ obj = objeto del dropdown
*	@ val = valor a buscar para seleccionar
*
*	@ callOnChange = true : llama la funcion onchange definida 
****************************************************************/
	function select_init( obj, val, callOnChange ) {
		for (j=0; j<obj.options.length; j++) {
			if ( obj.options[j].value == val )
				obj.options[j].selected = true;
		}
		
		if (callOnChange == true) 
			obj.onchange();
	}

/**************************************************************
*	Funcion para 3 DropDowns anidados
*
*	@ sel1 = objeto del dropdown padre
*	@ sel2 = objeto del dropdown hijo
*	@ sel3 = objeto del dropdown nieto
*
*	@ val1 = valor del primer option del dropdown hijo
*	@ val2 = valor del primer option del dropdown nieto
*
*	@ tit1 = Texto del primer option del dropdown hijo
*	@ tit2 = Texto del primer option del dropdown nieto
*
*	@ arr1  = Arreglo que contiene la relacion padre-hijo (idhijo , texto, idPadre)
*	@ arr2  = Arreglo que contiene la relacion hijo-nieto (idnieto, texto, idhijo, idpadre)
*	@ sender = 1:padre, 2:hijo
****************************************************************/
	function selects_3_onchange( sel1, sel2, sel3, val1, val2, tit1, tit2, arr1, arr2, sender ) {
		var value1 = sel1.value;
		
		if (sender == 1) {
			sel2.options.length = 0;
			sel2.options[0] = new Option(tit1,val1);
				
			for (i=0; i<arr1.length; i++) {
				arrTmp = arr1[i];
				if ( arrTmp[2] == value1 ) {
					sel2.options[sel2.options.length] = new Option( arrTmp[1], arrTmp[0] );
				}
			}
		}
		
		var value2 = sel2.value;
		
		sel3.options.length = 0;
		sel3.options[0] = new Option(tit2,val2);
			
		for (i=0; i<arr2.length; i++) {
			arrTmp = arr2[i];
			if ( arrTmp[3] == value1 && arrTmp[2] == value2 ) {
				sel3.options[sel3.options.length] = new Option( arrTmp[1], arrTmp[0] );
			}
		}
	}
	
/**************************************************************
*	Funcion para 2 DropDowns anidados
*
*	@ sel1 = objeto del dropdown padre
*	@ sel2 = objeto del dropdown hijo
*
*	@ val = valor del primer option del dropdown hijo
*	@ tit = Texto del primer option del dropdown hijo
*
*	@ arr  = Arreglo que contiene la relacion padre-hijo (idhijo , texto, idPadre)
****************************************************************/
	function selects_2_onchange( sel1, sel2, val, tit, arr ) {
		var value1 = sel1.value;
		
		sel2.options.length = 0;
		sel2.options[0] = new Option(tit,val);
			
		for (i=0; i<arr.length; i++) {
			arrTmp = arr[i];
			if ( arrTmp[2] == value1 ) {
				sel2.options[sel2.options.length] = new Option( arrTmp[1], arrTmp[0] );
			}
		}
	}
	
/**************************************************************
*
*    Valida enteros
*
**************************************************************/
	function isInteger( value, min, max ) {
		var checkOK = "0123456789-";
		var checkStr = value;
		var allValid = true;
		var validGroups = true;
		var decPoints = 0;
		var allNum = "";
		
		for (i = 0;  i < checkStr.length;  i++) {
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
				if (ch == checkOK.charAt(j)) break;
				
			if (j == checkOK.length) {
				allValid = false;
				break;
			}
			allNum += ch;
		}
		
		var prsVal = parseInt(checkStr);

		if (!allValid)  return (false);
		if ( !( prsVal >= min && prsVal <= max ) )  return (false);
			
		return (true);
	}
	
/**************************************************************
*
*    Valida flotantes
*
**************************************************************/
	function isFloat( value, min, max ) {
		var checkOK = "0123456789-.";
		var checkStr = value;
		var allValid = true;
		var validGroups = true;
		var decPoints = 0;
		var allNum = "";
		
		for (i = 0;  i < checkStr.length;  i++) {
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
				if (ch == checkOK.charAt(j)) break;
				
			if (j == checkOK.length) {
				allValid = false;
				break;
			}
			allNum += ch;
		}
		
		var prsVal = parseFloat(checkStr);

		if (!allValid)  return (false);
		if ( !( prsVal >= min && prsVal <= max ) )  return (false);
			
		return (true);
	}
	
/**************************************************************
*
*    Valida fechas en formato YYYY-MM-DD
*
**************************************************************/
	function ValidaFechaMysql(Cadena){
	   var Fecha= new String(Cadena)   // Crea un string
	   var RealFecha= new Date()   // Para sacar la fecha de hoy
	   // Cadena Año
	   //var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length))
	   var Ano = new String(Fecha.substring(0,Fecha.indexOf("-")))
	   
	   // Cadena Mes
	   var Mes = new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")))
	   
	   // Cadena Día
	   var Dia = new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length))
		
		
	   // Valido el año
	   if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
	      return false
	   }
	   // Valido el Mes
	   if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
	      return false
	   }
	   // Valido el Dia
	   if (isNaN(Dia) || parseInt(Dia)<1 || parseInt(Dia)>31){
	      return false
	   }
	   if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
	      if (Mes==2 && Dia > 28 || Dia>30) {
	         return false
	      }
	   }
	   
	   return true;
	}
	
/**************************************************************
*
*    Abrir popup
*
**************************************************************/
function open_window( url, width, height ) {
 		 popupsisimo = window.open(url, "popupsisimo", "scrollbars,WIDTH=" + width +  ",HEIGHT=" + height);
 		 popupsisimo.focus();
 	}