/* -------------------------------------------------------------------------------------------------- */
function aplicarTrim(objmail)
{
    objmail.value = objmail.value.trim();
}

/*----------------------------------------------------------------------------------------*/
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}

/*----------------------------------------------------------------------------------------*/
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}

/*----------------------------------------------------------------------------------------*/
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}



/*----------------------------------------------------------------------------------------*/
function trim(cad)
{
    return cad.replace(/^\s+|\s+$/g,"");
}


/*----------------------------------------------------------------------------------------*/
function Trim(cad)
{
    return cad.replace(/^\s+|\s+$/g,"");
}


/*----------------------------------------------------------------------------------------*/
function ltrim(cad)
{
    return cad.replace(/^\s+/,"");
}

/*----------------------------------------------------------------------------------------*/
function rtrim(cad)
{
    return cad.replace(/\s+$/,"");
}


/*----------------------------------------------------------------------------------------*/
function Len(s){
	// Devuelve la longitud de la cadena s
	return s.length;
}


/*----------------------------------------------------------------------------------------*/
function resizeIframe(idIframe)
{
var miIframe=document.getElementById(idIframe);
var alturaPagina=miIframe.contentWindow.document.body.scrollHeight+20;
miIframe.style.height=alturaPagina;
}


/*----------------------------------------------------------------------------------------*/
function CompletarConValor( objeto, largoTotal, valor ) 
{
    texto = objeto.value;
    
    if (texto.length < largoTotal)
    {
        for (i=0; i < largoTotal-objeto.value.length; i++)
        {
            texto = valor + texto;
        }
        objeto.value = texto;
    }
}


// ---------------------------------------------------------------------------------
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 IsInteger( numstr ) {
if (isNaN(parseInt(numstr))) return false;
return true;
}


/*----------------------------------------------------------------------------------------*/
function IsNumeric( numstr ) {
if (isNaN(parseFloat(numstr))) return false;
return true;
}


/*----------------------------------------------------------------------------------------*/
function formatearNumero(numero)
{
    if (numero.value != "")
    {
        valor = "0" + numero.value.replace(",", ".")
        if (IsNumeric(valor))
        {
            numero.value = parseFloat(valor).toString().replace(".", ",")
        }
    }
}


/*----------------------------------------------------------------------------------------*/
function formato_numero(numero, decimales, separador_decimal, separador_miles){ // v2007-08-06
    numero=parseFloat(numero);
    if(isNaN(numero)){
        return "";
    }

    if(decimales!==undefined){
        // Redondeamos
        numero=numero.toFixed(decimales);
    }

    // Convertimos el punto en separador_decimal
    numero=numero.toString().replace(".", separador_decimal!==undefined ? separador_decimal : ",");

    if(separador_miles){
        // Ańadimos los separadores de miles
        var miles=new RegExp("(-?[0-9]+)([0-9]{3})");
        while(miles.test(numero)) {
            numero=numero.replace(miles, "$1" + separador_miles + "$2");
        }
    }

    return numero;
}


/*----------------------------------------------------------------------------------------*/
function formatoMiles(valor)
{
    return formato_numero(valor, 0, ",", ".");
}


/*----------------------------------------------------------------------------------------*/
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(objRut.value)

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álido")
                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álido")
			    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 ValidarDv(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if(tecla == 8 || tecla == 9 || tecla == 0) return true;
    patron =/[0-9kK]/;
    //patron = /\w/;
    te = String.fromCharCode(tecla);
    if (!patron.test(te))
        return false;
    else
        return Mayusculas(e);
}


/*----------------------------------------------------------------------------------------*/
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; }
}


/*----------------------------------------------------------------------------------------*/
/*
onkeypress="onlyDigits(event,'noDec')"
onkeypress="onlyDigits(event,'decOK')"
*/
var isIE = document.all?true:false;
var isNS = document.layers?true:false;


/*----------------------------------------------------------------------------------------*/
function soloDigitos(e, decReq, posEnt)
{
    coma = 44;
    punto = 46;
    retroceso = 8;
    flecha1 = 9;
    flecha2 = 0;
    
    tecla = (document.all) ? e.keyCode : e.which;
    obj = (isIE) ? event.srcElement : e.target;
    OKPunto = ((tecla == coma || tecla == punto)&& decReq == 'decOK' && ((obj.value.indexOf(",") == -1 && obj.value.indexOf(".") == -1) || obj.value.length == 0));
    
    if(tecla == retroceso || tecla == flecha1 || tecla == flecha2) return true;
    if (tecla == punto)
    {   
        if (!OKPunto)
        {
            return false;
        }
        else if (isIE)
        {
            window.event.keyCode = coma;
        }
        else if (e.currentTarget.value.length < e.currentTarget.getAttribute('maxlength'))
        {
            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(coma).toUpperCase()+ string_end;
            e.currentTarget.selectionStart = pst + 1;
            e.currentTarget.selectionEnd = pst + 1;
            e.stopPropagation();
            return false;
        }
        tecla = coma;
    }
    
    patron =/[0-9,]/;
    tecla_valor = String.fromCharCode(tecla);
    
    if (patron.test(tecla_valor))
    {
        OKDecimales = (obj.value.indexOf(",") >= 0 && obj.value.substr(obj.value.indexOf(",") + 1, obj.value.length).length >= 2) ? false : true;
        
        if (tecla == coma) return OKPunto;
        if (!OKPunto && !OKDecimales) return false;
        if (posEnt != undefined && posEnt != null && posEnt > 0)
            return (obj.value.indexOf(",") > posEnt || (obj.value.indexOf(",") == -1 && obj.value.length >= posEnt)) ? false : true;
    }
    else
        return false;
}


/*----------------------------------------------------------------------------------------*/
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 validarTextoEmail(e) 
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[-A-Za-z0-9_.]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}


/*----------------------------------------------------------------------------------------*/
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 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 validar_formatofono(strfono){
var bOk = true;
var s = strfono.value;

// se define una expresion regular con la cual se evaluará el formato del email
var filter =/^\d{2,3}-\d{6,7}$/;

// verificamos que el email cumpla con el formato requerido
if (!filter.test(s)){
alert('Error en el formato de Teléfono');
strfono.style.color = "red"
strfono.focus();
bOk = false;
}
else
{
strfono.style.color = "black"
}
return bOk;
}

// -------------------------------------------------------------------------------------
function validarTextoFono(e){
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    patron =/[-\d]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}


/*----------------------------------------------------------------------------------------*/
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);
}


// --------------------------------------------------------------------------------------------------
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 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 MayusculasABC(e)
{
    swIE = (document.all) ? true : false;
    tecla = (document.all) ? e.keyCode : e.which;
    
    if(tecla == 8 || tecla == 9 || tecla == 0) return true;
    
    if (validarTexto(e))
    {
        if (swIE)
        {
            e.keyCode = String.fromCharCode(tecla).toUpperCase().charCodeAt(0);
            return true;
        }
        else if (e.currentTarget.value.length < e.currentTarget.getAttribute('maxlength'))
        {
            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 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);
            return true;
        }
        else if (e.currentTarget.value.length < (e.currentTarget.getAttribute('maxlength') == null ? 999999 : e.currentTarget.getAttribute('maxlength')))
        {
            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 false;
}


/* -------------------------------------------------------------------------------------------------- */
function MayusculasEmail(e)
{
    swIE = (document.all) ? true : false;
    tecla= (document.all) ? e.keyCode : e.which;
    
    if(tecla == 8 || tecla == 9 || tecla == 0) return true;
    
    if (validarTextoEmail(e))
    {
        if(swIE)
        {
            e.keyCode = String.fromCharCode(tecla).toUpperCase().charCodeAt(0);
            return true;
        }
        else if (e.currentTarget.value.length < e.currentTarget.getAttribute('maxlength'))
        {
            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 false;
}


/* -------------------------------------------------------------------------------------------------- */
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();
}	



/* -------------------------------------------------------------------------------------------------- */
function AbrePopup(url, ancho, alto, metodo)
{
    var mydate = new Date();
    var nombre = "tmp_" + mydate.valueOf();
    
    var atribs="resizable=yes, toolbar=yes, statusbar=yes, menu=yes, width=" + ancho + ", height=" + alto + ", top=120, left=150, scrollbars=yes, modal=yes";
    return window.open(url, nombre, atribs);
}


/* -------------------------------------------------------------------------------------------------- */
function CerrarPoup()
{
    window.open("","_parent",""); 
    window.close(); 
}


/* -------------------------------------------------------------------------------------------------- */
function CambiarColor(objeto, color)
{
    objeto.style.color = color
}