function ponerToolTip(elemento, texto){
    var xOffset = 10;
    var yOffset = 20;

    elemento
        .hover(
            function(e){
                $("body").append("<div id=\"tooltip\">"+ texto +"</div>");
                $("#tooltip")
                    .css("top",(e.pageY - xOffset) + "px")
                    .css("left",(e.pageX + yOffset) + "px")
                    .fadeIn("fast");
            },
            function(){
		$("#tooltip").remove();
            }
        )
        .mousemove(function(e){
            $("#tooltip")
                .css("top",(e.pageY - xOffset) + "px")
                .css("left",(e.pageX + yOffset) + "px");
            }
        );
}

function esEmailValido(direccion){
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/);
    return pattern.test(direccion);
}

function administrarToolTips(){
    $("a").each(function(){
        //Salteo los links del widget de twitter
        if ($(this).parents("#twtr-widget-1").length > 0)
            return true;

        if ($(this).parents("#ulCriterios").length > 0)
            return true;

        //Salteo los de la cartelera
        if ($(this).parents("#ulPeliculasEnCartel").length > 0)
            return true;

        var texto;

        switch($(this).attr("id")){
            case "link-home":
                texto = "Ir a Página Principal";
                break;
            case "link-encartel":
                texto = "Ver la Cartelera Completa";
                break;
            case "link-proximosestrenos":
                texto = "Mirá las películas que pronto van a estrenarse";
                break;
            case "link-anteriores":
                texto = "Películas que ya dejaron la cartelera";
                break;
            case "link-dvd":
                texto = "Películas que pasaron directamente a DVD";
                break;
            case "link-blog":
                texto = "El blog de variedades de TodasLasCríticas";
                break;
            case "link-quienessomos":
                texto = "Sobre quienes hacemos TodasLasCríticas";
                break;
            case "link-contacto":
                texto = "Contactanos";
                break;
            case "link-ultracine":
                texto = "Ultracine";
                break;
            case "link-twitter":
                texto = "twitter.com/TLCriticas";
                break;
            default:
                var link_imagen = $(this).find("#pelicula_recomendada, .link-imagen");

                if (link_imagen.length==1)
                    texto = link_imagen.attr("alt");
                else
                    texto = $(this).text();
                break;
        }

        ponerToolTip($(this), texto);
    });
}

function administrarLinksExternos(){
    $("a[rel='external']").attr({
        "target": "_blank",
        "rel": "noreferrer"
    });
}

function interactividadGaleria(){
    $("ul.galeria > li")
        .mousedown(function(){
            $(this).css({
                borderStyle : "inset",
                margin: "2px"
            });
        })
        .mouseup(function(){
            $(this).css({
                borderStyle : "outset",
                margin: "2px"
            });
        })
        .hover(
            function(){
                $(this).css({
                    borderStyle : "outset",
                    margin: "2px"
                });
            },
            function(){
                $(this).css({
                    borderStyle : "none",
                    margin: "5px"
                });
            }
        );
}

function administrarDatosContacto(){
    $("#btnContactoEnviar").click(function(){
        $("#txtNombre").val($.trim($("#txtNombre").val()));
        $("#txtEmail").val($.trim($("#txtEmail").val()));
        $("#txtAsunto").val($.trim($("#txtAsunto").val()));
        $("#txtConsulta").val($.trim($("#txtConsulta").val()));

        if ($("#txtNombre").val()==""){
            alert("Ingresá tu Nombre.");
            $("#txtNombre").focus();
            return false;
        }

        if ($("#txtEmail").val()==""){
            alert("Ingresá tu dirección de e-mail.");
            $("#txtEmail").focus();
            return false;
        }

        if (!esEmailValido($("#txtEmail").val())){
            alert("Ingresá una dirección de e-mail válida.");
            $("#txtEmail").focus();
            return false;
        }

        if ($("#txtAsunto").val()==""){
            alert("Ingresá el Asunto.");
            $("#txtAsunto").focus();
            return false;
        }

        if ($("#txtConsulta").val()==""){
            alert("Ingresá tu Consulta.");
            $("#txtConsulta").focus();
            return false;
        }

        $("form").submit();
    });
}

function administrarDatosVotacion(){
    $("#btnVotacionEnviar").click(function(){
        var i;

        for (i=1; i<=24; i++){
            if ($("input[name='optCategoria-" + i +"']:radio:checked").length==0){
                alert("Seleccioná uno de los nominados de la categoría " + $("input[name='optCategoria-" + i +"']:radio:first").parent().parent().parent().attr("title"));
                break;
            }
        }

        if (i<=24){
            $("input[name='optCategoria-" + i +"']:radio:first").focus();
            return false;
        }

        $("#txtNombre").val($.trim($("#txtNombre").val()));
        $("#txtEmail").val($.trim($("#txtEmail").val()));
        $("#txtOrigen").val($.trim($("#txtOrigen").val()));

        if ($("#txtNombre").val()==""){
            alert("Ingresá tu Nombre.");
            $("#txtNombre").focus();
            return false;
        }

        if ($("#txtEmail").val()==""){
            alert("Ingresá tu dirección de e-mail.");
            $("#txtEmail").focus();
            return false;
        }

        if (!esEmailValido($("#txtEmail").val())){
            alert("Ingresá una dirección de e-mail válida.");
            $("#txtEmail").focus();
            return false;
        }

        if ($("#txtOrigen").val()==""){
            alert("Ingresá tu Origen.");
            $("#txtOrigen").focus();
            return false;
        }

        $("form").submit();
    });
}

function administrarDatosSuscripcion(){
     $("#txtMailSuscripcion").focus(function(){
         this.select();
     });

    $("#btnSuscripcionEnviar").click(function(){
        $("#txtMailSuscripcion").val($.trim($("#txtMailSuscripcion").val()));

        if ($("#txtMailSuscripcion").val()==""){
            $("#mensajeSuscripcion").text("Ingresá tu dirección de e-mail.");
            $("#txtMailSuscripcion").focus();
            return false;
        }

        if (!esEmailValido($("#txtMailSuscripcion").val())){
            $("#mensajeSuscripcion").text("Ingresá una dirección de e-mail válida.");
            $("#txtMailSuscripcion").focus();
            return false;
        }

        $("#mensajeSuscripcion").text("Enviando datos...");

        $.ajax({
            data: {email : $("#txtMailSuscripcion").val()},
            dataType: "json",
            error : function(){
                var mensaje = "Ocurrió un error al intentar suscribir el e-mail ";
                mensaje += $("#txtMailSuscripcion").val() + "\n\n";
                mensaje += "Por favor, intentá nuevamente.";

                $("#mensajeSuscripcion").text(mensaje);
            },
            success : function(datos){
                var mensaje;

                switch(datos.codigo){
                    case 0:
                        mensaje = "Listo! Verificá tu correo ";
                        mensaje += $("#txtMailSuscripcion").val();
                        mensaje += " (INCLUYENDO LA CARPETA DE NO DESEADOS!) para confirmar la suscripción.";
                        break;
                    default:
                        mensaje = datos.mensaje;
                        break;
                }

                $("#mensajeSuscripcion").text(mensaje);
            },
            type : "POST",
            url : "suscribir"
        });
    });
}

$(document).ready(function(){
    administrarToolTips();
    administrarLinksExternos();
    interactividadGaleria();
    administrarDatosContacto();
    administrarDatosVotacion();
    administrarDatosSuscripcion();
});
