﻿var judgedID = 0;
var objDenounce;
var transversalSelected = "dvSugestoes";
var visibleObj = "";
var videoTitle = "";
var videoID = "";
var videoSize = 388;
var doingTransition = false;
var userTabSelected = "";
var isCloned = false;
var selectedVideoPage = 1;
var voting = false;
var questionID = 0;

function changeSize(obj, size) {
    try {
        $get(obj).style.fontSize = (parseInt($get(obj).style.fontSize) + size) + "px";
        try {
            $get(obj).style.lineHeight = (parseInt($get(obj).style.lineHeight) + size + 100) + "px";
        } catch (e) { }
    } catch (e) {
        //alert(e);
    }
}

function setComment(idNot, Origin) {
    $get("msgError").innerHTML = "";
    var arrFields = new Array(4);
    arrFields[0] = $get("titulo").value;
    arrFields[1] = $get("comentario").value;
    arrFields[2] = $get("nome").value;
    arrFields[3] = $get("localidade").value;
    if (validateEmail($get("email").value.toLowerCase())) {
        if (checkFields(arrFields)) {
            Publico.WS.Ipsilon.SetComment(idNot,
            Origin,
            $get("titulo").value,
            $get("comentario").value,
            $get("nome").value,
            $get("email").value.toLowerCase(),
            $get("localidade").value,
            $get("anonimo").checked,
            onSuccessComment,
            onErrorComment);
        } else
            $get("msgError").innerHTML = "Todos os campos são de preenchimento obrigatório!";
    }
}

function onSuccessComment(result) {
    if (result) {
        $get("msgError").innerHTML = "";
        new Effect.SlideUp($get("layerComents"), { duration: 1 });
        setCounter(videoID, 'IPSILON', 'COMENTADO', $('categoryName').value, videoTitle);
    } else {
        $get("msgError").innerHTML = "Não foi possível guardar seu comentário por favor tente de novo.";
    }
}

function onErrorComment(result) {
    $get("msgError").innerHTML = "Não foi possível efectuar o seu pedido!<br/>Por favor veririque os seus dados e tente de novo.";
}

function judgeComment(idComment, good, bad) {
    judgedID = idComment;
    Publico.WS.Ipsilon.UpdateCritic(idComment, good, bad, onSucessJudge, onErrorJudge);
}
function onSucessJudge(result) {
    if (result) {
        $get("judged" + judgedID).innerHTML = "Obrigado!";
    } else {

    }
}

function onErrorJudge(err) {
    //alert(err.get_message());
}

function denunciaComentario(commentID, obj) {
    objDenounce = obj;
    Publico.WS.Ipsilon.denunciaComentario(commentID, onSuccessDenunciar, onErrorDenunciar);
}
function onSuccessDenunciar(result) {
    objDenounce.innerHTML = "";
    objDenounce = null;
}
function onErrorDenunciar(err) {
    //alert(err.get_message());
}

function sendToFriend(aid) {
    $get("msgError").innerHTML = "";
    var arrFields = new Array(3);
    arrFields[0] = $get('send_myName').value;
    arrFields[1] = $get('send_yourName').value;
    arrFields[2] = $get('send_comentario').value;

    if (validateEmail($get('send_myMail').value) && validateEmail($get('send_yourEmail').value)) {
        if (checkFields(arrFields)) {
            Publico.WS.Ipsilon.sendMailToFriend(aid,
                document.location.href,
                $get('send_myName').value,
                $get('send_myMail').value,
                $get('send_yourName').value,
                $get('send_yourEmail').value,
                $get('send_comentario').value,
                onSuccessSendToFriend,
                onErrorSendToFriend);
        } else
            $get("msgError").innerHTML = "Todos os campos são de preenchimento obrigatório!";
    }
}

function onSuccessSendToFriend(result) {
    if (result) {
        Modalbox.hide();
    } else {
        $get("msgError").innerHTML = "Não foi possível enviar, por favor tente de novo!"
    }
}

function onErrorSendToFriend(err) {
    $get("msgError").innerHTML = "Não foi possível efectuar o seu pedido!";
}

// JavaScript Document

function popupSearch() {
    var buttonSearch = document.getElementById("buttonComent").id;
    var boxSearchPopup = document.getElementById("layerComents");
    boxSearchPopup.style.display = 'block';
}

function popupViewComments() {
    var buttonSearch = document.getElementById("buttonComent").id;
    var boxSearchPopup = document.getElementById("layerViewComents");
    boxSearchPopup.style.display = 'block';
}

function getTopUsers(tipo) {
    $get("dvNossos").className = '';
    $get("dvVossos").className = 'on';
    //$get("dvUserCat").style.display = 'block';

    if (userTabSelected != "" && tipo == "") tipo = userTabSelected;
    if (tipo != "") {
        if (userTabSelected != "")
            $get(userTabSelected).className = "";

        $get(tipo).className = "on";
        userTabSelected = tipo;
        return eval(userTabSelected + "_click()");
    } else {
        userTabSelected = "dvVossosArtigos";
        return eval("dvVossosArtigos_click()");
    }
}

function dvVossosArtigos_click() {
    getUserTops("artigos");
}
function dvVossosCriticas_click() {
    getUserTops("criticas");
}
function dvVossosVotos_click() {
    getUserTops("votados");
}
function dvVossosLidos_click() {
    getUserTops("lido");
}
function dvVossosComentados_click() {
    getUserTops("comentado");
}

function getUserTops(tipo) {
    Publico.WS.Ipsilon.getTop("IPSILON", tipo,
            onSuccessTops,
            onErrorTops);
}

function getTopCritics() {
    $get("dvNossos").className = 'on';
    $get("dvVossos").className = '';
    $get("dvUserCat").style.display = 'none';
    getCriticsChoice();
}

function getCriticsChoice() {
    Publico.WS.Ipsilon.getCriticsChoice(
        onSuccessTops,
        onErrorTops);
}

function onSuccessTops(result) {
    try {
        if (result.length > 0) {
            $get("articleList").innerHTML = "";
            for (i = 0; i < result.length; i++)
                $get("articleList").innerHTML += "<li><a href=\"" + result[i].url + "\"><span>" + result[i].categoria + "</span><br/>" + result[i].titulo + "</a></li>";
        }
    } catch (e) {
        $get("articleList").innerHTML = "";
    }
}

function onErrorTops(err) {
    $get("dvUserCat").innerHTML = "Não foi possível efectuar o seu pedido!";
}

function getSugestao(id) {
    Publico.WS.Ipsilon.getSugestoes(id,
        onSuccessSugestao,
        onErrorSugestao);
}

function onSuccessSugestao(results) {
    $get("Sugestoes").innerHTML = '';
    var sHTML = "";
    for (i = 0; i < results.length; i++) {
        if (i < 3) {
            var nEstrelas = 5;
            sHTML += "<div class=\"blockCritic\">"
            if (results[i].img != "") sHTML += "<div class=\"imgBlockCritic\"><img id=\"img\" src=\"" + results[i].img + "\" alt=\"\" /></div>"
            sHTML += "<div class=\"infoBlockCritic\"><div class=\"typeContent\">" + results[i].categoria + "</div>"
            sHTML += "<h1><a href=\"" + results[i].url + "\">" + results[i].titulo + "</a></h1>"
            sHTML += "<div class=\"summaryContent\">" + results[i].lead + " </div>"
            sHTML += "<div class=\"person\"></div>"
            if (results.pontuacao > 0) {
                sHTML += "<div class=\"blockVotacao\" >"
                for (j = 1; j < results.pontuacao; j++) {
                    sHTML += "<img src=\"/images/icon_votar_on.gif\" alt=\"\" />"
                    nEstrelas -= 1;
                }
                if (nEstrelas < 5) {
                    for (j = 1; j < nEstrelas; j++) {
                        sHTML += "<img src=\"/images/icon_votar_off.gif\" alt=\"\" />"
                    }
                } else {
                    sHTML += "<img src=\"/images/icon_bolinha.gif\" alt=\"\" />"
                }
                sHTML += "</div>"
            }
            sHTML += "</div>"
            sHTML += "<div class=\"clear\"></div>"
            sHTML += "<div class=\"contentComents\">"
            sHTML += "<div class=\"numberComents\"> <img src=\"images/icon_comentario.gif\" alt=\"comentario\" /><a href=\"" + results[i].url + "#Comentarios\"> " + results[i].comentarios + " comentários</a></div>"
            sHTML += "<div class=\"moreComents\"><a href=\"" + results[i].url + "#Comentarios\"><img src=\"images/icon_seta.gif\" alt=\"mais comentarios\" /></a></div></div></div>"
        }
    }
    $get("Sugestoes").innerHTML += sHTML + "<div class=\"clear\"></div>";
}
function onErrorSugestao(err) {
    //alert(err.get_message());
}

function getSection(tipo) {
    $get("Sugestoes").innerHTML = '';
    $get(transversalSelected).className = "";
    switch (tipo) {
        case 1:
            transversalSelected = "dvSugestoes";
            getSugestao($get('categoriasSugestoes').value);
            break;
        case 2:
            transversalSelected = "dvTNossos";
            Publico.WS.Ipsilon.getCriticsChoice(onSuccessSugestao, onErrorSugestao);
            break;
        case 3:
            transversalSelected = "dvTVotados";
            break;
        case 4:
            transversalSelected = "dvTLancamentos";
            break;
    }
    $get(transversalSelected).className = "on";
}

function setImageInContainer() {
    var firstElement = $('videoImg');
    try {
        $("imgPlayer").clonePosition($('videoImg'));
        if (parseInt($("imgPlayer").style.left) > 0) {
            $("imgPlayer").style.left = (parseInt($("imgPlayer").style.left) + ($("videoImg").width / 2) - 20) + "px";
            $("imgPlayer").style.top = (parseInt($("imgPlayer").style.top) + ($("videoImg").height / 2) - 20) + "px"; ;
        }
    } catch (e) {
        //setTimeout('setImageInContainer()', 1000);
        //var arr = firstElement.cumulativeOffset();
        //$"imgPlayer").style.left = (arr[0] + ($("videoImg").width / 2) - 20) + "px";
        //$("imgPlayer").style.top = (arr[1] + ($("videoImg").height / 2) - 20) + "px"; ;    
    }

    $('videoImg').style.cursor = 'pointer';
    if (parseInt($("imgPlayer").style.left) > 0)
        $("imgPlayer").style.display = 'block';
    else
        $("imgPlayer").style.display = 'none';
    $("imgPlayer").onclick = function() {
        showVideo();
    }
    $("videoImg").onclick = function() {
        showVideo();
    }
    setTimeout('setImageInContainer()', 100);
}

function loadVideoImage(url) {
    if ($('videoImg')) {
        var myImg = new Image();
        myImg.style.visibility = "hidden";
        myImg.onload = function() {
            $('videoImg').src = myImg.src;
            setImageInContainer();
        }
        myImg.src = url;
    }
}

function showHideDiv(obj) {
    if (!doingTransition) {
        if (visibleObj != "") {
            doingTransition = true;
            new Effect.SlideUp($(visibleObj), { duration: 1 });
            visibleObj = obj;
            setTimeout("showDiv()", 1100);
        } else {
            try {
                doingTransition = true;
                new Effect.SlideDown($(obj), { duration: 1 });
                visibleObj = obj;
                setTimeout("cnacelTransition()", 1000);
            } catch (e) {
                setTimeout("cnacelTransition()", 1000);
            }
        }
    }
}

function showDiv() {
    if (visibleObj != "") {
        try {
            new Effect.SlideDown($(visibleObj), { duration: 1 });
        } catch (e) { }
        setTimeout("cnacelTransition()", 1000);
    }
}

function cnacelTransition() {
    doingTransition = false;
}

function setValueForVideo(vid, vis, vit) {
    videoID = vid;
    videoSize = vis;
    videoTitle = vit;
    showVideo();
}

function showVideo() {
    var params = "";

    if (videoSize == 338)
        params = '|z=1&f=16';
    else
        params = '|z=1&f=4';

    if (videoID != "") {
        setCounter(videoID, 'IPSILON', 'VISTO', 'VIDEOS', videoTitle);
        myLightWindow.activateWindow({
            href: '../video/iplayer.aspx?id=' + videoID + params,
            loadingAnimation: true,
            title: videoTitle,
            width: 450,
            height: videoSize
        });
    }
}

function getCommentPage(id, page, origem) {
    window.location = "#Comentarios";
    $('listaComentarios').innerHTML = "";
    Publico.WS.Ipsilon.getComments(id, origem, page,
                onSucessListComments,
                onErrorListComments
    );
}

function onSucessListComments(results) {
    var sHTML = "";
    if (results) {
        $("commentDetails").innerHTML = results.primeiro + " a " + results.ultimo + " de um total de " + results.total;
        for (i = 0; i < results.comentarios.length; i++) {
            var comment = results.comentarios[i];
            sHTML += "<div class=\"blockComent\"><div class=\"descriptionComentWithoutImage2\"><div class=\"dateComent\"><img src=\"/images/icon_comentario.gif\" alt=\"comentario\" />" + comment.data + " - " + comment.autor + ", " + comment.localidade + "</div><div class=\"summaryComent\">" + comment.texto + "</div></div><div class=\"clear\"></div><div class=\"denounceComment\"><a style=\"cursor:pointer\" onclick=\"denunciaComentario('" + comment.id + "', this);\">Denunciar coment&aacute;rio</a></div></div>";
        }
        $('listaComentarios').innerHTML = sHTML;
    }
}
function onErrorListComments(err) {
    //alert(err.get_message());
}

function setCounter(item, origin, type, category, title) {
    if (document.location.href == "http://ipsilon.publico.pt/video/videos.aspx")
        Publico.WS.Ipsilon.setCounter(item, origin, type, category, title, document.location.href + "?id=" + item);
    else
        Publico.WS.Ipsilon.setCounter(item, origin, type, category, title, document.location.href);
}

function subscribeNewsletter(nome, email) {
    $get("msgError").innerHTML = "";
    var arrField = new Array(1);
    arrField[0] = nome;

    if (validateEmail(email)) {
        if (checkFields(arrField)) {
            Publico.WS.Ipsilon.SubscribeNewsletter(nome, email,
            onSuccessSendToFriend,
            onErrorSendToFriend);
        } else {
            $get("msgError").innerHTML = "Todos os campos são de preenchimento obrigatório!";
        }
    }
}

function contactPublico(id) {
    $get("msgError").innerHTML = "";
    var arrFields = new Array(2);
    arrFields[0] = $('senderName').value;
    arrFields[1] = $('senderTexto').value;

    if (validateEmail($('senderMail').value)) {
        if (checkFields(arrFields)) {
            Publico.WS.Ipsilon.ContactPublico(id,
            $('senderName').value,
            $('senderMail').value,
            $('assunto').options[$('assunto').selectedIndex].text,
            $('senderTexto').value,
            onSuccessSendToFriend,
            onErrorSendToFriend);
        } else
            $get("msgError").innerHTML = "Todos os campos são de preenchimento obrigatório!";
    }
}

function checkFields(arr) {
    for (i = 0; i < arr.length; i++) {
        if (arr[i].trim() == "") {
            return false;
        }
    }
    return true;
}

function validateEmail(str) {
    var rules = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (!rules.test(str)) {
        $get("msgError").innerHTML = "Email inválido";
        return false;
    }
    return true;
}

function setVote(pid) {
    if (!voting) {
        var options = document.getElementsByName("voto" + pid);
        for (i = 0; i < options.length; i++) {
            if (options[i].checked) {
                questionID = pid;
                voting = true;
                Publico.WS.Ipsilon.setVote(options[i].value,
                onSuccessVote,
                onErrorVote);
                return;
            }
        }
        alert("Por favor seleccione um opção!");
    } else {
        alert("O voto anterior ainda não foi contabilizado, por favor aguarde!");
    }
}

function onSuccessVote(result) {
    voting = false;
    if (result != "") {
        //$("imgVote" + questionID).style.display = "none";
        $("bloco" + questionID).innerHTML = "";
        $("bloco" + questionID).innerHTML = result;
    } else {
        alert("Erro, tente de novo!");
    }
}
function onErrorVote(err) {
    voting = false;
    alert(err.get_message());
    alert("Erro ao votar, por favor tente de novo!");
}

function getVideoPage(p) {
    if (!isNaN(p)) {
        $("waitingVideo").style.display = 'block';
        $("videoPage" + selectedVideoPage).className = "";
        Publico.WS.Ipsilon.getLastVideosByPage(p, onSuccessVideoPage, onErrorVideoPage);
        $("videoPage" + p).className = "on";
        selectedVideoPage = p;
    }
}

function onSuccessVideoPage(result) {
    if (result) {
        $("videoBloco").innerHTML = "";
        for (i = 0; i < result.link.length; i++) {
          $("videoBloco").innerHTML += "<div class=\"contentVideoRelated\" style=\"margin-bottom:20px\"><div class=\"imgVideo\"><img onclick=\"" + result.link[i].onclick + "\" src=\"" + result.link[i].img + "\" style=\"" + result.link[i].style + "\" /></div><div class=\"titleVideo\"><a href=\"" + result.link[i].url + "\">" + result.link[i].titulo + "</a></div><div class=\"characteristicsVideo\"><ul><li><span>" + result.link[i].lead + "</span></li></ul></div></div>"
            if (i == 4) {
                $("videoBloco").innerHTML += "<br clear=\"all\" />"
            }
        }
        $("videoBloco").innerHTML += "<div class=\"clear\"></div>"

        $("pageNumberVideo").innerHTML = "";
        if (result.firstPage > 1 && result.totalPage > 4)
            $("pageNumberVideo").innerHTML = "<a id=\"videoPage1\" style=\"cursor:pointer\" onclick=\"getVideoPage(1);\">1</a><a>.....</a>";
        for (i = result.firstPage; i < result.lastPage + 1; i++)
            $("pageNumberVideo").innerHTML += "<a class=\"" + (selectedVideoPage == i ? "on" : "") + "\" id=\"videoPage" + i + "\" style=\"cursor:pointer\" onclick=\"getVideoPage(" + i + ");\">" + i + "</a>";
        if (result.lastPage < result.totalPage)
            $("pageNumberVideo").innerHTML += "<a>.....</a><a id=\"videoPage" + result.totalPage + "\" style=\"cursor:pointer\" onclick=\"getVideoPage(" + result.totalPage + ");\">" + result.totalPage + "</a>";
    }
    $("waitingVideo").style.display = 'none';
}

function onErrorVideoPage(err) {
    alert(err.get_message());
}

function getItemPage(page) {
    var cid = $("oArticlesID").value;
    $("waiting").style.display = 'block';
    $("videoPage" + selectedVideoPage).className = "";
    Publico.WS.Ipsilon.getItemsByChannel(cid, page, onSuccessIemPage, onErrorItemPage);
    $("videoPage" + page).className = "on";
    selectedVideoPage = page;
}

function onSuccessIemPage(result) {
    if (result) {
        $("itemBlock").innerHTML = "";
        for (i = 0; i < result.link.length; i++) {
            $("itemBlock").innerHTML += "<li><a href=\"/" + $("oLink").value + result.link[i].url + "\"><span>" + result.link[i].titulo + "<span></a></li>"
        }
        $("pageNumber").innerHTML = "";
        if (result.firstPage > 1 && result.totalPage > 4)
            $("pageNumber").innerHTML = "<a id=\"videoPage1\" style=\"cursor:pointer\" onclick=\"getItemPage(1);\">1</a><a>.....</a>";
        for (i = result.firstPage; i < result.lastPage + 1; i++)
            $("pageNumber").innerHTML += "<a class=\"" + (selectedVideoPage == i ? "on" : "") + "\" id=\"videoPage" + i + "\" style=\"cursor:pointer\" onclick=\"getItemPage(" + i + ");\">" + i + "</a>";
        if (result.lastPage < result.totalPage)
            $("pageNumber").innerHTML += "<a>.....</a><a id=\"videoPage" + result.totalPage + "\" style=\"cursor:pointer\" onclick=\"getItemPage(" + result.totalPage + ");\">" + result.totalPage + "</a>";
    }
    $("waiting").style.display = 'none';
}

function onErrorItemPage(err) {
    alert(err.get_message());
    alert("Erro ao obter página, por favor tente de novo!");
}