﻿// JScript File
var request;
var content;

function asyncRequest(url) 
{        
    request = null;
    
    // Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        request=new XMLHttpRequest()
    }
    // IE
    else if (window.ActiveXObject)
    {
        request=new ActiveXObject("Microsoft.XMLHTTP")
    }
    if (request!=null)
    {                               
        request.onreadystatechange=asyncResponse
        request.open("GET", url, true)
        request.send(null)        
    }
    else
    {
        alert("No se puede hacer la petición.")
    }
}

function asyncResponse()
{    
    var destination;

    if (request.readyState==4)
    {    
        destination = document.getElementById("contenido_SM");                       
        if (request.status==200)
        {                         
            //window.alert(manageResponse(request.responseText));                       
            destination.innerHTML = manageResponse(request.responseText);
        }
        else
        {
            destination.innerHTML = request.status;
        }
    }
}

function manageResponse(strResponse) 
{
    var strManagedResponse = strResponse;
    var index, indexend;
    
    strManagedResponse = strManagedResponse.replace("</html>", "");
    strManagedResponse = strManagedResponse.replace("</body>", "");
    strManagedResponse = strManagedResponse.replace("</form>", "");
    
    index = strManagedResponse.indexOf("<html");
    indexend = strManagedResponse.indexOf(">", index + 1);    
    strManagedResponse = strManagedResponse.replace(strManagedResponse.substr(index, indexend-index+1), "");
    index = strManagedResponse.indexOf("<head");
    indexend = strManagedResponse.indexOf("</head>", index + 7);
    strManagedResponse = strManagedResponse.replace(strManagedResponse.substr(index, indexend-index+7), "");
    index = strManagedResponse.indexOf("<body");
    indexend = strManagedResponse.indexOf(">", index + 1);
    strManagedResponse = strManagedResponse.replace(strManagedResponse.substr(index, indexend-index+1), "");
    index = strManagedResponse.indexOf("<form");
    indexend = strManagedResponse.indexOf(">", index + 1);
    strManagedResponse = strManagedResponse.replace(strManagedResponse.substr(index, indexend-index+1), "");              
    
    return strManagedResponse;
}

function validarEnvioContacto() 
{
    var chkEmpresa = document.getElementById("chkEmpresa").value;
    var chkParticular = document.getElementById("chkParticular").value;           
    var txtNombre = document.getElementById("txtNombre").value;
    var txtDireccion = document.getElementById("txtDireccion").value;
    var txtPoblacion = document.getElementById("txtPoblacion").value;
    var txtProvincia = document.getElementById("txtProvincia").value;
    var txtCP = document.getElementById("txtCP").value;
    var txtTelefono1 = document.getElementById("txtTelefono1").value;
    var txtTelefono2 = document.getElementById("txtTelefono2").value;
    var txtEmail = document.getElementById("txtEmail").value;        
    var txtMensaje = document.getElementById("txtMensaje").value; 
    
    var strTipo = "";
    if (chkEmpresa != "") 
    {
        strTipo = "tipo=EMPRESA&";    
    }
    else 
    {
        strTipo = "tipo=PARTICULAR&";
    }
    
    if (txtNombre != "" && txtTelefono1 != "" && txtEmail != "") 
    {
        if (!isNaN(txtTelefono1))
        {    
            if (validarEmail(txtEmail)) {                            
                strQuery = strTipo +
                    "nombre=" + txtNombre + 
                    "&direccion=" + txtDireccion +
                    "&poblacion=" + txtPoblacion +
                    "&provincia=" + txtProvincia +
                    "&cp=" + txtCP +
                    "&telefono1=" + txtTelefono1 +
                    "&telefono2=" + txtTelefono2 + 
                    "&email=" + txtEmail +
                    "&mensaje=" + txtMensaje;
            
                //asyncRequest('contacto_nosotros.aspx?email=true');
                if (chkEmpresa != "") 
                {
                    asyncRequest('contacto_nosotros.aspx?' + strQuery);
                } 
                else 
                {
                    asyncRequest('contacto_nosotros.aspx?' + strQuery);
                }
            }
            else 
            {
                window.alert("La direccion de e-mail no es correcta.");
            }
        }
        else 
        {
           window.alert("El número de teléfono no es correcto.");
        }
    } 
    else 
    {
        window.alert("Rellene los campos marcados como obligatorios!");
    }
}

function validarEmail(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 inválida (comprobar @ and .'s)")
        return false
    }
    var user=matchArray[1]
    var domain=matchArray[2]
    
    if (user.match(userPat)==null) 
    {    
        //alert("El usuario no parece ser válido.")
        return false
    }
    
    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null) {       
        for (var i=1;i<=4;i++) 
        {
            if (IPArray[i]>255) 
            {
                //alert("IP de destino incorrecta.")
                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("La dirección debe terminar con un dominio de 3 letras, o un nombre de país de dos letras.")
        return false
    }

    // Make sure there's a host name preceding the domain.
    if (len<2) 
    {
        //var errStr="¡A esta dirección le falta un nombre de host!"
        //alert(errStr)
        return false
    }
    
    return true;
}