﻿// JScript File

var Addon_Index_Initialized = false;
var Addon_Index_Selected = -1;
var Addon_Index_Arguments = null;
var Addon_Index_VisitorEmail = "";
var Addon_Index_VisitorPhone = "";

function Addon_Index_Activate(args) {
    if (args != undefined && args != "") {
        Addon_Index_Arguments = args;
    }
    if (!Addon_Index_Initialized) {

        Addon_Index_VisitorEmail = theUserEmail
        Addon_Index_VisitorPhone = theUserMobile;
        Addon_Index_Paint();

        DoDebug("index initialized");
        if (AddonIndexShowUnderVideo) {
            theView.AddInfoPanel("Index", "", "", true);
        }

        if (Addon_Index_Arguments != null) {
            Addon_Index_Clicked(Addon_Index_Arguments);
        }
        else if (demoMode) {
            Addon_Index_Clicked(AddonIndexArr[0][0]);
        }

        Addon_Index_VisitorEmail = theUserEmail;
        Addon_Index_Initialized = true;
    }
}

function Addon_Index_Clear() {
    Addon_Index_Selected = -1;
    Addon_Index_Paint();
}

function Addon_Index_Paint() {
    var outp = "";
    for (var i = 0; i < AddonIndexArr.length; i++) {
        var myTitle = AddonIndexArr[i][2];

        outp += "<div id='AddonIndexItem_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemDiv' >"
        outp += "<table cellspacing='0' width='100%' ><tr><td style='width:100%' valign='top' >";

        //titles
        outp += "<div id='AddonIndexItemNr_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemNrDiv' onClick='Addon_Index_Clicked(" + AddonIndexArr[i][0] + ");'>" + AddonIndexArr[i][1] + "</div>";
        outp += "<div id='AddonIndexItemTitle_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemTitleDiv' onClick='Addon_Index_Clicked(" + AddonIndexArr[i][0] + ");' >";

        if (myTitle.indexOf("<BR/>") > 0) {
            var tmp = myTitle.split("<BR/>");
            myTitle = tmp[0];
            outp += "<div id='AddonIndexItemTitleHead_" + AddonIndexArr[i][0] + "_Div'  class='AddonIndexItemTitleHeadDiv'>" + tmp[0] + "</div>";

            if (tmp.length > 1) {
                for (var j = 1; j < tmp.length; j++) {
                    outp += tmp[j] + "<BR/>";
                }
            }
        } else {
            outp += "<div id='AddonIndexItemTitleHead_" + AddonIndexArr[i][0] + "_Div'  class='AddonIndexItemTitleHeadDiv'>" + myTitle + "</div>";
        }

        if (AddonIndexArr[i][7] != "") {
            outp += "<div class='IndexItemTimediv'>[" + AddonIndexArr[i][7] + "]</div>";
        }
        outp += "</div>";

        outp += "</td><td valign='top' rowspan='2'>";

        //icons
        if (AddonIndexArr[i][9] == true && AddonIndexShowDownloadMp3Icons == "True") {
            outp += "<div class='cwcSoundIcon' style='cursor:pointer; cursor:hand;' onclick='Addon_Index_DownloadMp3(" + AddonIndexArr[i][0] + ",AddonIndexArr[" + i + "][2]);'><img src='spacer.gif' height='16' width='16' alt='Download mp3'/></div>";
        }

        if ((AddonIndexShowNotificationIcons == "True" || AddonIndexShowSmsNotificationIcons == "True")  && theLiveStatusId < 5  ){
            outp += "<div class='cwcNotifyIcon' style='cursor:pointer; cursor:hand;' onclick='Addon_Index_AddNotification(" + AddonIndexArr[i][0] + ");'><img src='spacer.gif' height='16' width='16' alt='Notify me'/></div>";
        }

        outp += "</td><td  valign='top' rowspan='2'>";

        //slide
        if (AddonIndexArr[i][4] + "" != "") {
            var mySlideName = AddonIndexArr[i][4].substr(0, AddonIndexArr[i][4].length - 10) + "_" + getCurrentLanguage() + AddonIndexArr[i][4].substr(AddonIndexArr[i][4].length - 10);
            outp += "<div id='AddonIndexItemSlide_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemSlideDiv' onClick='Addon_Index_Clicked(" + AddonIndexArr[i][0] + ");'>";
            outp += "<img id='AddonIndexItemSlideImg' src='" + ResourceHandlerUrl + "slides/jpg80x60/" + mySlideName + "'/>";
            outp += "</div>";
        } else {
            outp += "<div id='AddonIndexItemSlide_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemSlideDiv' onClick='Addon_Index_Clicked(" + AddonIndexArr[i][0] + ");'></div>";
        }

        outp += "</td></tr><tr><td  valign='top' >";

        // Q and A's
        if (AddonIndexArr[i][8].length > 0) {
            outp += "<div class='AddonIndexItemQandADiv'>";
            var questionNr = 1;
            for (var q = 0; q < AddonIndexArr[i][8].length; q++) {
                outp += "<a href='#' ";
                outp += "onclick=\"Addon_Index_QandA_Jump(" + AddonIndexArr[i][8][q][0] + ",";
                outp += "'" + AddonIndexArr[i][8][q][2] + "');return false;\"";
                var question = AddonIndexArr[i][8][q][1];
                if (question.length == 0) question = AddonQAndAPrefix + " " + questionNr;
                outp += ">" + question + "</a>&nbsp;";
                questionNr++;
            }
            outp += "</div>";
        }

        //attachments
        if (AddonIndexArr[i][6].length > 0) {
            outp += "<div id='AddonIndexAttachments_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemAttachmentDiv'><span class='AttachmentsTitleSpan'>" + AddonIndexCustomAttachmentTitle + "</span>";

            if (AddonIndexArr[i][6].length > 0) {
                outp += "<ul class='attachmentsList'>";
            }

            for (var j = 0; j < AddonIndexArr[i][6].length; j++) {
                var myArr = FindArrayInDoubleArray(AddonIndexArr[i][6][j], AddonAttachmentsArr);
                if (myArr != "" && myArr.length > 0) {
                    if (myArr[2].substr(0, 7) == "http://") {
                        outp += "<li class='attachmentsListItem'><a href='" + myArr[2] + "' target='_blank'>" + myArr[1] + "</a></li>";
                    } else {
                        outp += "<li class='attachmentsListItem'><a href='DownloadHandler.ashx?t=attachments&wid=" + theWebcastId + "&n=" + myArr[2] + "' target='_blank'>" + myArr[1] + "</a></li>";
                    }
                } else {
                    DoDebug(AddonIndexArr[i][6][j] + " not found. ");
                }
            }

            if (AddonIndexArr[i][6].length > 0) {
                outp += "</ul>";
            }

            outp += "</div>";
        } else {
            outp += "<div id='AddonIndexAttachments_" + AddonIndexArr[i][0] + "_Div' class='AddonIndexItemAttachmentDiv'><span class='AttachmentsTitleSpan'>&nbsp;</span></div>";
        }

        outp += "</td></tr></table>";
        outp += "</div>";
    }
    document.getElementById("cwc_tabContent_Index").innerHTML = outp;

    //fixPNG();
    if (Addon_Index_Selected > 0) {
        Addon_Index_Highlight(Addon_Index_Selected, true);
    }
}

function Addon_Index_DownloadMp3(aIndexId, aIndexName) {
    var title = aIndexName.replace(/&#39;/g, "").replace(/&#34;/g, "").replace(/ & /g, " + ").replace("<br/>","<BR/>");
    if (title.indexOf("<BR/>") > 0) {
        titleArr = title.split("<BR/>");
        title = titleArr[0];
        if (title.length < 15) {
            title += "_" + titleArr[1];
            if (title.length < 30 && titleArr.length > 2) {
                title += "_" + titleArr[2];
            }
        }
    }
    title = title.replace(/[\W]/g, "_").replace(/___/g, "_").replace(/__/g, "_").replace(/__/g, "_");
    if (title.length > 40) title = title.substr(0, 40);
    window.open("DownloadHandler.ashx?l=" + FindInDoubleArray(theLanguageId, theLanguages, 1) + "&b=" + FindInDoubleArray(theBitrateId, theBitrates, 1) +
                "&wid=" + theWebcastId + "&t=index_mp3&i=" + aIndexId + "&n=" + title, "", "scrollbars=no,resizable=no, status=yes,width=100,height=100");
}

function Addon_Index_QandA_Jump(aId, aTimeCode) {
    jumpingInFile = true;
    JumpInFile(aTimeCode);
}

function Addon_Index_Resize(w, h) { }

function Addon_Index_Clicked(aId) {

    if (theLiveStatusId > LS_LIVE || demoMode) {

        var myArr = FindArrayInDoubleArray(aId, AddonIndexArr);

        if (Addon_Index_Selected != myArr[0]) {

            if (!jumpingInFile) {
                Addon_Index_doEvent("INDEX", aId);
            }

            jumpingInFile = true;
            DoGuiEvent("INDEX", aId);
            Addon_Index_Selected = myArr[0];
            Addon_Index_Highlight(myArr[0], true);
        }
    }

}

function Addon_Index_ShowSpeaker(aValue) {
    var outp = "";
    var myArr = FindArrayInDoubleArray(aValue, AddonSpeakersArr);

    if (myArr != "") {
        outp += myArr[3] + ", " + myArr[1] + " " + myArr[2] + "<br><small>" + myArr[4];
        outp += " <i>(" + myArr[5] + ")</i></small>";
    }

    return outp;
}

function Addon_Index_doEvent(aCmd, aValue) {

    if (aCmd == "INDEX") {

        var myArr = FindArrayInDoubleArray(aValue, AddonIndexArr);

        if (myArr[0] != Addon_Index_Selected) {

            if (myArr != "") {
                Addon_Index_Highlight(Addon_Index_Selected, false);
                Addon_Index_Selected = myArr[0];
                Addon_Index_Highlight(Addon_Index_Selected, true);
                var index = FindIndexInDoubleArray(aValue, AddonIndexArr);
                var myTop = 0;

                for (var i = 0; i < index; i++) {
                    myTop += document.getElementById("AddonIndexItem_" + AddonIndexArr[i][0] + "_Div").offsetHeight;
                }

                document.getElementById("cwc_tabContent_Index").scrollTop = myTop;
            }
        }
    }

    if (aCmd == "UPDATE") {
        PlayerService_QueueServerEvent("updateindex", {}, PlayerService_Priority.high, Addon_Index_UpdateComplete);
    }
}

function Addon_Index_UpdateComplete(result) {
    if (result.Values["Index"] != undefined && result.Values["Index"] != "") {
        eval(result.Values["Index"]);
        Addon_Index_Paint();
    }
}

function Addon_Index_AddNotification(aIndex) {
    var myArr = FindArrayInDoubleArray(aIndex, AddonIndexArr);
    var outp = "";
    outp += '<table cellpadding="0" cellspacing="0" border="0">';

    if (AddonIndexShowNotificationIcons==="True") {
        outp += '<tr><td>&nbsp;</td></tr>';
        outp += '<tr><td colspan="2">' + AddonIndexNotificationText[0] + '</td></tr>'
        outp += '<tr><td><b>' + AddonIndexNotificationText[1] + '</b></td><td><input id="vn_email" name="vn_email" type="text" value="' + Addon_Index_VisitorEmail + '"></td></tr>';
    }
    if (AddonIndexShowSmsNotificationIcons==="True") {
        outp += '<tr><td>&nbsp;</td></tr>';
        outp += '<tr><td colspan="2">' + AddonIndexNotificationText[4] + '</td></tr>'
        outp += '<tr><td><b>' + AddonIndexNotificationText[2] + '</b></td><td><input id="vn_phone" name="vn_phone" type="text" value="' + Addon_Index_VisitorPhone + '"></td></tr>';
    }
    outp += '<tr><td>&nbsp;</td></tr>';
    outp += '<tr><td></td><td><input type="button" value="' + AddonIndexNotificationText[3] + '" onclick="Addon_Index_AddNotification_Submit(' + aIndex + ');"></td>';
    outp += '</tr></table>';
    theView.ShowPopup(myArr[2], outp);
}

function Addon_Index_AddNotification_Submit(aIndex) {
    try { Addon_Index_VisitorEmail = document.getElementById("vn_email").value;} catch (e) { }
    try { Addon_Index_VisitorPhone = document.getElementById("vn_phone").value; } catch (e) { }
    PlayerService_QueueServerEvent(
        "visitornotification", {
            "visitorEmail": Addon_Index_VisitorEmail,
            "visitorPhone": Addon_Index_VisitorPhone,
            "source": "indexitem",
            "value": aIndex
        },
        PlayerService_Priority.high,
        Addon_Index_AddNotification_Submitted);
}

function Addon_Index_AddNotification_Submitted(result) {

    if (result.Values["visitornotificationdone"] != "true") {
        alert("could not subscribe to notification.\n" + result.Values["visitornotificationerror"] );
    }

    theView.HidePopup();
}

function Addon_Index_Highlight(aIndex, aIsOn) {
    if (aIndex > -1) {
        var myExt = "";

        if (aIsOn) {
            myExt = "-a";
        }

        try { document.getElementById("AddonIndexItem_" + aIndex + "_Div").className = "AddonIndexItemDiv AddonIndexItemDiv" + myExt; } catch (e) { }
        try { document.getElementById("AddonIndexItemNr_" + aIndex + "_Div").className = "AddonIndexItemNrDiv AddonIndexItemNrDiv" + myExt; } catch (e) { }
        try { document.getElementById("AddonIndexItemSlide_" + aIndex + "_Div").className = "AddonIndexItemSlideDiv AddonIndexItemSlideDiv" + myExt; } catch (e) { }
        try { document.getElementById("AddonIndexItemTitle_" + aIndex + "_Div").className = "AddonIndexItemTitleDiv AddonIndexItemTitleDiv" + myExt; } catch (e) { }
        try { document.getElementById("AddonIndexItemTitleHead_" + aIndex + "_Div").className = "AddonIndexItemTitleHeadDiv AddonIndexItemTitleHeadDiv" + myExt; } catch (e) { }
        try { document.getElementById("AddonIndexItemSpeaker_" + aIndex + "_Div").className = "AddonIndexItemSpeakerDiv AddonIndexItemSpeakerDiv" + myExt; } catch (e) { }
        try { document.getElementById("AddonIndexAttachments_" + aIndex + "_Div").className = "AddonIndexItemAttachmentDiv AddonIndexItemAttachmentDiv" + myExt; } catch (e) { }

        if (AddonIndexShowUnderVideo) {
            var outp = document.getElementById("AddonIndexItemTitle_" + aIndex + "_Div").innerHTML;
            document.getElementById("cwc_infoPanelContent_Index").innerHTML = outp;
            theView.ShowInfoPanel("Index");
        }
    }
}
