function validar_intervalo_fecha(desde,hasta){
	var d = desde.split("/");
	var h = hasta.split("/");
	if(d[0].length<2)
		d[0]="0"+d[0];
	if(d[1].length<2)
		d[1]="0"+d[1];
	if(h[0].length<2)
		h[0]="0"+h[0];
	if(h[1].length<2)
		h[1]="0"+h[1];
	if(d[2] > h[2])
	{
		return false;
	}
	else if(d[2] == h[2] && d[1] > h[1])
	{
		return false;
	}
	else if(d[2] == h[2] && d[1] == h[1] && d[0] > h[0])
	{
		return false;
	}
	return true;
}

/*
Verifica que entre fecha1 y fecha2, haya entre minimo y maximo días
Es decir que valida que la diferencia de las fechas estén en un intervalo dado
*/
function diferencia_fechas_rango(fecha1, fecha2, minimo, maximo)
{
	var f1 = fecha1.split("/");
	var dia1 = f1[0];
	var mes1 = f1[1];
	var ano1 = f1[2];
	
	var fechaDate = new Date(ano1, mes1 - 1, dia1);
	fechaDate.setDate(fechaDate.getDate() + minimo);
	var m1 = eval(fechaDate.getMonth()+1);
	var fechaString = fechaDate.getDate() + "/" + m1 + "/" + fechaDate.getFullYear();
	if(!validar_intervalo_fecha(fechaString, fecha2))
		return false;

	fechaDate = null;
	fechaDate = new Date(ano1, mes1 - 1, dia1);
	fechaDate.setDate(fechaDate.getDate() + maximo);
	m1 = eval(fechaDate.getMonth()+1);
	fechaString =
		fechaDate.getDate() + "/" + 
		m1 + "/" +
		fechaDate.getFullYear();
	return validar_intervalo_fecha(fecha2, fechaString);
}

function fecha_mayor_hoy(fecha,dias)
{
	var hoy=new Date();
	var hasta=new Date();
	hasta.setDate(hoy.getDate() + dias);
	
	var m=eval(hasta.getMonth()+1);
	var h = hasta.getDate()+"/"+m+"/"+hasta.getFullYear();
	
	m=eval(hoy.getMonth()+1);
	var d = hoy.getDate()+"/"+m+"/"+hoy.getFullYear();
		
	if(validar_intervalo_fecha(fecha,h))
	{
		return (validar_intervalo_fecha(d,fecha));
	}
	return false;
}

function fecha_menor_hoy(fecha,dias)
{
	var hoy=new Date();
	var desde=new Date();
	desde.setDate(hoy.getDate() - dias);
	
	var m=eval(desde.getMonth()+1);
	var d = desde.getDate()+"/"+m+"/"+desde.getFullYear();
	
	m=eval(hoy.getMonth()+1);
	var h = hoy.getDate()+"/"+m+"/"+hoy.getFullYear();
		
	if(validar_intervalo_fecha(d,fecha))
	{
		return (validar_intervalo_fecha(fecha,h));
	}
	return false;
}	 


function fecha_menor_fechaendias(fecha,fechadesde,dias)
{
	var aux = fechadesde.split("/");
	var hoy=new Date(aux[2],aux[1]-1,aux[0]);
	var desde=new Date();
	desde.setDate(hoy.getDate() - dias);
	
	var m=eval(desde.getMonth()+1);
	var d = desde.getDate()+"/"+m+"/"+desde.getFullYear();
	
	m=eval(hoy.getMonth()+1);
	var h = hoy.getDate()+"/"+m+"/"+hoy.getFullYear();
		
	if(validar_intervalo_fecha(d,fecha))
	{
		return (validar_intervalo_fecha(fecha,h));
	}
	return false;
}	

/*
Esta funcion valida los datos de entrada en un campo de texto.
Sus parámetrso son: tipo_entrada que indica el tipo de texto que debe permitirse ingresar
					entrada que es el texto ingresado

Los valores posibles para tipo_entrada  son:
 	N si solo deben ingresar numeros
 	A si solo deben ingresar letras
 	AN para alfanumericos (numeros y letras)
 	
Ejemplo de uso: <input type="submit" name="valida" value="Valida" onclick="return valida_entrada('A', texto)">
                <input type="text" name="valor" value="" onkeypress="return valida_entrada('P',event) ">
                 
 
autor: FValenzuela
*/
function valida_entrada(tipo_entrada, entrada)
{  
  var teclaCodigo = 0;
   if (navigator.appName == 'Netscape')
   teclaCodigo = entrada.which;
   else teclaCodigo = entrada.keyCode;
   var caracter = String.fromCharCode(teclaCodigo);
  
 var reg_ex;
 if (tipo_entrada=='AN')
    reg_ex=/[^a-zA-Z0-9|\s]/;
 else if (tipo_entrada=='A')
  reg_ex=/[^a-zA-Z|\s]/;
 else if (tipo_entrada=='N')
  reg_ex=/[^0-9]/;
 else if (tipo_entrada=='P')
  reg_ex=/[^a-zA-Z0-9|\s|¿|?|Ñ|ñ|Á|á|É|é|Í|í|Ó|ó|Ú|ú|!|¡|@|$|(|)|.|-|=|+|,|ª|º|%|Ä|ä|Ë|ë|ï|Ï|Ö|ö|Ü|ü|à|è|ì|ò|ù|À|È|Ì|Ò|Ù|â|ê|î|ô|û|Â|Ê|Û|Î|Ô|*|:|;|_|·|#]/;  
 else if (tipo_entrada=='COMA')
  reg_ex=/[^0-9|,]/;  
 if (reg_ex.test(caracter))
 {  
  return false;
 }
 return true;
}


/*
Hace lo mismo que valida_entrada

Los valores posibles para tipo_entrada  son:
 	N si solo deben ingresar numeros
 	A si solo deben ingresar letras
 	AN para alfanumericos (numeros y letras)
 	P para parrafos que puedan contener AN y además comas, puntos y otro caracteres especiales
Ejemplo de uso: <html:text property="telefono" onkeypress="return validaTecleo('N',event);"/>
autor: FValenzuela
*/
function validaTecleo(tipo_entrada, entrada){
  var teclaCodigo = 0;
  if (navigator.appName == 'Netscape')
  teclaCodigo = entrada.which;
  else teclaCodigo = entrada.keyCode;
  
  if (tipo_entrada=='AN'){
	if ((teclaCodigo >= 65 && teclaCodigo <= 90) 
	|| (teclaCodigo >= 97 && teclaCodigo <= 122)
	|| (teclaCodigo >= 48 && teclaCodigo <= 57) 
	|| teclaCodigo == 8 || teclaCodigo == 32) return true;
	}
  else if (tipo_entrada=='A'){
	if ((teclaCodigo >= 65 && teclaCodigo <= 90) 
	|| (teclaCodigo >= 97 && teclaCodigo <= 122) 
	|| teclaCodigo == 8 || teclaCodigo == 32) return true;
	}
  else if (tipo_entrada=='N'){
  	if ((teclaCodigo >= 48 && teclaCodigo <= 57) 
  	||  teclaCodigo == 8) return true;
  }
  else if (tipo_entrada=='P'){
  	if ((teclaCodigo >= 63 && teclaCodigo <= 90) 
	|| (teclaCodigo >= 97 && teclaCodigo <= 122)
	|| (teclaCodigo >= 43 && teclaCodigo <= 59)
	|| (teclaCodigo >= 32 && teclaCodigo <= 38) 
	|| teclaCodigo == 40 || teclaCodigo == 41
	|| teclaCodigo == 8 || teclaCodigo == 61 
	|| teclaCodigo == 127
	|| teclaCodigo == 38
	|| (teclaCodigo >= 160 && teclaCodigo <= 165)
	|| teclaCodigo == 130	) return true;
  }
 return false;
}
/* 
  controla el maximo de caracteres que se pueden ingresar en un area de texto, o en cualquier objeto de texto
  Ejemplo de uso:<html:textarea property="detalle" onkeyup="return maxLength(this,200)"> 
  autor :CReyes 
*/  

function maxLength(texto,maxlong) { 
  var tecla, in_value, out_value; 

  if (texto.value.length > maxlong) { 
    in_value = texto.value; 
    out_value = in_value.substring(0,maxlong); 
    texto.value = out_value; 
    return false; 
  } 
  return true; 
} 

function fecha_mayor_de_edad(fechadesde,annos)
{	
	var aux = fechadesde.split("/");
	var hoy=new Date(aux[2],aux[1]-1,aux[0]);
	
	if (aux[2]<=99){
       	aux[2]=parseInt(aux[2]);
       	aux[2]=(aux[2]+1900); 
		
	}
	var mes=aux[1];
	
	//var m=eval(hoy.getYear()+18);
	//año que cumple 18
	var ado= parseInt(aux[2])+18;
	if(ado<=99) //antes era m
		ado+=1900;
	var d = hoy.getDate()+"/"+mes+"/"+ado;
	
			
	var n=new Date();
	var y =eval(n.getYear());
	y=parseInt(y);
	if(y<100){
		y=1900 + y;
	}
		
	var diactual=n.getDay()+25;
	var actual =diactual+"/"+(n.getMonth()+ 1)+ "/" +y;
		
	var dd = d.split("/");
	var h = actual.split("/");
	if(dd[0].length<2)
		dd[0]="0"+dd[0];
	if(dd[1].length<2)
		dd[1]="0"+dd[1];
	if(h[0].length<2)
		h[0]="0"+h[0];
	if(h[1].length<2)
		h[1]="0"+h[1];
	if(dd[2] > h[2])
	{
		return false;
	}
	else if(dd[2] == h[2] && dd[1] > h[1])
	{
		return false;
	}
	else if(dd[2] == h[2] && dd[1] == h[1] && dd[0] > h[0])
	{
		return false;
	}
			
		return true;
}	

function formatoMoneda(numero)
{ 
	var S=String(numero);
	var len = S.length;
	if(len>0)
	{
		var i;
		
		var T=S.charAt(0);
		for (i=1; i < len ; i++) 
		{
			if( (len-i)%3 == 0)
				T += ".";
			T += S.charAt(i);
		}
		return T;
	}
	return numero;
}

function MonedaaNumero(moneda)
{ 	
	var S=String(moneda);
	var len = S.length;
	if(len>0)
	{
		var i;
		var T="";
		for (i=0; i < len ; i++) 
		{
			if(S.charAt(i) != ".") T += S.charAt(i);
		}
		return parseInt(T);
	}
	return 0;
}

function set_readonly_inputs(form)
{
	var objs = form.elements;
	var i;
	for(i=0; i<objs.length; i++){
		objs[i].readOnly=true;  
		objs[i].className="locked";   
	} 
}

function isCboSelected(combo)
{
  if(combo)
  { 
    if(combo.length)
    {
      for(var i=0;i<combo.length;i++)
      {
        if(combo[i].checked)return true;
      }
    }
    else
    {
      return combo.checked;
    }
    return false;
  }
  alert("Error al recuperar el objeto del tipo combo-box");
}


function validaFecha(cadena) 
{ 
   var Admitidos = "0123456789/"; 
    
   // Primero validamos que la longitud sea de 10 
   if (cadena.length < 10) 
   { 
      alert("La Fecha no está escrita correctamente."); 
      return false; 
   } 
    
   // Validamos que solamente haya escrito simbolos adecuados 
   for (var i=0;i<cadena.length;i++) 
   { 
      if (Admitidos.indexOf(cadena.substring(i,i+1))==-1) 
      { 
         alert("Formato de fecha no correcto. Debe usar el formato dd/mm/yyyy");            return false; 
      } 
   } 
    
   // Comprobamos posiciones 2 y 5, para ver que haya las "/" 
   if((cadena.charAt(2) != "/") || (cadena.charAt(5) != "/")) 
   { 
      alert("La Fecha no está escrita correctamente."); 
      return false; 
   } 
    
   // Cogemos de la fecha los el valor del dia, mes y año 
   var nDia = parseInt(cadena.substr(0, 2), 10); 
   var nMes = parseInt(cadena.substr(3, 2), 10); 
   var nAno = parseInt(cadena.substr(6)); 
    
   // Comprobamos mes si es correcto, y cogemos dias del mes 
   var nRes = 0; 
     switch (nMes) 
     {     
       case 1:  nRes = 31; break; 
       case 2:  nRes = 28; break; 
       case 3:  nRes = 31; break; 
       case 4:  nRes = 30; break; 
       case 5:  nRes = 31; break; 
       case 6:  nRes = 30; break; 
       case 7:  nRes = 31; break; 
       case 8:  nRes = 31; break; 
       case 9:  nRes = 30; break; 
       case 10: nRes = 31; break; 
       case 11: nRes = 30; break; 
       case 12: nRes = 31; break; 
       default: alert("El Mes es incorrecto, revíselo."); 
                      return false; 
                      break; 
   } 
    
   // Validamos el dia segun mes que se haya escrito 
   if(nDia > nRes || nDia < 1) 
   { 
      alert("El Dia es incorrecto, revíselo."); 
      return false; 
   } 
    
   // Por ultimo, validamos el año, que no sea muy raro 
   if((nAno < 1900) || (nAno > 2100)) 
   { 
      alert("El Año no parece correcto, revíselo."); 
      return false; 
   } 
    
   return true; 
} 


function validaEmail(email)
{
var re  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
if (!re.test(email)) {
    alert ("Dirección de email inválida");
    return false;
}
return true;
}

function abrirAyuda(codigoRol, pagina)
{
  if(codigoRol==41 && (pagina=="FOLIADOR" || pagina=="BANDEJA"))
  {
    window.open("/seremi/ayudas_stl/FOLIADOR.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }  
  else if((pagina=="BANDEJA" || pagina=="VISADOR") && (codigoRol==22 || codigoRol==637 || codigoRol==426 || codigoRol==425 || codigoRol==422 || codigoRol==423 || codigoRol==411 || codigoRol==641 || codigoRol==23 || codigoRol==421 || codigoRol==420 || codigoRol==25 || codigoRol==24 || codigoRol==26 || codigoRol==27 || codigoRol==424) )
  {
    window.open("/seremi/ayudas_stl/VISADOR_DE_RUBRO.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }
  else if((codigoRol==309 || codigoRol==310) && (pagina=="VISADOR" || pagina=="BANDEJA"))
  {
    window.open("/seremi/ayudas_stl/VISADOR_DE_AREA.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }
  else if((codigoRol==209 || codigoRol==210) && pagina=="VISITA")
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_COMEX_UYD_Y_CLV.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }
  else if((codigoRol==209 || codigoRol==210) && pagina=="GENERAR_DOCUMENTO")
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_COMEX_CDA.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }  
  else if((codigoRol==209 || codigoRol==210) && pagina=="BANDEJA")
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_COMEX.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }  
  else if((codigoRol==506 || codigoRol==507) && pagina=="BANDEJA")
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_RUBRO_COMEX.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }
  else if((codigoRol==506 || codigoRol==507) && pagina=="GENERAR_DOC_LVE")
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_RUBRO_COMEX_CLV.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }  
  else if((codigoRol==506 || codigoRol==507) && pagina=="GENERAR_DOC_UYD")
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_RUBRO_COMEX_UYD.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }    
  else if((codigoRol==109 || codigoRol==110) && pagina=="BANDEJA")
  {
    window.open("/seremi/ayudas_stl/SUPERVISOR_COMERCIO_EXTERIOR.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }   
  else if((codigoRol==109 || codigoRol==110) && pagina=="GENERAR_DOCUMENTO")
  {
    window.open("/seremi/ayudas_stl/SUPERVISOR_COMEX_CDA.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  } 
  else if((codigoRol==109 || codigoRol==110) && pagina=="VISITA")
  {
    window.open("/seremi/ayudas_stl/SUPERVISOR_COMEX_UYD_Y_CLV.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }   
  else if((codigoRol==109 || codigoRol==110) && pagina=="LIBRE_VENTA")
  {
    window.open("/seremi/ayudas_stl/SUPERVISOR_COMEX_UYD_Y_CLV.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }   
  else if(codigoRol==134 && (pagina=="BANDEJA" || pagina =="SUPERVISOR_ZOONOSIS") )
  {
    window.open("/seremi/ayudas_stl/SUPERVISOR_ZOONOSIS.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }  
  else if(codigoRol==234 && (pagina=="BANDEJA" || pagina=="VISITA"))
  {
    window.open("/seremi/ayudas_stl/ASISTENTE_DE_AREA_ZOONOSIS.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }    
  else if(codigoRol==334 && (pagina=="BANDEJA" || pagina=="VISADOR"))
  {
    window.open("/seremi/ayudas_stl/VISADOR_DE_AREA_ZOONOSIS.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }   
  else if(codigoRol==1 && pagina=="FIRMA_ELECTRONICA")
  {
    window.open("/seremi/ayudas_stl/FIRMA_ELECTRONICA.pdf","Ayuda","width=1000,height=800,location=1,scrollbars=NO");
  }   
  else
  {
    alert("En construcción");
  }
}


//Manejo de cookies

function set_cookie ( name, value, expires_year, expires_month, expires_day, path, domain, secure )
{
  var cookie_string = name  + "="  + escape ( value );

  if ( expires_year )
  {
    var expires = new Date ( expires_year, expires_month, expires_day );
    cookie_string  += "; expires="  + expires.toGMTString();
  }

  if ( path )
   cookie_string += "; path=" +  escape ( path );

  if ( domain )
   cookie_string  += "; domain=" +  escape ( domain );

  if ( secure )
   cookie_string  += "; secure";

  document.cookie = cookie_string;

}

function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name  += "=; expires=" +  cookie_date.toGMTString();
}

function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' +  cookie_name +  '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}

