/* ======================================================================
Este script es propiedad intelectual de Vector Comunicación
info@vectorcomunicacion.com | Tlf./Fax. +34 (9)6 379 39 58
Queda prohibida su reproducción, copia o modificación.
Desarrollado por Joshua Llorach 17/07/01
====================================================================== */

//identificamos si el navegador es IE
isIE = (parseInt(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5,navigator.appVersion.indexOf("MSIE")+6))>=5) ? true : false;

//limpiamos ventanas hijas en el unload del body
var hHija = false
function CloseAll() {
    if (hHija)
        if (!hHija.closed) {
            hHija.close()
        }
}

//efectos menus

function eventTD(obj,accion) {
    switch (accion) {
        case 1: obj.className='OpcionSubOver'; break;
        case 2: obj.className='OpcionSub'; break;
        case 3: obj.children.tags('A')[0].click(); break;
    }
}

function eventTDAdm(obj,accion) {
    switch (accion) {
        case 1: obj.className='MenuAdmOver'; break;
        case 2: obj.className='MenuAdm'; break;
        case 3: obj.children.tags('A')[0].click(); break;
    }
}

//formulario registro usuarios

function ShowAvatar() {
    document.images.avatar.src= "img/avatar/" + document.Registrar.avatarB.options[document.Registrar.avatarB.selectedIndex].value
}

function selTipoAvatar(Tipo) {
    switch (Tipo) {
        case 0:
            document.Registrar.tipoavatar[Tipo].checked = true
            document.Registrar.avatarB.selectedIndex = 0
            ShowAvatar()
            break
        case 1: document.Registrar.tipoavatar[1].checked = true; break
    }
}

//funcion generica para lanzar popup's

function PopWin(Url,Alto,Ancho) {
  Arriba    = Math.ceil((screen.availHeight-Alto)/2)
  Izquierda = Math.ceil((screen.availWidth-Ancho)/2)
  hHija = window.open(Url,"",'toolbar=no,location=no,directories=no,status=no,scrollbars=si,resizable=no,copyhistory=no,width='+Ancho+',height='+Alto+',top='+Arriba+',left='+Izquierda)
  hHija.focus()
}

//wysiwyg

function WYSIWYGInicializar() {
    Contenido = "<html><head><style>body{margin:0;background-color:#C4C8CD;font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;font-size:11px;}a{text-decoration:underline;color:#253A4B;}</style></head><body>"+document.all.item("contenido").value+"</body></html>";
    frEditor.document.designMode="On";
    frEditor.document.open();
    frEditor.document.write(Contenido);
    frEditor.document.close();
    frEditor.focus()
}

VerModo = "WSIWYG"
function WSIWYGCambiarModo() {
    if (VerModo == "WSIWYG") {
        document.all.item("btVerModo").value="Ver editor visual"
        frEditor.document.body.innerText = frEditor.document.body.innerHTML
        frEditor.document.body.style.font = "normal normal normal 12px monospace"
        frEditor.document.body.style.backgroundColor = "#FFFFFF"
        VerModo = "HTML"
    } else {
        frEditor.document.body.innerHTML = frEditor.document.body.innerText
        frEditor.document.body.style.font = "normal normal normal 11px 'Verdana, Geneva, Arial, Helvetica, sans-serif'"
        frEditor.document.body.style.backgroundColor = "#C4C8CD"
        document.all.item("btVerModo").value="Ver HTML"
        VerModo = "WSIWYG"
    }
}

function DarFormato(Formato, Parametro, Dialogo) {
    if (VerModo == "HTML") {
        alert("Para aplicar este formato primero debe pasar al modo Editor Visual");
        document.all.item("btVerModo").focus();
        return
    }
    frEditor.focus()
    Seleccion = frEditor.document.selection.createRange()
    if (Seleccion.text) {
        if (Seleccion.text.length<1) {
            alert("Seleccione primero el texto al que deseas aplicar los cambios")
            return
        }
    }
    if (Parametro) Seleccion.execCommand(Formato, Dialogo, Parametro)
    else Seleccion.execCommand(Formato)
    Seleccion.select()
    frEditor.focus()
}

function PopUpUpLdImg(Folder, ItemId, Semilla) {
    if (VerModo == "HTML") {
        alert("Primero debe pasar al modo Editor Visual");
        document.all.item("btVerModo").focus();
        return false
    }
    if(Folder) {
        if (frEditor.document.selection.createRange().text==null) {
            frEditor.document.execCommand("InsertImage", true);
            frEditor.focus()
            return false
        }
        if (hHija) {
            if (!hHija.closed) {
                hHija.focus()
                return false
            }
        }
        Url = "upldimagenes.php?folder="+Folder
        Url += ItemId ? "&itemid="+ItemId : "&semilla="+Semilla
        PopWin(Url,400,400)
    } else {
        if (frEditor.document.selection.createRange().text==null) {
            frEditor.document.execCommand("InsertImage", true);
        } else {
            alert("En ORIGEN DE LA IMAGEN debes colocar la URL de la imágen (incluyendo el 'http://').\nNo es posible subir imágenes de tu disco duro.");
            frEditor.document.execCommand("InsertImage", true);
        }
        MatchImgTags = frEditor.document.body.innerHTML.match("<img[^>]*src=[\"]?[^>]*[\"]?[^>]*>", "gi")
        if(MatchImgTags!=null) {
            TodoOK = true
            for (Cnt=0;Cnt<MatchImgTags.length;Cnt++) {
                if(!MatchImgTags[Cnt].match("<img[^>]*src=[\"]?http:\/\/[^>]*[\"]?[^>]*>", "gi")) {
                    TodoOK = false
                    frEditor.document.body.innerHTML = frEditor.document.body.innerHTML.replace(MatchImgTags[Cnt], "");
                }
            }
            if (!TodoOK) alert("En los comentarios, solo es posible colocar imágenes accesibles en internet. Ej: 'http://www.servidor.com/img/hola.gif'");
        }
        frEditor.focus()
    }
}

function InsertarImg(FicheroImagen) {
    if (VerModo == "HTML") {
        alert("Para insertar la imagen primero debe pasar al modo Editor Visual");
        hHija.focus();
        return
    }
    hHija.close()
    frEditor.focus()
    frEditor.document.execCommand("InsertImage", false, FicheroImagen);
    frEditor.focus()
    frEditor.document.execCommand("InsertImage", true);
}

function BorrarImg(FicheroImagen) {
    if (VerModo == "HTML") {
        alert("Para insertar la imagen primero debe pasar al modo Editor Visual");
        hHija.focus();
        return
    }
    MatchImgTags = frEditor.document.body.innerHTML.match("<img[^>]*src=[\"]?http:\/\/[^>]*"+FicheroImagen.replace(/\//g, "\\\/")+"[\"]?[^>]*>", "gi")
    if(MatchImgTags!=null) {
        for (Cnt=0;Cnt<MatchImgTags.length;Cnt++)
            frEditor.document.body.innerHTML = frEditor.document.body.innerHTML.replace(MatchImgTags[Cnt], "");
    }
}

//upldimagenes.php

function ValidaFicheroImagen() {
    if (!document.all.item("ficheroimagen").value.match(/\.gif|\.jpg$/i)) {
        alert("El formato de la imagen debe ser GIF o JPEG");
        return false;
    } else
        document.forms[0].submit();
}

//weblogart.php

function ValidaSendArt() {
    if (VerModo == "HTML") {
        alert("Para PREVISUALIZAR debe estar en modo Editor Visual");
        document.all.item("btVerModo").focus();
        return false
    }
    with(document.forms.SendArt) {
        if (tema.value=="elige") {
            alert("No has seleccionado el TEMA")
            tema.focus()
            return false
        }
        if (titulo.value=="") {
            alert("No has introducido el TITULO del artículo")
            titulo.focus()
            return false
        }
        if (frEditor.document.body.innerHTML=="") {
            alert("El ARTÍCULO está vacio")
            frEditor.focus()
            return false
        }
        contenido.value = frEditor.document.body.innerHTML
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

//weblogcom.php

function ValidaSendCom() {
    if (isIE && VerModo == "HTML") {
        alert("Para PREVISUALIZAR debe estar en modo Editor Visual");
        document.all.item("btVerModo").focus();
        return false
    }
    with(document.forms.SendCom) {
        if (asunto.value=="") {
            alert("Debes introducir el ASUNTO")
            asunto.focus()
            return false
        }
        if (isIE) {
            if (frEditor.document.body.innerHTML=="") {
                alert("El COMENTARIO está vacio")
                frEditor.focus()
                return false
            }
        } else {
            if (contenido.value=="") {
                alert("El COMENTARIO está vacio")
                contenido.focus()
                return false
            }
        }
        if(isIE) contenido.value = frEditor.document.body.innerHTML
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

//directorio.php

function ValidaEditLink() {
    with(document.forms.EditLink) {
        if (linid.value=="") {
            if (captura.value=="") {
                alert("Debes seleccionar la imagen de la CAPTURA de tu disco duro")
                captura.focus()
                return false
            }
            if (!captura.value.match(/\.jpg$/i)) {
                alert("La CAPTURA debe estar en formato JPEG")
                captura.focus()
                return false
            }
        }
        if (titulo.value=="") {
            alert("Debes introducir el TITULO")
            titulo.focus()
            return false
        }
        if (url.value=="" || url.value=="http://") {
            alert("Debes introducir la URL")
            url.focus()
            return false
        }
        if (linid.value=="" && categoria.selectedIndex==0) {
            alert("Debes seleccionar una CATEGORÍA")
            categoria.focus()
            return false
        }
        if (descripcion.value=="") {
            alert("Debes introducir la DESCRIPCION")
            descripcion.focus()
            return false
        }
        if (palabrasclave.value=="") {
            alert("Debes introducir al menos 2 PALABRAS CLAVE")
            palabrasclave.focus()
            return false
        }
        if (incluirentop.checked) {
            if (linid.value=="") {
                if (banner.value=="") {
                    alert("Debes seleccionar el BANNER de tu disco duro")
                    banner.focus()
                    return false
                }
                if (!banner.value.match(/\.gif$/i)) {
                    alert("El BANNER debe estar en formato GIF")
                    banner.focus()
                    return false
                }
        }
        }
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

//buscaisp

function InterProv(origen,destino) {
    with(document.forms.EditIsp) {
        objOrigen   = eval(origen)
        objDestino  = eval(destino)
        tam=objOrigen.options.length
        for(i=0;i<tam;i++) {
            if(objOrigen.options[i].selected && objOrigen.options[i].value!="") {
                var NewOption = document.createElement("OPTION")
                NewOption.text=objOrigen.options[i].text
                NewOption.value=objOrigen.options[i].value
                objDestino.add(NewOption)
                objOrigen.remove(i)
                break;
            }
        }
    }
}

function ValidaEditIsp() {
    with(document.forms.EditIsp) {
        if (nombre.value=="") {
            alert("Debes introducir el NOMBRE COMERCIAL")
            nombre.focus()
            return false
        }
        if (ispid.value=="") {
            if (logotipo.value=="") {
                alert("Debes seleccionar el fichero GIF del LOGOTIPO de tu disco duro")
                logotipo.focus()
                return false
            }
            if (!logotipo.value.match(/\.gif$/i)) {
                alert("El LOGOTIPO debe estar en formato GIF")
                logotipo.focus()
                return false
            }
        }
        if (presentacion.value=="") {
            alert("Debes introducir el texto de PRESENTACIÓN")
            presentacion.focus()
            return false
        }
        if (caracteristicas.value=="") {
            alert("Debes introducir las CARACTERÍSTICAS a destacar")
            caracteristicas.focus()
            return false
        }
        if (ispid.value=="" && tecnologia.selectedIndex==0) {
            alert("Debes seleccionar la TECNOLOGÍA mediante la que presta sus servicios el ISP")
            tecnologia.focus()
            return false
        }
        if (web.value=="" || web.value=="http://") {
            alert("Debes introducir la página WEB")
            web.focus()
            return false
        }
        if (email.value=="" || !ValidaMail(email.value)) {
            alert("Debes introducir un EMAIL correcto")
            email.focus()
            return false
        }
        if (telefono.value=="") {
            alert("Debes introducir el TELÉFONO de información comercial")
            telefono.focus()
            return false
        }
        if (!provincias.options.length) {
            alert("Debes seleccionar al menos una PROVINCIA")
            provincias.focus()
            return false
        } else
            for(i=0;i<provincias.options.length;i++) provincias.options[i].selected = true
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

function ValidaEditModalidad() {
    with(document.forms.EditModalidad) {
        if (nombre.value=="") {
            alert("Debe introducir el NOMBRE")
            nombre.focus();return false
        }
        if (modid.value=="" && tipomercado.selectedIndex==0) {
            alert("Debe seleccionar el MERCADO")
            tipomercado.focus();return false;
        }
        if (descripcion.value=="") {
            alert("Debe introducir la DESCRIPCIÓN")
            descripcion.focus();return false
        }
        if (caracteristicas.value=="") {
            alert("Debe introducir las CARACTERÍSTICAS")
            caracteristicas.focus();return false
        }
        if (speeddown.value=="" || isNaN(speeddown.value)) {
            alert("Debe introducir la VELOCIDAD de BAJADA, solo digitos sin el simbolo 'Mb.'")
            speeddown.focus();return false
        }
        if (speedup.value=="" || isNaN(speedup.value)) {
            alert("Debe introducir la VELOCIDAD de SUBIDA, solo digitos sin el simbolo 'Mb.'")
            speedup.focus();return false
        }
        if (modid.value=="" && tipoip.selectedIndex==0) {
            alert("Debe seleccionar el TIPO de IP")
            tipoip.focus();return false;
        }
        if (modid.value=="" && tipoequipo.selectedIndex==0) {
            alert("Debe seleccionar el TIPO de EQUIPO")
            tipoequipo.focus();return false;
        }
        if (modid.value=="" && tipopuerto.selectedIndex==0) {
            alert("Debe seleccionar el TIPO de PUERTO que utiliza el equipo")
            tipopuerto.focus();return false;
        }
        if (contratominimo.value=="") {
            alert("Debe introducir la DURACIÓN MÍNIMA DEL CONTRATO o poner cero en caso de que no haya")
            contratominimo.focus();return false;
        }
        if (cuotamensual.value=="" || cuotamensual.value=="0") {
            alert("Debe introducir la CUOTA MENSUAL")
            cuotamensual.focus();return false;
        }
        if (cuotaalta.value=="") {
            alert("Debe introducir la CUOTA DE ALTA o poner cero en caso de que no haya")
            cuotaalta.focus();return false;
        }
        if (cuotainstalacion.value=="") {
            alert("Debe introducir la CUOTA DE INSTALACIÓN o poner cero en caso de que no haya")
            cuotainstalacion.focus();return false;
        }
        if (cuotacompraequipo.value=="") {
            alert("Debe introducir la CUOTA COMPRA EQUIPO o poner cero en caso de que no haya")
            cuotacompraequipo.focus();return false;
        }
        if (cuotaalquilerequipo.value=="") {
            alert("Debe introducir la CUOTA ALQUILER EQUIPO o poner cero en caso de que no haya")
            cuotaalquilerequipo.focus();return false;
        }
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

//foros

function CodigoForo(accion) {
    with(document.forms.EditPost) {
        switch(accion) {
            case "url":
                if(Url=prompt("Introduce la URL que quieres enlazar", "http://")) {
                    if(Titulo=prompt("Ahora escribe el TITULO de la pagina que estás enlazando", "")) {
                        mensaje.value += "[URL="+Url+"]"+Titulo+"[/URL] "
                    } else return
                } else return
                break;
            case "email":
                Email = "";
                do {
                    if(Email=prompt("Introduce la dirección del EMAIL que quieres enlazar", Email)) {
                        if(ValidaMail(Email)) {
                            mensaje.value += "[EMAIL]"+Email+"[/EMAIL] "
                            EmailOK = true
                        } else {
                            alert("El email '"+Email+"' no puede enlazarse porque no es correcto")
                            EmailOK = false;
                        }
                    } else return
                } while(!EmailOK)
                break;
            case "negrita":
                if(Texto=prompt("Introduce el TEXTO que quieres que aparezca en negrita", "")) {
                    mensaje.value += "[B]"+Texto+"[/B] "
                } else return
                break;
            case "cursiva":
                if(Texto=prompt("Introduce el TEXTO que quieres que aparezca en cursiva", "")) {
                    mensaje.value += "[I]"+Texto+"[/I] "
                } else return
                break;
            case "imagen":
                if(Imagen=prompt("Introduce la URL completa de la imagen que quieres mostrar", "http://")) {
                    mensaje.value += "\n[IMG]"+Imagen+"[/IMG] "
                } else return
                break;
            case "quote":
                mensaje.value += "\n[QUOTE]"+Quote+"[/QUOTE]"
                break;
            case "bloquecodigo":
                mensaje.value += "\n[CODE]  [/CODE]"
                break;
            case "lista":
                mensaje.value += "\n[LIST]\n[*] pon_aqui_un_elemento\n[*] pon_aqui_otro\n[*] etc...\n[/LIST]"
                break;
        }
        mensaje.focus()
    }
}

function ValidaEditPost() {
    with(document.forms.EditPost) {
        if (asunto.value=="") {
            alert("Debes introducir el ASUNTO")
            asunto.focus();return false
        }
        if (mensaje.value=="") {
            alert("Debes introducir el MENSAJE")
            mensaje.focus();return false
        }
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

//analisis

function CargaModalidades() {
    with(document.forms.EditAnalisisIsp) {
        tam = modalidad.options.length
        for(Cnt=0;Cnt<tam;Cnt++) {
            modalidad.remove(0)
        }
        NewOption = document.createElement("OPTION")
        NewOption.value="1"
        NewOption.text="(selecciona)"
        modalidad.add(NewOption)
        for(Cnt=0;Cnt<Modalidades[ispid.selectedIndex-1].length;Cnt++) {

            NewOption = document.createElement("OPTION")
            DtMod = Modalidades[ispid.selectedIndex-1][Cnt].split(":");
            NewOption.value=DtMod[0]
            NewOption.text=DtMod[1]
            modalidad.add(NewOption)
        }
        modalidad.selectedIndex=0
    }
}

function ValidaEditAnalisisIsp() {
    with(document.forms.EditAnalisisIsp) {
        if (ispid.selectedIndex==0) {
            alert("Debes elegir el ISP")
            ispid.focus();return false
        }
        if (modalidad.selectedIndex==0) {
            alert("Debes elegir la MODALIDAD")
            modalidad.focus();return false
        }
        if (cuotamensual.value=="" || isNaN(cuotamensual.value.replace(/,/, "."))) {
            alert("Debes introducir el COSTE TOTAL MENSUAL, solo digitos sin el simbolo '€'")
            cuotamensual.focus();return false
        }
        if (cuotainstalacion.value=="" || isNaN(cuotainstalacion.value.replace(/,/, "."))) {
            alert("Debes introducir el COSTE TOTAL MENSUAL, solo digitos sin el simbolo '€'")
            cuotainstalacion.focus();return false
        }
        if (tiempoinstalacion.value=="" || isNaN(tiempoinstalacion.value)) {
            alert("Debes introducir el TIEMPO DE INSTALACIÓN")
            tiempoinstalacion.focus();return false
        }
        TodoOK = false;for(Cnt=0;Cnt<uso.length;Cnt++) if(uso[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar el USO al que se destina la conexión");return false}
        if (tipoequipo.selectedIndex==0) {
            alert("Debes elegir el EQUIPO de ACCESO")
            tipoequipo.focus();return false
        }
        if (marcamodelo.value=="") {
            alert("Debes introducir la MARCA y MODELO de tu equipo de acceso")
            marcamodelo.focus();return false
        }
        if (tipopuerto.selectedIndex==0) {
            alert("Debes elegir el PUERTO UTILIZADO")
            tipopuerto.focus();return false
        }
        if (tipoip.selectedIndex==0) {
            alert("Debes elegir el TIPO de IP")
            tipoip.focus();return false
        }
        TodoOK = false;for(Cnt=0;Cnt<puntA.length;Cnt++) if(puntA[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para INSTALACIÓN");return false}
        TodoOK = false;for(Cnt=0;Cnt<puntB.length;Cnt++) if(puntB[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para MODEM/ROUTER");return false}
        TodoOK = false;for(Cnt=0;Cnt<puntC.length;Cnt++) if(puntC[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para SERVICIO TÉCNICO");return false}
        TodoOK = false;for(Cnt=0;Cnt<puntD.length;Cnt++) if(puntD[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para VELOCIDAD PROMETIDA/REAL");return false}
        TodoOK = false;for(Cnt=0;Cnt<puntE.length;Cnt++) if(puntE[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para PING JUEGOS ONLINE");return false}
        TodoOK = false;for(Cnt=0;Cnt<puntF.length;Cnt++) if(puntF[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para ESTABILIDAD CONEXIÓN");return false}
        TodoOK = false;for(Cnt=0;Cnt<puntG.length;Cnt++) if(puntG[Cnt].checked) TodoOK=true;
        if (!TodoOK) {alert("Debes seleccionar al menos una valoración para PRECIO");return false}
        if (lomejor.value=="") {
            alert("Debes introducir LO MEJOR de tu conexión")
            lomejor.focus();return false
        }
        if (lopeor.value=="") {
            alert("Debes introducir LO PEOR de tu conexión")
            lopeor.focus();return false
        }
        if (texto.value=="") {
            alert("Debes introducir el ANÁLISIS")
            texto.focus();return false
        }
        btGuardar.value = "Enviando ..."
        btGuardar.disabled = true
        return true
    }
}

function ValidaBuscaAnalisisIsp() {
    with(document.forms.BuscaAnalisisIsp) {
        if (ispid.selectedIndex==0 && provid.selectedIndex==0 && fecha.selectedIndex==0) {
            alert("Debes seleccionar al menos un criterio de búsqueda")
            ispid.focus();return false
        }
        return true
    }
}

//toolsdns.php

function ValidaEditQueryDns() {
    with(document.forms.EditQueryDns) {
        if (!origen[0].checked && !origen[1].checked) {
            alert("No ha seleccionado el ORIGEN")
            return false
        }
        if (dns.value=="") {
            alert("No ha introducido la IP del servidor DNS")
            dns.focus(); return false
        }
        IpOK = true
        CompIp = dns.value.split(".")
        if (CompIp.length==4) {
            for (Cnt=0;Cnt<4;Cnt++) {
                if (CompIp[Cnt]>255 || CompIp[Cnt]<0 || !CompIp[Cnt].match("^[0-9]{1,3}$"))
                    IpOK = false
            }
        } else
            IpOK = false
        if (!IpOK) {
            alert("La IP del servidor DNS introducida no es válida")
            dns.focus(); return false
        }
        btEnviar.value = "Enviando petición..."
        btEnviar.disabled = true
        return true
    }
}

//validacion de emails

// Esta funcion no es mia y desconozco su autor (y tb se puede optimizar bastante)
function ValidaMail(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) return false
    var user=matchArray[1]
    var domain=matchArray[2]
    if (user.match(userPat)==null) return false
    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null) {
        for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) return false
        }
    }
    var domainArray=domain.match(domainPat)
    if (domainArray==null) 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) return false
    if (len<2) return false
    return true;
}