/**
 * Funciones Util para Formularios
 */
function replaceAll( text, busca, reemplaza ){
  while (text.toString().indexOf(busca) != -1)
      text = text.toString().replace(busca,reemplaza);
  return text;
} 
function isEmpty(value) {
	
    var pattern=new RegExp("^[ ]*$");
    return value.match(pattern) || value.length==0;
}

function validaSelect(lista){
    var id = lista.selectedIndex
    var valor = lista.options[id].text
    
    if (valor == "Seleccionar"){
            return false
    }
    
    return true;
}


function validarCheckbox(asignar){ 
      var formulario =  document.forms[0]; 
      var elementosTotales = asignar.length; 
      var total_checked = 0; 
      
      for(i=0;i<elementosTotales;i++) { 
         if((formulario.asignar[i].checked)) 
                total_checked++; 
                
      } 
      
      if(total_checked == 0){
        return false;    
      }
      else{
       return true;    
      }
      
}


function formatNum(valor) {
    if (!validaStrNumerico(valor) || valor.value.trim() == '' || valor.value.trim() == ',')
        valor.value = 0;
    valor.value = valor.value.trim().numFormat();
}


function bloqueo() {
document.forms[0].bloqueo.value = "bloqueo";
$('#dBloquear').dialog('open');
}

function bloqueoPagina() {
var div = '<div id="bloqueoPagina" class="ui-widget-overlay" style="z-index:9998;position:fixed"></div><img id="bloqueoPaginaIMG" src="img/iconos/icono_espera.png" style="z-index:9999;position:fixed;top:50%;margin-top:-75px;left:50%;margin-left:-100px">';
$('body').prepend(div);
}
function hideBloqueoPagina() {
    $("#bloqueoPagina").hide();
    $("#bloqueoPaginaIMG").hide();
}

var flgDblSbmt       = 0;
 
function valDobleSubmit()
{
  
  if (flgDblSbmt==0){
    flgDblSbmt=1;
    return true;  
  }
  
  else
  {
      alert("Enviando datos, por favor espere un instante.");
      return false;
  }
  
}


$(document).ready(function() {
 $("#dBloquear").dialog( {
        bgiframe : true,
        autoOpen : false,
        height : 100,
        width: 200,
        modal : true,
        resizable : false,
        draggable : false,
        closeOnEscape: false
          
       
    });
});    

function validaRut2(rut) {
    var dvr = '0';
    var suma = 0;
    var mul = 2;
    var rut2=rut.split("-");
    var rut3=rut2[0];
    var dv= "";
    if(rut2.length>1)
        dv= rut2[1].toLowerCase();
    else {
    rut3=rut.substring(0, rut.length-1);
    dv = rut.substring(rut.length-1, rut.length);}
    for (iRut = rut3.length - 1;iRut >= 0;iRut--) {
        suma = suma + rut3.charAt(iRut) * 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 == dv.toLowerCase();
}
function validaRut(rut) {
    var rexp = new RegExp(/^([0-9])+\-([kK0-9])+$/);
    var error_formato = "El formato del rut es incorrecto";
    var error_incorrecto = "El rut es incorrecto";

    if (rut.match(rexp)) {
        var RUT = rut.split("-");
        var elRut = RUT[0].toArray();
        var factor = 2;
        var suma = 0;
        var dv;

        for (i = (elRut.length - 1);i >= 0;i--) {
            factor = factor > 7 ? 2 : factor;
            suma += parseInt(elRut[i]) * parseInt(factor++);
        }

        dv = 11 - (suma % 11);

        if (dv == 11) {
            dv = 0;
        }
        else if (dv == 10) {
            dv = "k";
        }

        if (dv == RUT[1].toLowerCase()) {
            return true;
        }
        else {
             return false;
            //alert(error_incorrecto);
        }
    }
    else {
         return false;
        //alert(error_formato);
    }
}
function validaDigitoVerificador(e) {
      
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    patron = /[0-9Kk]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function validarNum(e)
{
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    patron = /\d/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}

function validarLetras(e) { // 1
  tecla = (document.all) ? e.keyCode : e.which; // 2
  if (tecla==8) return true; // 3
  patron =/[A-Za-z\s]/; // 4
  te = String.fromCharCode(tecla); // 5
  return patron.test(te); // 6
} 

function validarLetrasYComa(e) { // 1
  tecla = (document.all) ? e.keyCode : e.which; // 2
  if (tecla==8) return true; // 3
  patron =/[A-Za-z\s]|\,/; // 4
  te = String.fromCharCode(tecla); // 5
  return patron.test(te); // 6
} 

function validarEmail(valor) {

    var mail = valor.value; 
    var filtro=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
     if (!filtro.test(mail)){
          alert("La dirección de email es incorrecta.");
          return false;
    }
    return true;
  
}
function autoLimpiaCamposExtendidosGeneral() {
    if(typeof autoLimpiaCamposExtendidos == 'function')
        autoLimpiaCamposExtendidos();
    if(typeof comboExtendidoClean == 'function')
        comboExtendidoClean();
}
function accionFormulario(accion) {
    autoLimpiaCamposExtendidosGeneral();
    document.forms[0].accion.value = accion;
    document.forms[0].submit();
}

function stripHTML(oldString) {

   var newString = "";
   var inTag = false;
   for(var i = 0; i < oldString.length; i++) {
  
        if(oldString.charAt(i) == '<') inTag = true;
        if(oldString.charAt(i) == '>') {
              if(oldString.charAt(i+1)=="<")
              {
              		//dont do anything
	}
	else
	{
		inTag = false;
		i++;
	}
        }
   
        if(!inTag) newString += oldString.charAt(i);

   }

   return newString;
}

/*
 * Funciones de conversion de fecha
 */

function trim(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}

	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}
	
	return cadena;
}

function obtieneFechaFormatoEstandar(fecha) {
    if ( fecha == null ) {
       return null;
    }
    fecha = trim(fecha);
    var iPrimerSlash = fecha.indexOf("/");
    if(iPrimerSlash <= 0) return null;

    var iSegundoSlash = fecha.substring(iPrimerSlash + 1).indexOf("/");
    if(iSegundoSlash <= 0) return null;
    // Ajusta la posicion (porque la segunda se saco a partir de la primera)
    iSegundoSlash = iPrimerSlash + iSegundoSlash + 1;
    
    var dia = fecha.substring(0, iPrimerSlash);
    var mes = fecha.substring(iPrimerSlash + 1, iSegundoSlash);
    var anno = fecha.substring(iSegundoSlash + 1);
    
    try {
        var fechaFinal = new Date();
        fechaFinal.setDate(dia);
        fechaFinal.setMonth(mes);
        fechaFinal.setYear(anno);
    }
    catch(Exception) {
        return null;
    }
    
    return fechaFinal;
}

function toolTipOverRight(elemento){
    var elementos=$(elemento).parent().children();
    if($(elementos[0]).attr("class")=="tooltip_right")
        $(elementos[0]).fadeIn(500); 
        
    if($(elementos[0]).attr("class")=="tooltip_right"){        
        $(elemento).mouseout(function(){
            $(elementos[0]).fadeOut(500); 
        });
    }
}

function toolTipOver(elemento){
    var elementos=$(elemento).parent().children();
    if($(elementos[0]).attr("class")=="tooltip_tp")
        $(elementos[0]).fadeIn(500); 
        
    if($(elementos[0]).attr("class")=="tooltip_tp"){        
        $(elemento).mouseout(function(){
            $(elementos[0]).fadeOut(500); 
        });
    }
}


function toolTipClick(elemento){
    var elementos=$(elemento).parent().children();
    if($(elementos[0]).attr("class")=="tooltip_click"){
        $(elementos[0]).fadeIn(500); 
    }
        
    /*if($(elementos[0]).attr("class")=="tooltip_click"){        
        $(elemento).mouseout(function(){
            $(elementos[0]).fadeOut(500); 
        });
    }*/
}

$.fn.tagName = function() {
    return this.get(0).tagName;
}

/*Para tooltip de informacion de clientes en las tablas*/
function formatoRut(inString) {
    var cadena = inString;
    var largo = cadena.length;
    var rut = cadena.substring(0,largo-1);
    var dv = cadena.substring(largo-1,largo);

    return formatoPeso(rut)+"-"+dv;
}

function formatoPeso(inValor){
    var cadena = inValor;
    var largo = cadena.length;  
    var retorno="";
    var count=0;
    for(var i=largo-1;i>=0;i--){
        if(count==3){
            retorno=cadena[i]+"."+retorno;
            count =1;
        } else{
            retorno=cadena[i]+retorno;
            count++
        }        
    }
    return retorno;
}
function addInfo(label,dato,saltoLinea){
    if(dato!="undefined" && jQuery.trim(dato).length>0)
        return "<span class=\"bold\">"+label+"<\/span>: "+dato+(saltoLinea==true?"<br />":"");
    else return "";
}
function addData(dato,saltoLinea){
    if(dato!="undefined" && jQuery.trim(dato).length>0)
        return dato+(saltoLinea==true?"<br />":"");
    else return "";
}
function formatoMonto(inValor){

    var cadena = inValor;
    var largo = cadena.length;  
    var retorno="";
    var count=0;
    
   
    if(cadena.length > 0) {
        if(!validar(cadena)){
           alert("Debe ingresa solo numeros");
           return retorno;
        }
        else if(cadena <= 0){
            alert("Debe ingresa solo numeros mayor a 0");
            return retorno;
         }
        else{ 
        for(i=largo-1;i>=0;i--){
            if(count==3){
                retorno=cadena[i]+"."+retorno;
                count =1;
            } else{
                retorno=cadena[i]+retorno;
                count++
            }        
        }
        return retorno;
        }
    }
    return retorno;
} 
 
function desformatoMonto(inValor){

 var cadena = inValor;
 cadena = replaceAll(cadena,'.','');
  
   
 return cadena;
}

function validar(monto){

 if(/^[0-9]+$/.test(monto))
   return true
   
return false;
}


    //quita puntos y reemplaza como por punto
    // ej: 3.500,25 queda como 3500.25
function quitaPuntosMonto(instr){
    var out = instr.replace(/\./g,"");
    return out.replace(/\,/g,".");
}

function fechaMayorIgualQue(inFechaMayor,inFechaMenor){
    var fechaMenor = inFechaMenor.split("/");
    var fechaMayor = inFechaMayor.split("/");
    
    var IANO = 2;
    var IMES = 1;
    var IDIA = 0;
    
    var diaMenor   = parseInt(fechaMenor[IDIA],10);
    var mesMenor   = parseInt(fechaMenor[IMES],10);
    var anoMenor   = parseInt(fechaMenor[IANO],10);
    
    var diaMayor   = parseInt(fechaMayor[IDIA],10);
    var mesMayor   = parseInt(fechaMayor[IMES],10);
    var anoMayor   = parseInt(fechaMayor[IANO],10);    

    if(mesMenor < 10) mesMenor = "0" + mesMenor;
    if(diaMenor < 10) diaMenor = "0" + diaMenor;
 
    if(mesMayor < 10) mesMayor = "0" + mesMayor;
    if(diaMayor < 10) diaMayor = "0" + diaMayor; 

    showAlert(diaMayor+"/"+mesMayor+"/"+anoMayor);
    showAlert(diaMenor+"/"+mesMenor+"/"+anoMenor);
    
    if(anoMenor==anoMayor && mesMenor==mesMayor && diaMenor==diaMayor){
         showAlert("1");return true;
    } else if(anoMayor>anoMenor) {
        showAlert("2");return true;
    } else if(anoMayor<anoMenor) {         
        showAlert("3");return false;
    } else {
        if(mesMayor>mesMenor) {
            showAlert("4");return true;
        } else if(mesMayor<mesMenor) {                           
            showAlert("5");return false;               
        } else {
            if(diaMayor>diaMenor) {
                showAlert("6");return true;
            } else if(diaMayor<diaMenor) {                     
                showAlert("7");return false;                    
            } else {
                showAlert("7");return true;
            }
        }
    }
  
}
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
function showAlert(text){
    //alert(text);
}
//Suma dias a una fecha
function addDays(myDate,days) {
    days=days-1
    return new Date(myDate.getTime() + days*24*60*60*1000);
} 
function validaRangoFecha(fechaRangoIni,fechaRangoFin,fechaValidar){
    var dia = parseInt(jQuery.trim(fechaValidar.substr(0,2)),10);
    var mes = parseInt(jQuery.trim(fechaValidar.substr(3,2)),10);
    var ano = jQuery.trim(fechaValidar.substr(6,4));
    fechaValidar = dia+"/"+mes+"/"+ano;

   // alert(fechaRangoIni+" * "+fechaRangoFin+" * "+fechaValidar);
    if(fechaMayorIgualQue(fechaRangoIni,fechaValidar) || 
       fechaMayorIgualQue(fechaValidar,fechaRangoFin) ){
           return false;
       } else return true;
}
function validaFechaInput(elemento){
    var valida = true;
    if($(elemento).val().length==10 ){
        var fecha = $(elemento).val();
        if(parseInt(jQuery.trim(fecha.substr(0,2)),10)>31 ||  
           parseInt(jQuery.trim(fecha.substr(3,2)),10)>12 || 
           jQuery.trim(fecha.substr(6,4)).length!=4 ){
                valida = false;   
           }           
    } else {
        valida = false;
    }  
    return valida;
}
function stringToDate(fecha){
    var dia = parseInt(jQuery.trim(fecha.substr(0,2)),10)+1;
    var mes = parseInt(jQuery.trim(fecha.substr(3,2)),10)-1;
    var ano = jQuery.trim(fecha.substr(6,4));
    return (new Date(ano, mes, dia, 0, 0, 0, 0));
}

function dateToString(fecha){
    var date = Array();
    
    date[0] = fecha.getDate();
    date[1] = fecha.getMonth();
    date[2] = fecha.getFullYear();
    
    return date[0]+"/"+(1+parseInt(date[1]))+"/"+(parseInt(date[2]));
}

//USO: en el "ready" del JS
// maxlengthTextarea($("#idTextarea"),50);
function maxlengthTextarea(element,mx){
     
     $(element).keyup(function() {
        var str = $(this).val();
        if (str.length > mx) {
            $(this).val(str.substr(0, mx));
            return false;
        }
     });
     $(element).keypress(function() {
        var str = $(this).val();
        if (str.length > mx) {
            $(this).val(str.substr(0, mx));
            return false;
        }
     });  
     $(element).change(function() {
        var str = $(this).val();
        if (str.length > mx) {
            $(this).val(str.substr(0, mx));
            return false;
        }
     });     
}
// Index = 7
function tipoPoliza(inString,index){
    if(inString!=undefined){
        var token = inString.split(":");
        return parseInt(token[7]);        
    } else {
        return "";
    }
}

