/*----------------------------------------------------------------------------------------*/
function trim(cad)
{
    return cad.replace(/^\s+|\s+$/g,"");
}


/*----------------------------------------------------------------------------------------*/
function Trim(cad)
{
    return cad.replace(/^\s+|\s+$/g,"");
}

/*----------------------------------------------------------------------------------------*/
function valida_rut(objRut) 
{

/*if (!validar_format_rut(objRut.value))
{
alert ("error en format");
return false;
}
else
{*/
var objAux = objRut.value
objRut.value = ReplaceRut(objRut.value,".","")
objRut.value = ReplaceRut(objRut.value,"-","")
//alert('xxx' + objRut.value + 'xxx')

num_rut = Mid(objRut.value,1,Len(objRut.value)-1)
dv_rut  = Mid(objRut.value,Len(num_rut)+1,Len(objRut.value))


    if (objRut.value == "")
	{
	    alert('Debe Ingresar un Rut.')
	    objRut.focus();
	    return false;
	}
	else
	{
		/*if (objDv.value == "")
		{
			alert("Debe Ingresar el Dígito Verificador del Rut.");
			objDv.focus();
			return false;
		}
		else
		{*/
			strDVCalc = calculaDV(objRut);
            strDV = trim(dv_rut);            
    		if (strDVCalc.toUpperCase()!=strDV.toUpperCase())
            {
                
                objRut.value= objAux;
                objRut.style.color = "red";
                objRut.focus();
                alert("Debe Ingresar un rut v\u00e1lido")
                objRut.value= objAux;
                objRut.style.color = "red";
                objRut.focus();
               
                return false;
            }
			else if (objRut.value < 100001)
			{
			    objRut.value= objAux;
                objRut.style.color = "red";
                objRut.focus();
				alert("Debe Ingresar un rut v\u00e1lido")
			    objRut.value= objAux;
                objRut.style.color = "red";
                objRut.focus();
               			
				return false;
			}
			else
			{
			    objRut.value = objAux
			    objRut.style.color = "black";
				return true;
			}
		/*}*/
	}
/*}*/	
}

function ReplaceRut(valor,n,c)
{
  var valor = valor.split(n);
  valor = valor.join(c);
  return valor;
}

function IsNumericRut(valor) 
{ 
	var log=valor.length; var sw="S"; 
	for (x=0; x<log; x++) 
	{
		v1=valor.substr(x,1); 
		v2 = parseInt(v1);
		if (isNaN(v2))
		{
			sw= "N";
		} 
	} 
	if (sw=="S") 
	{
		return true;
	}
	else
	{	
		return false;
	} 
}

function LTrimRut(date)
{
	var i = 0;
	var j = date.length - 1;

	if (date == null)
		return (false);

	for (i = 0; i < date.length; i++)
	{
		if (date.substr(i, 1) != ' ' &&
		    date.substr(i, 1) != '\t')
			break;
	}

	if (i <= j)
		return (date.substr(i, (j+1)-i));
	else
		return ('');
}

function RTrimRut(date)
{
	var i = 0;
	var j = date.length - 1;

	if (date == null)
		return (false);

	for(j = date.length - 1; j >= 0; j--)
	{
		if (date.substr(j, 1) != ' ' &&
			date.substr(j, 1) != '\t')
		break;
	}

	if (i <= j)
		return (date.substr(i, (j+1)-i));
	else
		return ('');
}

function TrimRut(date)
{
	if (date == null)
		return (false);

	return RTrimRut(LTrimRut(date));
}

function SpaceRut(n){
	// Devuelve una cadena con n espacios
	var t="";
	
	for(var i=1; i<=n; i++)
		t=t+" ";
	
	return t;
}

function MidRut(s, n, c)
{	
	var numargs=MidRut.arguments.length;
	
	if(numargs<3)
		c=s.length-n+1;
		
	if(c<1)
		c=s.length-n+1;
	if(n+c >s.length)
		c=s.length-n+1;
	if(n>s.length)
		return "";
		
	return s.substring(n-1,n+c-1);
}

function LeftRut(s, n)
{
	// Devuelve los n primeros caracteres de la cadena
	if(n>s.length)
		n=s.length;
		
	return s.substring(0, n);
}

function RightRut(s, n)
{
	// Devuelve los n últimos caracteres de la cadena
	var t=s.length;
	if(n>t)
		n=t;
		
	return s.substring(t-n, t);
}

function LenRut(d)
{
	if (TrimRut(d) != "")
	{
		return(d.length);
	}
	else
	{
		return(0);
	}
}

function Formato(num) 
{ 
	var largo = num.length; 
	var i, dd, ss, largo2, valor, punto, nvalor
	
	dd=ReplaceRut(num,".","");
	dd=ReplaceRut(dd,",","");
	dd=ReplaceRut(dd,"-","");
    
	if (LenRut(dd) <= 1)
	{
        if (IsNumericRut(dd) == false)
		{
			num = "";
			return (num);
		}
	}
	else
	{
		if (IsNumericRut(LeftRut(dd, LenRut(dd) - 1)) == false)
		{
			num = "";
			return (num);
		}
	}
    
    largo2 = LenRut(dd);
    i = 3;
    valor = LeftRut(dd, largo2 - 1);
    largo = LenRut(valor);
    nvalor = "";

    if (largo2 >= 4)
    {
        while (i <= largo)
        {
            if (i < largo)
            {
                punto = ".";
			}
            else
            {
                punto = "";
			}
            nvalor = punto + RightRut(valor, 3) + nvalor;
            
            if (LenRut(valor) > 1)
			{
                valor = LeftRut(valor, LenRut(valor) - 3)
			}
            i = i + 3
		}
        nvalor = valor + nvalor;
        nvalor = nvalor + "-" + RightRut(dd, 1);
        return (nvalor);
	}
    else
    {
        if (largo2 > 1)
        {
            nvalor = LeftRut(valor, 3) + "-" + RightRut(dd, 1);
		}
        else
        {
			nvalor=ReplaceRut(num,"-","");
		}
        return (nvalor);
	}	 
}



function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// ----------------------------------------------------------------------------------

/*----------------------------------------------------------------------------------------*/
function IsNum( numstr ) {
//alert("Este es el :" + numstr)
// Return immediately if an invalid value was passed in
if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "") 
return false;
var isValid = true;
var decCount = 2; // number of decimal points in the string
// convert to a string for performing string comparisons.
numstr += ""; 
// Loop through string and test each character. If any
// character is not a number, return a false result.
// Include special cases for negative numbers (first char == '-')
// and a single decimal point (any one char in string == '.'). 
for (i = 0; i < numstr.length; i++) {
// track number of decimal points
if (numstr.charAt(i) == ".")
decCount++;
//if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
//(numstr.charAt(i) == "-") || (numstr.charAt(i) == "."))) {
if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9")))
{
isValid = false;
break;
} else if ((numstr.charAt(i) == "-" && i != 0) ||
(numstr.charAt(i) == "." && numstr.length == 1) ||
(numstr.charAt(i) == "." && decCount > 1)) {
isValid = false;
break;
} 
//if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9")) || 
} // END for 

return isValid;
} // end IsNum

/*----------------------------------------------------------------------------------------*/
function Len(s){
	// Devuelve la longitud de la cadena s
	return s.length;
}

/*function Trim(strTxt)
	{
	pos1 = 0;
	pos2 = strTxt.length-1;
	for (i=0; i<strTxt.length; i++)
	{
		if (strTxt.charAt(i) == ' ') pos1 = pos1 + 1;
		else break;
	}
	if (pos1 != (pos2+1))
		for (i=strTxt.length-1; i>0; i--)
		{
			if (strTxt.charAt(i) == ' ') pos2 = pos2 - 1
			else break;
		}
	return strTxt.substring(pos1,pos2+1);
	}
*/	
/*----------------------------------------------------------------------------------------*/
/*
onkeypress="onlyDigits(event,'noDec')"
onkeypress="onlyDigits(event,'decOK')"
*/
var isIE = document.all?true:false;
var isNS = document.layers?true:false;

/*----------------------------------------------------------------------------------------*/
function onlyDigits(e,decReq) {
var key = (isIE) ? window.event.keyCode : e.which;
var obj = (isIE) ? event.srcElement : e.target;
var isNum = (key > 47 && key < 58) ? true:false;
if (key==46)
{
	key=44
}
var dotOK = (key==44 && decReq=='decOK' && (obj.value.indexOf(",")<0 || obj.value.length==0)) ? true:false;

window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
e.which = (!isNum && !dotOK && isNS) ? 0:key;
var lgDecOK=(obj.value.indexOf(",")>=0 && obj.value.substr(obj.value.indexOf(",")+1,obj.value.length).length>1) ? true:false;
if (lgDecOK)
{
	window.event.keyCode = 0;
	e.which = 0;
}
return (isNum || dotOK);
}

/*----------------------------------------------------------------------------------------*/
function validar(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[-A-Za-z0-9Ññ.,_/\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

/*----------------------------------------------------------------------------------------*/
function validarTexto(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[-A-Za-zÑñ_/\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

// -------------------------------------------------------------------------------------
function validar_email(stremail)
{
    var a = stremail.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
    var v = stremail;
    if (a != v )
    {
	    return false;
    }
	    return true;
} 

/*----------------------------------------------------------------------------------------*/
function InStr(n, s1, s2)
{
	// Devuelve la posición de la primera ocurrencia de s2 en s1
	// Si se especifica n, se empezará a comprobar desde esa posición
	// Sino se especifica, los dos parámetros serán las cadenas
	var numargs=InStr.arguments.length;
	
	if(numargs<3)
		return n.indexOf(s1)+1;
	else
		return s1.indexOf(s2, n)+1;
}
/*----------------------------------------------------------------------------------------*/
function Mid(s, n, c)
{
	// Devuelve una cadena desde la posición n, con c caracteres
	// Si c = 0 devolver toda la cadena desde la posición n
	
	var numargs=Mid.arguments.length;
	
	// Si sólo se pasan los dos primeros argumentos
	if(numargs<3)
		c=s.length-n+1;
		
	if(c<1)
		c=s.length-n+1;
	if(n+c >s.length)
		c=s.length-n+1;
	if(n>s.length)
		return "";
		
	return s.substring(n-1,n+c-1);
}
//  funcion que busca por nombre dentro de un combo //
// -------------------------------------------------------------------------------------------
var digitos=15 //cantidad de digitos buscados 
var puntero=0 
var buffer=new Array(digitos) //declaración del array Buffer 
var cadena="" 

// -------------------------------------------------------------------------------------------
function buscar_op(obj,objfoco){ 
   var letra = String.fromCharCode(event.keyCode) 
   if(puntero >= digitos){ 
       cadena=""; 
       puntero=0; 
    } 
   //si se presiona la tecla ENTER, borro el array de teclas presionadas y salto a otro objeto... 
   if (event.keyCode == 13){ 
       borrar_buffer(); 
       if(objfoco!=0) objfoco.focus(); //evita foco a otro objeto si objfoco=0 
    } 
   //sino busco la cadena tipeada dentro del combo... 
   else{ 
       buffer[puntero]=letra; 
       //guardo en la posicion puntero la letra tipeada 
       cadena=cadena+buffer[puntero]; //armo una cadena con los datos que van ingresando al array 
       puntero++; 

       //barro todas las opciones que contiene el combo y las comparo la cadena... 
       for (var opcombo=0;opcombo < obj.length;opcombo++){ 
          if(obj[opcombo].text.substr(0,puntero).toLowerCase()==cadena.toLowerCase()){ 
          obj.selectedIndex=opcombo; 
          } 
       } 
    } 
   event.returnValue = false; //invalida la acción de pulsado de tecla para evitar busqueda del primer caracter 
} 

// -------------------------------------------------------------------------------------------
function borrar_buffer(){ 
   //inicializa la cadena buscada 
    cadena=""; 
    puntero=0; 
} 
// -------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------
function fn(form,field)
{
var next=0, found=false
var f=form

if(event.keyCode!=13) return;

for(var i=0;i<f.length;i++) 
	{
	if(field.name==f.item(i).name)
		{
		next=i+1;
		found=true
		break;
		}
	}

while(found)
	{
	if( f.item(next).disabled==false && f.item(next).type!='hidden')
		{
		f.item(next).focus();
		break;
		}
	else
		{
		if(next<f.length-1)
			next=next+1;
		else
			break;
		}
	}
}

// ---------------------------------------------------------------------------------
function validarNumero(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[0-9]/;
    //patron = /\w/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

// ---------------------------------------------------------------------------------
function validarDV(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[0-9kK]/;
    //patron = /\w/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

// -------------------------------------------------------------------------------------------
function FjsFormato_miles(texto)
{
			var invertido = "";
			var i=0, j=0;
			var cnt=0;
			var etexto = new String("");
			var dtexto = new String(texto);
			var largo=0;
			largo = dtexto.length;
			for ( i=largo; i>=0 ; i--)
						if (dtexto.charAt(i) >= "0" && dtexto.charAt(i) <= "9")
								etexto = etexto + dtexto.charAt(i);
			largo = etexto.length;
			dtexto = "";

			for ( i=0; i <= largo; i++ )
			{
			if ( cnt == 3 )
			{
				if (i!= largo)
							dtexto = dtexto + '.';
				dtexto = dtexto + etexto.charAt(i,1);
				cnt = 1;
			}
			else
			{ 
				dtexto = dtexto + etexto.charAt(i,1);
				cnt++;
			}
			}
						largo = dtexto.length;
						etexto="";
						for ( i=largo+1; i>=0 ; i--)
						etexto = etexto + dtexto.charAt(i,1);
			return (etexto);
}



// --------------------------------------------------------------------------------------------------
function Volver()
{
	window.history.back(-1);
}

// --------------------------------------------------------------------------------------------------
function Volver2()
{
	window.history.go(-2);
}


function calculaDV(obj_rut)
{
    var num_rut = Mid(obj_rut.value,1,Len(obj_rut.value)-1);
   //alert (num_rut.length);
    
   // dv_rut  = Mid(obj_rut.value,Len(num_rut)+1,Len(obj_rut.value))

	//rut=obj_rut.value;
	rut = num_rut;
	//largo = rut.length;
	var dvr = '0'
	suma = 0
	mul  = 2
	for (i= rut.length -1 ; i >= 0; i--)
	{
		suma = suma + rut.charAt(i) * mul
		if (mul == 7)
			mul = 2
		else    
			mul++
	}
	res = suma % 11
	if (res==1)
		dvr = 'k'
	else if (res==0)
		dvr = '0'
	else
	{
		dvi = 11-res
		dvr = dvi + ""
	}
    return dvr;
}

/*----------------------------------------------------------------------------------------*/
function MayusculasABC(e)
{
    swIE = (document.all) ? true : false;
    tecla = (document.all) ? e.keyCode : e.which;
    if(tecla == 8 || tecla == 9 || tecla == 0) return true;
    
    if(tecla==47 || tecla==45 || tecla==95) return false;
    
         
    if (validarTexto(e))
    {
        if (swIE)
        {   
            if(tecla==241 || tecla==209)
                e.keyCode = String.fromCharCode(78).toUpperCase().charCodeAt(0);
            else
                e.keyCode = String.fromCharCode(tecla).toUpperCase().charCodeAt(0);
            
    
            return true;
        }
        else
        {
            var pst = e.currentTarget.selectionStart;
            var string_start = e.currentTarget.value.substring(0,pst);
            var string_end = e.currentTarget.value.substring(pst ,e.currentTarget.value.length);
            if(tecla==241 || tecla==209)
                e.currentTarget.value = string_start+ String.fromCharCode(78).toUpperCase()+ string_end;
            else
                e.currentTarget.value = string_start+ String.fromCharCode(tecla).toUpperCase()+ string_end;
                
            e.currentTarget.selectionStart = pst + 1;
            e.currentTarget.selectionEnd = pst + 1;
            e.stopPropagation();
            return false;
        }
    }
    return false;
}


/* -------------------------------------------------------------------------------------------------- */
function Mayusculas(e)
{
    swIE = (document.all) ? true : false;
    tecla= (document.all) ? e.keyCode : e.which;
    
    if(tecla == 8 || tecla == 9 || tecla == 0) return true;
    
    if (validarTextoAlfa(e))
    {
        if(swIE)
        {
            e.keyCode = String.fromCharCode(tecla).toUpperCase().charCodeAt(0);
        }
        else
        {
            var pst = e.currentTarget.selectionStart;
            var string_start = e.currentTarget.value.substring(0,pst);
            var string_end = e.currentTarget.value.substring(pst ,e.currentTarget.value.length);
            e.currentTarget.value = string_start+ String.fromCharCode(tecla).toUpperCase()+ string_end;
            e.currentTarget.selectionStart = pst + 1;
            e.currentTarget.selectionEnd = pst + 1;
            e.stopPropagation();
            return false;
        }
    }
    return true;
}

/*----------------------------------------------------------------------------------------*/
function validarTextoAlfa(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[-A-Za-z0-9Ññ_@.,/\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}



/*----------------------------------------------------------------------------------------*/
function checkAll(field)
{
for (i = 0; i < field.length; i++)
	{
		if (field[i].disabled==false)
		{
		field[i].checked = true ;
		}
	}
}

/*----------------------------------------------------------------------------------------*/
function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
	field[i].checked = false ;
}

/* -------------------------------------------------------------------------------------------------- */
function TxtMayusculas(e)
{
    strTexto=e.keyCode
    
    strBol=true
    if (validarTexto(e))
    {
        strTexto = String.fromCharCode(tecla)
        strTexto=strTexto.toUpperCase();
        strTexto=strTexto.charCodeAt(0);
        e.keyCode=strTexto
    }
	/*
    else
    {
        e.keyCode=0
        strBol=false
    }	*/
    return strBol;
}

function esnumero(valorasc)
	{ //v3.0
	var Tecla_RetEspacio = 8;
  	var Tecla_Enter = 13; 
    var Tecla_Escape = 27;
    var Tecla_Punto = 46;

    /* Caracteres Numerico (0 - 9)*/ 
    if (valorasc < 48 || valorasc > 57)                 
       {
       if (valorasc != Tecla_RetEspacio && valorasc != Tecla_Enter && valorasc != Tecla_Escape) 
           {
           if (valorasc != Tecla_Punto)
              {
              return(false);
              }
           }   
       }
	return(true);
	}
	
function AbreVentana(pagina,nombre,alto,ancho,modificable,scroll) {
	contr_pagina=window.open(pagina, nombre, "toolbar=0,status=0,menubar=0,scrollbars="+scroll+",resizable="+modificable+",location=0,top=0,left=0,directories=0,width="+ancho+",height="+alto)
	contr_pagina.focus();
	return false;
	}	
	
function LimpiaTexto(ObjTexto)
{
   ObjTexto.value='';
   ObjTexto.focus();
    
}

function textCounter(field, countfield, maxlimit) {

if (field.value.length > maxlimit)
{
	field.value = field.value.substring(0, maxlimit);
	countfield.value = 0;
	alert("Se ha superado la cantidad máxima de carácteres permitida para su consulta");
}	
else 
countfield.value = maxlimit - field.value.length;
}

function VerMapa()
{
   AbreVentana('/mapa_enea/mapa_enea.html','mapa_enea',710,525,'no','no') 
}
