﻿		/***********************************************************************************************/
		
		/* Funciones usada para manejo de combos relacionados, en la pagina que se use
		 * se debera declarar un arreglo Java Script  de la forma:  codHijo@codPadre@descHijo
		 * donde codHiijo/ descHijo son usados por ej en un select que depende de otro donde
		 * se selecciono codPadre */
		 
		 
		 
		function ActualizaSelectDependientes(selectPadre, selectHijo, lista ){
				var idPadre = selectPadre.value;
				var elemento;
				selectHijo.selectedIndex = -1;
				selectHijo.options.length = 0;
				var opt = document.createElement('OPTION');	
				opt.text = "Seleccione...";
				opt.value = -1;
				selectHijo.add(opt);

				for ( var i=0; i<lista.length ; i++){
					elemento = lista[i];
					var codPadre= getCodSegundo(elemento);
					if ( codPadre == idPadre ){
						var codHijo = getCodPrimero(elemento);
						var nomHijo = getNom(elemento);
						var opcion = document.createElement('OPTION');
						opcion.text = nomHijo;
						opcion.value = codHijo ;
						selectHijo.add(opcion);
					}
				} 
		}

		function ActualizaSelectDependientesCompuesto(selectPadre, selectPadre2, selectHijo, lista ){
				var idPadre = selectPadre.value+'|'+selectPadre2.value;
                //alert("idPadre:"+ idPadre);
				var elemento;
				selectHijo.selectedIndex = -1;
				selectHijo.options.length = 0;
				var opt = document.createElement('OPTION');	
				opt.text = "Seleccione...";
				opt.value = -1;
				selectHijo.add(opt);

				for ( var i=0; i<lista.length ; i++){
					elemento = lista[i];
					var codPadre= getCodSegundo(elemento);
					if ( codPadre == idPadre ){
						var codHijo = getCodPrimero(elemento);
						var nomHijo = getNom(elemento);
						var opcion = document.createElement('OPTION');
						opcion.text = nomHijo;
						opcion.value = codHijo ;
						selectHijo.add(opcion);
					}
				} 
		}




        

		//actualiza el valor seleccionado en un elemento select dado
		function ActualizaSeleccionSelect(select, codSeleccionado){
			select.value=codSeleccionado;
			return;
		}



		//Obtiene el primer codigo del elemento
		function getCodPrimero(elemento){
			var cod;
			var ind = elemento.indexOf("@"); 
			cod = elemento.substring(0,ind);
			return cod;
		}

		// dep@este@nom
		function getCodSegundo(elemento){
			var cod;
			var ind = elemento.indexOf("@");
			var ind2 = elemento.indexOf("@",ind+1);
			cod = elemento.substring(ind+1,ind2);
			return cod;
		}

		//dep@prov@este        
		function getNom(elemento){
			var nom;
			var ind = elemento.indexOf("@");
			var ind2 = elemento.indexOf("@",ind+1);
			nom = elemento.substring(ind2+1,elemento.length);
			return nom;
		}
		
		
		/**********************************************************************************/
		
		/* Abre un ModalDialog  de URL dada centrado en el Browser 
		*	con un ancho y alto especificado, internamente pasa una referencia
		* de la ventana que abre el ModalDialog*/
        function doAlert(msg){
            alert(msg+"ALERT");
            }  
            
		function abreModalDialog(url , sParams, ancho, alto){
            var posX = (window.screenLeft + document.body.offsetWidth/2)-ancho/2-100;
            var posY = (window.screenTop+ document.body.offsetHeight/2)-alto/2-60;
            window.open(url, sParams, "scrollbars=yes, location=no, status=no, menubar=no, titlebar=no, toolbar=no, directories=no, width="+ancho+"px, height="+alto+"px, left="+posX+"px ,top="+posY+"px");

        }
		
		/* Cierra el Modal dialog desde donde se invoca esta funcion
		* y actualiza la ventana que lo abrio */
		function fncActualizaModalOpener() {
			        
                if ( window.opener && !window.opener.closed ) {
                    opener.location.reload();
                    opener.window.focus();
                } 
                window.close();
		}



		/******************************************************************************/
		function saveOptionName(select,hidden){
			var selectedName;
			var selectedValue=select.value;
			var opciones=select.options;
			for ( var i=0; i<opciones.length;i++){
				if( opciones(i).value == selectedValue){
					selectedName=opciones(i).text;
				 }           
			}            
			hidden.value=selectedName;
		}
   
		function isValidFormat(input){
			var inputString = input.value;
			var final="";
			for ( var i=0; i<inputString.length; i++){
				if(isAlphaNumeric(inputString.charAt(i))) {
					final=final+inputString.charAt(i);
				}
			}
				input.value=final;
				return true;
		}

		function isValidFormatWithSpace(input){
			var inputString = input.value;
			var final="";
			for ( var i=0; i<inputString.length; i++){
				if(isAlphaNumeric(inputString.charAt(i)) || inputString.charAt(i) == ' '  ) {
					final=final+inputString.charAt(i);
				}
			}
				input.value=final;
				return true;
		}



		function isAlphaNumeric(str){
			var validChars = "QWERTYUIOPASDFGHJKLÑZXCVBNMqwertyuiopasdfghjklñzxcvbnm0123456789";
			if (str.length!=1) {
				return false;
			}
			if ( validChars.indexOf(str)!=-1) {
				return true;
			} else {
				return false;
			}
		}


        function isValidNumeric(value){
            for ( var i=0; i<value.length; i++){
                if(!isNumeric(value.charAt(i)))return false;
            }
            return true;
        }

        function isValidFormatNum(input){
            var inputString = input.value;
            var final="";
            for ( var i=0; i<inputString.length; i++){
                if(isNumeric(inputString.charAt(i))) {
                    final=final+inputString.charAt(i);
                }
            }
                input.value=final;
                return true;
        }



        function isNumeric(str){
            var validChars = "0123456789";
            if (str.length!=1) {
                return false;
            }
            if ( validChars.indexOf(str)!=-1) {
                return true;
            } else {
                return false;
            }
        }        



        function isValidAlpha(input){
            var inputString = input.value;
            var final="";
            for ( var i=0; i<inputString.length; i++){
                if(isAlpha(inputString.charAt(i))) {
                    final=final+inputString.charAt(i);
                }
            }
                input.value=final;
                return true;
        }



        function isAlpha(str){
            var validChars = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZáéíóú ";
            if (str.length!=1) {
                return false;
            }
            if ( validChars.indexOf(str)!=-1) {
                return true;
            } else {
                return false;
            }
        }        

        function isValidFormatTasa(input)  {

            var inputString = input.value;
            var final="";
            for ( var i=0; i<inputString.length; i++){
                if(isTasa(inputString.charAt(i))) {
                    final=final+inputString.charAt(i);
                }
            }
                input.value=final;
                return true;

        }


        function validaFormatoAlfabetico(input, mensaje) {

            if (trim(input.value).length > 0) {
                for(i=0; i < input.value.length; i++ ) {
                    if(! isAlpha(input.value.substring(i,i+1))) {
                        alert(mensaje);
                        input.value = trim(input.value);
                        input.focus();
                        return false;
                    }
                }     
                return true;
            } else {
                return true;
            }
        
        }

        function isTasa(str){
            var validChars = "0123456789.";
            if (str.length!=1) {
                return false;
            }
            if ( validChars.indexOf(str)!=-1) {
                return true;
            } else {
                return false;
            }
        }        


        function verificarfecha(d,m,a){

            if ((m.value == 1)||(m.value == 3)||(m.value == 5)||(m.value == 7)||(m.value == 8)||(m.value == 10)||(m.value == 12)){
                if ((d.value < 1)||(d.value > 31)){
                    alert("Ingrese una cantidad de días válida(máx 31)");
                    d.focus();
                    return false;
                }
             }
            else{
                if ((m.value == 4)||(m.value == 6)||(m.value == 9)||(m.value == 11)){
                    if ((d.value < 1)||(d.value > 30)){
                        alert("Ingrese una cantidad de días válida(máx 30)");
                        d.focus();
                        return false;
                    }
                }
                if (m.value == 2){
                    if ((a.value % 4) == 0) {
                        if ((d.value < 1)||(d.value > 29)){
                            alert("Ingrese una cantidad de días válida(máx 29)");
                            d.focus();
                            return false;
                        }
                     }
                    else {
                        if ((d.value < 1)||(d.value > 28)){
                            alert("Ingrese una cantidad de días válida(máx 28)");
                            d.focus();
                            return false;
                        }
                    }
                }
            }

            if ((m.value < 1)||(m.value > 12)) {
                alert("Ingrese un mes válido");
                m.focus();
                return false;
            }
		
            if ((a.value < 1901)||(a.value > 2150)) {
                alert("Ingrese un año válido(1901-2150)");
                a.focus();
                return false;
            }

        return true ;

        }


        function verificarfechaNotificacion(d,m,a, aMax){

            if ((m.value == 1)||(m.value == 3)||(m.value == 5)||(m.value == 7)||(m.value == 8)||(m.value == 10)||(m.value == 12)){
                if ((d.value < 1)||(d.value > 31)){
                    alert("Ingrese una cantidad de días válida(máx 31)");
                    d.focus();
                    return false;
                }
             }
            else{
                if ((m.value == 4)||(m.value == 6)||(m.value == 9)||(m.value == 11)){
                    if ((d.value < 1)||(d.value > 30)){
                        alert("Ingrese una cantidad de días válida(máx 30)");
                        d.focus();
                        return false;
                    }
                }
                if (m.value == 2){
                    if ((a.value % 4) == 0) {
                        if ((d.value < 1)||(d.value > 29)){
                            alert("Ingrese una cantidad de días válida(máx 29)");
                            d.focus();
                            return false;
                        }
                     }
                    else {
                        if ((d.value < 1)||(d.value > 28)){
                            alert("Ingrese una cantidad de días válida(máx 28)");
                            d.focus();
                            return false;
                        }
                    }
                }
            }

            if ((m.value < 1)||(m.value > 12)) {
                alert("Ingrese un mes válido");
                m.focus();
                return false;
            }
		
            if ((a.value < 1901)||(a.value > aMax)) {
                alert("Ingrese un año válido(1901-"+aMax +")");
                a.focus();
                return false;
            }

        return true ;

        }


       function esMail(entrada){

          arroba=0;
          puntos=0;		
      
          for(i=0;i<entrada.value.length;i++){
             if(entrada.value.charCodeAt(i)==64)arroba++;
             if(arroba>1){
                return false;
             }
             if(arroba==1&&entrada.value.charCodeAt(i)==46){puntos++;}
          }
      
          if(entrada.value.charCodeAt(entrada.value.length-1)==46){
             return false;
          }
		
          if(puntos>=1&&arroba==1) {
             return true;		
          }
      
          return false;
       }



       function checkFocus(){
            if(!document.hasFocus()) {
                    document.focus();
            }
            setTimeout('checkFocus()',100);
        }

        function setBlur(form) {
           checkFocus(); 
        }        



        function recorre() {

            window.attachEvent('onblur', checkFocus);

            var oItem = document.form1;

            if (oItem!=null) {
                    for (i=0; i<oItem.length; i++) {
                        oItem.item(i).attachEvent('onblur', checkFocus);	
                    }
            }
        }

       function ValidarLargoMaximo(elemento, largoMax){
            f = document.form1;
            var largo;
            var temp;

            largo = elemento.value.length;

            if(largo > largoMax) {
                diferencia = largo - largoMax;
                temp = elemento.value.substring(0,largo-diferencia);
                elemento.value = temp;
            }        
        }    

        function LimpiaSelect(elemento) {

            elemento.selectedIndex = -1;
			elemento.options.length = 0;

			var opt = document.createElement('OPTION');	
			opt.text = "Seleccione...";
			opt.value = -1;
			elemento.add(opt);

            return;
        }





    function verificarFechaNacimiento(d, m, a, anoActual ){
        if ((m.value == 1)||(m.value == 3)||(m.value == 5)||(m.value == 7)||(m.value == 8)||(m.value == 10)||(m.value == 12)){
            if ((d.value < 1)||(d.value > 31)){
                alert("Ingrese una cantidad de días válida(máx 31)");
                d.value = -1;
                d.focus();
                return false;
            }
         }
        else{
            if ((m.value == 4)||(m.value == 6)||(m.value == 9)||(m.value == 11)){
                if ((d.value < 1)||(d.value > 30)){
                    alert("Ingrese una cantidad de días válida(máx 30)");
                    d.value = -1;                    
                    d.focus();
                    return false;
                }
            }
            if (m.value == 2){
                if ((a.value % 4) == 0) {
                    if ((d.value < 1)||(d.value > 29)){
                        alert("Ingrese una cantidad de días válida(máx 29)");
                        d.value = -1;                        
                        d.focus();
                        return false;
                    }
                 }
                else {
                    if ((d.value < 1)||(d.value > 28)){
                        alert("Ingrese una cantidad de días válida(máx 28)");
                        d.value = -1;
                        d.focus();
                        return false;
                    }
                }
            }
        }
        if ((m.value < 1)||(m.value > 12)) {
            alert("Ingrese un mes válido");
            m.value = -1;
            m.focus();
            return false;
        }	
        if ((a.value > anoActual)) {
            alert("Ingrese un año válido no superior al "+anoActual);
            a.focus();
            a.value = -1;            
            return false;
        }
        return true ;
        }


        function twoDigit(value) {
            if(value<10)
                 value = "0"+value;
            return value;
            }

            function isNegativeInteger(objeto, msg){
                var value = trim(objeto.value);            
                if ( value == "" || value < 1 ){
					alert(msg) ;
					objeto.focus() ;
					return true;
				}
            }
           function isPositiveInteger(objeto, msg){
                var value = trim(objeto.value);            
                if ( value > 0 ){
					alert(msg) ;
					objeto.focus() ;
					return true;
				}
            }

           function isInRange(objeto, min, max, msg){

                
               var value = trim(objeto.value);            
               if (value < min || value > max){
                  alert(msg);
                  objeto.focus();
                  return false;
               }
               return true;
            }

        function isValidYear(objeto, min, max, msg){
              if(isEmpty(objeto, msg))
                return false;

              if(!isValidNumeric(objeto.value)){
                alert(msg);
                objeto.focus();
                return false;
              }
                
              if(!isInRange(objeto, min,max, msg))
                return false;
            return true;
         }


        /* Función que setea el valor del campo hidden tomando el valor que esta seleccionado
           en el select que se indica como primer parámetro. */
           
        function saveOptionName(select,hidden){
            var selectedName;
            var selectedValue=select.value;
            var opciones=select.options;
            for ( var i=0; i<opciones.length;i++){
                if( opciones(i).value == selectedValue){
                    selectedName=opciones(i).text;
                 }           
            }            
            hidden.value=selectedName;
        }

/* Funcion que habilita un selectControlado solo cuando en el selectControlador se seleccion el valorHabilitacion */

        function habilitaSelect( selectControlado, selectControlador, valorHabilitacion){
            if ( selectControlador.value == valorHabilitacion){
                selectControlado.disabled = false;
            } else {
                selectControlado.value=-1;
                selectControlado.disabled = true;

            }
        }

        function habilitaFecha( selectMes, selectAgno,checkControlador ){

            if ( !checkControlador.checked){
                selectMes.disabled = false;
                selectAgno.disabled = false;
            } else {
                selectMes.value=-1;
                selectMes.disabled = true;
                selectAgno.value=-1;
                selectAgno.disabled = true;

            }
        }

        function habilitaInput ( input,checkControlador ){

            if ( !checkControlador.checked){
                input.disabled = false;
            } else {
                input.disabled = true;

            }
        }



        function inhabilitaSelect( selectControlado, selectControlador, valorInHabilitacion, valorSeleccionado){
            if ( selectControlador.value == valorInHabilitacion){
                selectControlado.value = valorSeleccionado;
                selectControlado.disabled = true;
            } else {
                selectControlado.disabled = false;
            }
        }
        
        
   function verificarFechaContraFechaActual(d, m, a , diaActual, mesActual, anoActual ){
        if ((m.value == 1)||(m.value == 3)||(m.value == 5)||(m.value == 7)||(m.value == 8)||(m.value == 10)||(m.value == 12)){
            if ((d.value < 1)||(d.value > 31)){
                alert("Ingrese una cantidad de días válida(máx 31)");
                d.value = -1;
                d.focus();
                return false;
            }
         }
        else{
            if ((m.value == 4)||(m.value == 6)||(m.value == 9)||(m.value == 11)){
                if ((d.value < 1)||(d.value > 30)){
                    alert("Ingrese una cantidad de días válida(máx 30)");
                    d.value = -1;                    
                    d.focus();
                    return false;
                }
            }
            if (m.value == 2){
                if ((a.value % 4) == 0) {
                    if ((d.value < 1)||(d.value > 29)){
                        alert("Ingrese una cantidad de días válida(máx 29)");
                        d.value = -1;                        
                        d.focus();
                        return false;
                    }
                 }
                else {
                    if ((d.value < 1)||(d.value > 28)){
                        alert("Ingrese una cantidad de días válida(máx 28)");
                        d.value = -1;
                        d.focus();
                        return false;
                    }
                }
            }
        }
        if ((m.value < 1)||(m.value > 12)) {
            alert("Ingrese un mes válido");
            m.value = -1;
            m.focus();
            return false;
        }
        if (a.value == -1) {
            alert("Ingrese un año válido");
            a.value = -1;
            a.focus();
            return false;
        }	

		var dateContable = new Date(anoActual.value , mesActual.value -1, diaActual.value);
		var dateNacimiento = new Date( a.value , m.value -1, d.value );

		if ( dateNacimiento.getTime() > dateContable.getTime()  ){
			alert( "La fecha de nacimiento no puede ser superior a la fecha actual");
			a.focus();
			return false;
		}

        return true ;
  }


      
