/*
 * JavaScript necesario para añadir hoteles a favoritos via AJAX
 */

/*
 * Crear un objeto XMLHttpRequest
 */
function crearXHR() {
    var r;
    if (window.XMLHttpRequest) { // No es IE o es IE moderno
        r = new XMLHttpRequest();
    } else { // Es una versión antigua de IE
        r = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return(r);
}


/*
 * Agregar un hotel a favoritos
 */
function agregarH(idHotel, idUsuario) {

    // De momento no uso los parámetros
    if (isFinite(idHotel)==true && isFinite(idUsuario)==true)  {
        objXHR = crearXHR();
        if (objXHR) {
            // TODO Puede que la siguiente URL no sea oportuna.
            objXHR.open('GET','/public/fav/' + idHotel + '/' + idUsuario, true);
            objXHR.onreadystatechange = function() {
                if (objXHR.readyState == 4) {
                    alert(objXHR.responseText);
                    var cont = document.getElementById('bfav');
                    cont.innerHTML=objXHR.responseText;
                    cont.onclick=null;
                }
            };
            objXHR.send(null);
        }
    }
}

/*
 * Mostrar formulario recomendar a un amigo
 */
function mostrarFR() {
    cont = document.getElementById('tellfriend');
    desc = document.getElementById('text_descripcio');
    var ev = cont.onclick;
    cont.onclick=null;
    cont.innerHTML='<hr/>Para recomendar este hotel a un amigo, por favor rellena este formulario.<br/>\
        Tu nombre:<br/>\
        <input id=\"tellMyName\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
        Tu email:<br/>\
        <input id=\"tellMyEmail\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
		Nombre del amigo:<br/>\
        <input id=\"tellMyName2\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
        Email del amigo:<br/>\
        <input id=\"tellEmail\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
        Mensaje:<br/>\
        <textarea id=\"tellBody\" cols=\"40\" rows=\"5\">' +
    "Te recomiendo el siguiente hotel.\n" +
    "Está en: " + encodeURI(location.href) +
    "\n\nCaracterísticas:\n" + desc.innerHTML +
    '</textarea><br/>\
        <input type=\"button\" value=\"Enviar\" onclick=\"enviarFR();\"/><hr/>';
}

/*
 * Enviar email recomendando el hotel
 */
function enviarFR() {
    myName=document.getElementById('tellMyName').value;
    myEmail=document.getElementById('tellMyEmail').value;
    email=document.getElementById('tellEmail').value;
    body=document.getElementById('tellBody').value;
    if (email=="" || myEmail=="") {
        alert("Falta una dirección de email.");
    } else if (myName=="") {
        alert("Falta su nombre.");
    } else if (body=="") {
        alert("Falta el contenido de la recomendación.");
    } else {
        objXHR = crearXHR();
        if (objXHR) {
            // TODO Puede que la siguiente URL no sea oportuna.
            objXHR.open('POST','/public/fav/email', true);
            objXHR.onreadystatechange = function() {
                if (objXHR.readyState == 4) {
                    cont = document.getElementById('tellfriend');
                    cont.innerHTML='¡Enviado!';
                }
            };
            parametros='email='+escape(email)+'&myemail='+escape(myEmail)+'&myname='+escape(myName)+'&body='+body;
            objXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            objXHR.setRequestHeader("Content-length", parametros.length);
            objXHR.setRequestHeader("Connection", "close");
            objXHR.send(parametros);
        }
    }
}

/*
 * Mostrar formulario recomendar a un amigo en inglés
 */
function mostrarFRen() {
    cont = document.getElementById('tellfriend');
    desc = document.getElementById('text_descripcio');
    var ev = cont.onclick;
    cont.onclick=null;
    cont.innerHTML='<hr/> To recommed this hotel to one of your friends, please complete the form below:<br/>\
        Your name:<br/>\
        <input id=\"tellMyName\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
        Your e-mail:<br/>\
        <input id=\"tellMyEmail\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
		Name of your friend:<br/>\
        <input id=\"tellMyName2\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
        E-mail of your friend:<br/>\
        <input id=\"tellEmail\" type=\"text\" maxlength=\"80\" size=\"30\"/><br/>\
        Message:<br/>\
        <textarea id=\"tellBody\" cols=\"40\" rows=\"5\">' +
    "I recommend you this hotel.\n" +
    "It's on: " + encodeURI(location.href) +
    "\n\nFeatures:\n" + desc.innerHTML +
    '</textarea><br/>\
        <input type=\"button\" value=\"Send\" onclick=\"enviarFRen();\"/><hr/>';
}

/*
 * Enviar email recomendando el hotel
 */
/*
 * Enviar email recomendando el hotel en inglés
 */
function enviarFRen() {
    myName=document.getElementById('tellMyName').value;
    myEmail=document.getElementById('tellMyEmail').value;
    email=document.getElementById('tellEmail').value;
    body=document.getElementById('tellBody').value;
    if (email=="" || myEmail=="") {
        alert("Missing email address.");
    } else if (myName=="") {
        alert("Your name is missing.");
    } else if (body=="") {
        alert("Body message is missing.");
    } else {
        objXHR = crearXHR();
        if (objXHR) {
            // TODO Puede que la siguiente URL no sea oportuna.
            objXHR.open('POST','/public/fav/email', true);
            objXHR.onreadystatechange = function() {
                if (objXHR.readyState == 4) {
                    cont = document.getElementById('tellfriend');
                    cont.innerHTML='Sent!';
                }
            };
            parametros='email='+escape(email)+'&myemail='+escape(myEmail)+'&myname='+escape(myName)+'&body='+body;
            objXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            objXHR.setRequestHeader("Content-length", parametros.length);
            objXHR.setRequestHeader("Connection", "close");
            objXHR.send(parametros);
        }
    }
}