﻿var vbCr = "\r";
var vbLf = "\n";
var vbCrLf = vbCr + vbLf;
var vbTab = "\t";

function Left(s, n) {
    // Devuelve los n primeros caracteres de la cadena
    if (n > s.length)
        n = s.length;

    return s.substring(0, n);
}
function Right(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 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 ltrim(s) {
	        return s.replace(/^\s+/, "");
        }

        function rtrim(s) {
	        return s.replace(/\s+$/, "");
        }

        function trim(s) {
	        return rtrim(ltrim(s));
        }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 RInStr(n, s1, s2) {
    // Devuelve la posición de la última 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 = RInStr.arguments.length;

    if (numargs < 3)
        return n.lastIndexOf(s1) + 1;
    else
        return s1.lastIndexOf(s2, n) + 1;
}
function Space(n) {
    // Devuelve una cadena con n espacios
    var t = "";

    for (var i = 1; i <= n; i++)
        t = t + " ";

    return t;
}
function jString(n, c) {
    // Devuelve n veces el caracter c
    var t = "";

    for (var i = 1; i <= n; i++)
        t = t + c;
    return t;
}
function UCase(s) {
    // Devuelve la cadena convertida a mayúsculas
    return s.toUpperCase();
}
function LCase(s) {
    // Devuelve la cadena convertida en minúsculas
    return s.toLowerCase();
}
function Len(s) {
    // Devuelve la longitud de la cadena s
    return s.length;
}
function StrReverse(s) {
    // Invierte la cadena
    var i = s.length;
    var t = "";

    while (i > -1) {
        t = t + s.substring(i, i + 1);
        i--;
    }
    return t;
}

function eMailValido(theElement) {
    var s = theElement.value;
    var filter = /^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
    /*if (s.length == 0) return true;

    if (filter.test(s)) {
        return true;
    } else {
        theElement.focus();
        return false;
    }*/
    return emailCheck(s)
}


function emailCheck (emailStr) { 
 
var emailPat=/^(.+)@(.+)$/; 
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; 
var validChars="\[^\\s" + specialChars + "\]"; 
var quotedUser="(\"[^\"]*\")"; 
var ipDomainPat=/^[(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})]$/; 
var atom=validChars + '+'; 
var word="(" + atom + "|" + quotedUser + ")"; 
var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); 
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); 
var matchArray=emailStr.match(emailPat); 
if (matchArray==null) { 
    //alert("La dirección de correo parece ser inválida (verifique las @ y .)") 
    return false 
} 
var user=matchArray[1] 
var domain=matchArray[2] 
 
if (user.match(userPat)==null) { 
    //alert("El nombre de usuario parece ser inválido.") 
    return false 
} 
 
var IPArray=domain.match(ipDomainPat) 
if (IPArray!=null) { 
      for (var i=1;i<=4;i++) { 
        if (IPArray[i]>255) { 
            //alert("La dirección IP de destino es inválida!") 
        return false 
        } 
    } 
    return true 
} 
 
var domainArray=domain.match(domainPat) 
if (domainArray==null) { 
    //alert("El dominio no parece ser válido.") 
    return false 
} 
var atomPat=new RegExp(atom,"g") 
var domArr=domain.match(atomPat) 
var len=domArr.length 
if (domArr[domArr.length-1].length<2 ||  
    domArr[domArr.length-1].length>3) { 
   //alert("Las direcciones deben terminar con dominios de tres letras, o el código de país de dos letras.") 
   return false 
} 
 
if (len<2) { 
   var errStr="Dominio Inválido!"; 
   //alert(errStr) 
   return false 
} 
 
return true; 
} 


function replace(texto, s1, s2) {
    return texto.split(s1).join(s2);
}

function limpiar_caracteres(texto) {
    var temp;

    temp = texto;
    temp = replace(temp, '<', '');
    temp = replace(temp, '>', '');
    return temp;
}

function bloqueo_popup_activo()
{
  var popup;
  var res;
  try
  {
    //Se crea una nueva ventana para probar si esta o no activo
    // el bloqueador de ventanas emergentes.
    //Si esta activo, se lanza el error, de lo contrario sólo se cierra la ventana creada
    if(!(popup = window.open('about:blank','_blank','width=1,height=1')))
      throw "ErrPop"
    res=false;
    popup.close()
  }
  catch(err)
  {
    //Se captura el error, si fue por motivo de bloqueo, se muestra el mensaje de advertencia
    //Si no fue por bloque, entonces se muestra la descripción del error ocurrido.
    if(err=="ErrPop")
      res=true;
    else
    {
      res=true;  
      msj="Hubo un erro en la página.\n\n"
      msj+="Descripción del error: " + err.description + "\n\n"
     }
  }
  return res;

}
function detectPopupBlocker() {
  var c;
  var myTest = window.open("www.google.com","","directories=no,height=100,width=100,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,top=0,location=no");
  if (!myTest) {
    res=true;
  } else {
    myTest.close();
    res=false;
  }
}
function mostrarDescTarifa(titulo, obj) {
    //alert(obj);
    //alert($("#" + obj).html());
    if ($("#" + obj).html() != "") {
        //$("#" + obj).toggle(400);
        $.gritter.add({
            // (string | mandatory) the heading of the notification
            title: titulo,
            // (string | mandatory) the text inside the notification
            text: $("#" + obj).html(),
            // (string | optional) the image to display on the left
            image: '',
            // (bool | optional) if you want it to fade out on its own or just sit there
            sticky: false,
            // (int | optional) the time you want it to be alive for before fading out
            time: ''
        });
    }
}
