/* - - - - - - - - - - - - - - - - - - - - - - -
 JavaScript
 Jueves, 17 de Febrero de 2005 13:08:40
 HAPedit 3.2.11.112 beta
 - - - - - - - - - - - - - - - - - - - - - - - */

// openwin: abre un "popup" sin barras
function openwin( url ) {
    popupwin ( url, 800, 600, 0, 0 );
}

function popupwin ( url, height, width, left, top ) {
    var nue_vent = window.open (url, 'pop_win', config='height=' + height + ', width=' + width + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, directories=no, status=no');

    if ( ! nue_vent.opener ) nue_vent.opener = self;
    nue_vent.moveTo (left, top);
}

function img_window(PAGE,HGT,WDT) {
    var imgWin = window.open(PAGE,"img_window","height="+HGT+",width="+WDT+",menubar=0,location=0,toolbar=0,status=0,resizable=1,scrollbars=1");
    imgWin.focus();
}

function messageWindow(title, msg) {
    var width="300", height="125";
    var left = (screen.width/2) - width/2;
    var top = (screen.height/2) - height/2;
    var styleStr = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top;
    var msgWindow = window.open("","msgWindow", styleStr);
    var head = '<head><title>'+title+'</title></head>';
    var body = '<center>'+msg+'<br><p><form><input type="button" value="  Cerrar  " onClick="self.close()"></form>';
    msgWindow.document.write(head + body);
}

function emailCheck (emailStr) {
    /* Verificar si el email tiene el formato user@dominio. */
    var emailPat = /^(.+)@(.+)$/

    /* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */
    var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"

    /* Verifica los caracteres que son válidos en una dirección de email */
    var validChars = "\[^\\s" + specialChars + "\]"
    var quotedUser = "(\"[^\"]*\")"

    /* Verifica si la dirección de email está representada con una dirección IP Válida */
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

    /* Verificar caracteres inválidos */
    var atom = validChars + '+'
    var word = "(" + atom + "|" + quotedUser + ")"
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$")

    /* domain, as opposed to ipDomainPat, shown above. */
    var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$")

    var matchArray = emailStr.match(emailPat)

    if (matchArray == null) {
        alert("Email address seems incorrect (check @ and .'s)")
        return false
    }
    
    var user = matchArray[1]
    var domain = matchArray[2]

    // Si el user "user" es valido 
    if (user.match(userPat) == null) {
        // Si no
        alert("El nombre de usuario no es válido.")
        return false
    }

    /* Si la dirección IP es válida */
    var IPArray = domain.match(ipDomainPat)
    
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i]>255) {
                alert("IP de destino inválida")
                return false
            }
        }
    
        return true
    }

    var domainArray = domain.match(domainPat)
   
    if (domainArray == null) {
        alert("El dominio parece no 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("La dirección debe tener 3 letras si es .com, o 2 si es de algún pais.")
        return false
    }

    if (len < 2) {
        var errStr = "La dirección es erronea"
        alert(errStr)
        return false
    }

    // La dirección de email ingresada es Válida
    return true;
}

function trim (str) {
    var str = str.replace(/^\s\s*/, ''),
        ws = /\s/,
        i = str.length;
    while (ws.test(str.charAt(--i)));
    return str.slice(0, i + 1);
}

function NewPassword() {
    var alfabeto = "abcdefghijklmnopqrstuvwxyz";

    // Genera letras
    // pos = Posicion de la mayuscula
    pos = Math.round(Math.random()*4);
    if (pos == 0) pos = 1;

    letra = "";
    for (i = 1; i < 5; i++) {
        let = Math.random()*27;
        if (Math.round(let) > let) {
            let = Math.round(let) - 1;
        } else {
            let = Math.round(let);
        }
        if (let > 0) let -= 1;  // el primer caracter esta en la pos 0
        caracter = alfabeto.charAt(let);

        if (pos == i) {
            caracter = caracter.toUpperCase();
        }
        letra += caracter;
    }

    // Genera números (chars entre 48 y 57)
    numero = "";
    for (i = 1; i < 5; i++) {
        num = Math.random()*10;
        if (Math.round(num) > num) {
            num = Math.round(num) - 1;
        } else {
            num = Math.round(num);
        }
        numero += num.toString();
    }

    return letra + numero;
}

function GetXmlHttpObject() {
    var xmlHttp = null;
    
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function img_rate(url,element_id) {
        if (url.length == 0) {
            return false;
        }

        var element = document.getElementById(element_id);

        xmlHttp = GetXmlHttpObject();
        if ( xmlHttp == null ) {
            alert ("Your browser does not support AJAX!");
            return;
        }

        xmlHttp.open("GET",url,true);
        
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                element.innerHTML = xmlHttp.responseText;
            }
        }

        xmlHttp.send(null);
}

function ToggleLayerDisplay(nr) {
    if (document.all) {
        document.all[nr].style.display = (document.all[nr].style.display == 'none') ? 'block' : 'none';
    } else if (document.getElementById) {
        document.getElementById(nr).style.display = (document.getElementById(nr).style.display == 'none') ? 'block' : 'none';
    }
}
