﻿
var IgnorePositionChange = false;

function wmpCreate(name, div, url) {
    var str = "";
    var is_ie;    
    
    is_ie = navigator.appName == "Microsoft Internet Explorer";
    
    if (is_ie) {
         // create the WMP for IE
         str = '<object id="'+ name + '" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="360" height="333">';
    }
    else
    {
         // create it for FF.
         str = '<object id="'+ name + '" type="application/x-ms-wmp" width="360" height="333">';
    }

    str += '<param name="autostart" value="false" />';
    str += '<param name="URL" value="'+url+'" />';
    //str += '<param name="uiMode" value="none">';
    str += '<param name="volume" value="50" />';

    str += '</object>';

    var player = document.getElementById(div);
    if(player != null)
        player.innerHTML = str;

    var tab = GetActiveTab();

    if (name.toString().indexOf(tab.toString(), 0) == 0) {
        var pWMP = document.getElementById(name);
        if (pWMP != null && pWMP.controls != null) {
        }
    }

    return str;
}

function GetUrl() {
    if (isWindows) {
        var pWMP;

        if (GetActiveTab() == 'Floor') {
            pWMP = document.getElementById('FloorPlayer');
        }
        else {
            pWMP = document.getElementById('EnglishPlayer');
        }

        if (pWMP == null) {
            window.setTimeout("GetUrl()", 2000);
        }
        else if (pWMP.URL != null) {
            var url = pWMP.URL;
            var time = GetShifterTime();

            // jeśli player odtwarzał już materiał z ts, wówczas jeśli nadal jest dostępny shifter time
            // zmień jedynie końcówkę:
            var idx = url.indexOf('?time');
            if (idx > 0 && time != null && time.length > 0) {
                url = url.substring(0, idx);
                url = url + '?time=' + time;
            }
            // pobierz url'a, z ts lub nie (w zależności czy jest dostępny shifter time)
            else {
                // jeśli jest to time shifter - skasuj subtitle
                var time = GetShifterTime();
                if (time != null && time.length > 0) {
                    var obj;

                    obj = document.getElementById(GetFloorSubtitlesLabelID());
                    if (obj != null)
                        obj.innerHTML = '';

                    obj = document.getElementById(GetEnglishSubtitlesLabelID());
                    if (obj != null)
                        obj.innerHTML = '';
                }          
                
                UniqueID = '';  
                url = ComposeUrl();
            }
            pWMP.URL = url;
            pWMP.controls.play();
        }
    }
    else {
        var url = ComposeUrl();
        createPlayerAndSetUrl(url);
    }    
}

function GetCurrentMediaID() {
    var materialID = "";

    if (GetActiveTab() == 'Floor') {
        materialID = FloorMaterialID;
    }
    else {
        materialID = EnglishMaterialID;
    }
    
    return materialID;
}

function ComposeUrl() {
    var url;
    var materialID = GetCurrentMediaID();
    var time = GetShifterTime();    
        
    if (materialID != null && materialID.length > 0) {
        url = "GetAsx.ashx?clientIP=" + ClientIP + "&materialID=" + materialID + "&userID=" + UserID + "&uniqueID=" + UniqueID;
        if (time != null && time.length > 0)
            url = url + "&shifterTime=" + time;
    }

    return url;
}
        
function ArchiveActiveTabChanged(sender, e) {    
    var currentTab = sender.get_activeTab().get_headerText();
    var currentPos = 0;
    var floorWMP = document.getElementById('FloorPlayer');
    var englishWMP = document.getElementById('EnglishPlayer');

    SetActiveTab(currentTab);
    SelectAgendaItem(-1);

    UniqueID = '';
    var url = ComposeUrl();
    
    if(currentTab == "Floor")
    {   
        if(englishWMP!= null && englishWMP.controls != null)
        {
            englishWMP.controls.stop();
        }
        if (floorWMP != null) {
            if (isWindows) {
                floorWMP.URL = url;
                floorWMP.controls.play();
                CurrentEventAndChartPostWebRequest("CurrentEventAndChart.ashx", GetRootEventID(), 0);
            }
            else {
                createPlayerAndSetUrl(url);
            }
        }
    }
    else
    {
        if(floorWMP != null && floorWMP.controls != null)
        {
            floorWMP.controls.stop();
        }
        if (englishWMP != null) {
            if (isWindows) {
                englishWMP.URL = url;
                englishWMP.controls.play();
                CurrentEventAndChartPostWebRequest("CurrentEventAndChart.ashx", GetRootEventID(), 0);
            }
            else {
                createPlayerAndSetUrl(url);
            }
        }
    }
}

function LiveActiveTabChanged(sender, e) {
    var currentTab = sender.get_activeTab().get_headerText();
    var url;
    var floorWMP = document.getElementById('FloorPlayer');
    var englishWMP = document.getElementById('EnglishPlayer');

    SetActiveTab(currentTab);

    UniqueID = '';
    var url = ComposeUrl();
    
    if (currentTab == "Floor") {
        if (englishWMP != null && englishWMP.controls != null) {
            englishWMP.controls.stop();
        }
        if (floorWMP != null) {
            if (isWindows) {
                floorWMP.URL = url;
                floorWMP.controls.play();                
            }
            else {
                createPlayerAndSetUrl(url);
            }                                
        }
    }
    else {
        if (floorWMP != null && floorWMP.controls != null) {            
            floorWMP.controls.stop();
        }
        if (englishWMP != null) {
            if (isWindows) {
                englishWMP.URL = url;
                englishWMP.controls.play();
            }
            else {
                createPlayerAndSetUrl(url);
            }        
        }        
    }
}

function GetAgendaRepeaterItemID(idx, item_name)
{
    var elementID = GetAgendaRepeaterID();
    
    var itemID = elementID + "_ctl";
    if(idx < 10)
        itemID = itemID + "0";
            
    itemID = itemID + idx.toString() + "_" + item_name;
    return itemID;
}

function GetSessionsRepeaterItemID(idx, item_name)
{
    var elementID = GetSessionsRepeaterID();
    
    var itemID = elementID + "_ctl";
    if(idx < 10)
        itemID = itemID + "0";
            
    itemID = itemID + idx.toString() + "_" + item_name;
    return itemID;
}

function SelectAgendaItem(selectedID) {

    if (selectedID == GetRootEventID() || GetRootEventType() == 4)
        return;

    var iCount = GetAgendaItemsCount();            
    for (var i = 1; i <= iCount; i++)
    {
        var itemType = document.getElementById(GetAgendaRepeaterItemID(i, "AgendaItemTypeHiddenField"));
        var itemID = document.getElementById(GetAgendaRepeaterItemID(i, "AgendaItemIDHiddenField"));

        if (itemType != null && itemType.value != null && (itemType.value == "EventItem" || itemType.value == "HighLevelSpeakerName"))
        {
            var button = document.getElementById(GetAgendaRepeaterItemID(i, "AgendaItemLinkButton"));
            if (button == null)
                button = document.getElementById(GetAgendaRepeaterItemID(i, "AgendaItemLabel"));
                
            if (button != null) {
                if (itemID != null && itemID.value != null && itemID.value == selectedID) {
                    button.style.color = "#00A3E3";
                    button.style.fontWeight = 'bold';
                    button.style.fontSize = '13px';
                }
                else {
                    button.style.color = "#585757";                    
                    button.style.fontSize = '11px';

                    // jeśli nie jest to COP_EVENT_PRESS_CONFERENCE, COP_EVENT_SIDE_EVENT = 5, COP_EVENT_OTHER_EVENT = 6:
                    if (GetRootEventType() != 4 && GetRootEventType() != 5 && GetRootEventType() != 6) {
                        button.style.fontWeight = 'normal';
                    }
                    else if (button.parentElement != null && button.parentElement.className.indexOf('level0') < 0){
                            button.style.fontWeight = 'normal';
                    }
                }
            }
        }
    }    
}

function SelectEventElement(element_name, select_name)
{
    var eventsID = GetEventsUpdatePanelID();
    var image = document.getElementById(eventsID.replace("EventsUpdatePanel", element_name + "Image"));
    var button = document.getElementById(eventsID.replace("EventsUpdatePanel", element_name + "LinkButton"));
    
    var source = image.src;
    if(element_name == select_name)
    {
        image.src = source.substr(0, (source.lastIndexOf(".gif") - 1)) + "d.gif";
        button.style.color = "#2592CD";
        button.style.fontWeight = 'bold';        
    }
    else
    {        
        image.src = source.substr(0, (source.lastIndexOf(".gif") - 1)) + "b.gif";
        button.style.color = "#585757";
        button.style.fontWeight = 'normal';    
    }
}

function SelectEventsItem(selectedID)
{
    ClearSelectedDate();
    SelectEventElement("Plenary_Meetings", selectedID);
    SelectEventElement("Workshops", selectedID);    
    SelectEventElement("Press_Conferences", selectedID);
    SelectEventElement("Side_Events", selectedID);
    SelectEventElement("High_Level", selectedID);
    SelectEventElement("Other_Events", selectedID);    
}

function SelectSessionsItem(selectedID)
{        
    var iCount = GetSessionsItemsCount();            
    for (var i = 1; i <= iCount; i++)
    {        
        var itemID = document.getElementById(GetSessionsRepeaterItemID(i, "SessionIDHiddenField"));        
        var image = document.getElementById(GetSessionsRepeaterItemID(i, "SessionImage"));
        var buttonName = document.getElementById(GetSessionsRepeaterItemID(i, "SessionNameLinkButton"));
        var buttonDescription = document.getElementById(GetSessionsRepeaterItemID(i, "SessionDescriptionLinkButton"));
                
        if(image != null && buttonName != null && buttonDescription != null)
        {
            if(itemID != null && itemID.value != null && itemID.value == selectedID)
            {                
                var source = image.src;
                image.src = source.substr(0, (source.lastIndexOf(".gif") - 1)) + "d.gif";
                buttonName.style.color = "#2592CD";
                buttonName.style.fontWeight = 'bold';
                buttonDescription.style.color = "#2592CD";
                buttonDescription.style.fontWeight = 'bold';
            }
            else
            {                   
                var source = image.src;
                image.src = source.substr(0, (source.lastIndexOf(".gif") - 1)) + "b.gif";
                buttonName.style.color = "#585757";
                buttonName.style.fontWeight = 'bold';
                buttonDescription.style.color = "#585757";
                buttonDescription.style.fontWeight = 'normal';
            }
        }        
    }    
}

function OnDSScriptCommandEvt(scType, Param)
{
    if(scType != "TEXT")
        return;
                
    if(Param == null)
        return;
    
    arrayOfParam = Param.split("=");
    
    if(arrayOfParam.length != 2)
        return;
        
    key = arrayOfParam[0];
    val = arrayOfParam[1];
    //alert("OnDSScriptCommandEvt: key=" + key + ", val=" + val); 
    switch(key)
    {
        case "CHART":
            var chart = document.getElementById(GetChartImageID());
            if (chart != null) 
                chart.setAttribute('src', "Chart.ashx?Id=" + val);
                
            var chartlink = document.getElementById(GetChartLinkID());
            if (chartlink != null) 
                chartlink.setAttribute('href', "Chart.ashx?Hq=" + val);
            
            SetCurrentChartID(val);
            if (PageType() == "Archive")
                CurrentChartInfoWebRequest('CurrentEventAndPosition.ashx', GetRootEventID(), GetCurrentChartID());
            break;
        case "CHART_NUMBER":
            var chart = document.getElementById(GetChartImageID());
            if (chart != null)
                chart.setAttribute('src', "Chart.ashx?Id=" + val);

            var chartlink = document.getElementById(GetChartLinkID());
            if (chartlink != null)
                chartlink.setAttribute('href', "Chart.ashx?Hq=" + val);

            SetCurrentChartID(val);
            if (PageType() == "Archive")
                CurrentChartInfoWebRequest('CurrentEventAndPosition.ashx', GetRootEventID(), GetCurrentChartID());
            break;     
        case "SUBTITLE":
            SubtitlePostWebRequest('Subtitle.ashx', val);
            break;
        case "EVENT":
//            if (IgnoreEventChange) {
//                IgnoreEventChange = false;
//            }
//            else {
//                SelectAgendaItem(val);
            //            }
            SelectAgendaItem(val)
            break;
    }    
}

function OnDSPositionChangeEvt(oldPosition, newPosition) {
    if (IgnorePositionChange) {
        IgnorePositionChange = false;
    }
    else {
        CurrentEventAndChartPostWebRequest("CurrentEventAndChart.ashx", GetRootEventID(), newPosition);
    }
}  
  
function OnArchiveAgendaItemClientClick(root, event, type) {
    SelectAgendaItem(event);
    CurrentPositionAndChartPostWebRequest("CurrentPositionAndChart.ashx", root, event);    
}

function OnPrevChartClientClick() {
    CurrentEventAndPositionPostWebRequest('CurrentEventAndPosition.ashx', GetRootEventID(), GetCurrentEventID(), GetCurrentChartID(), true);    
}

function OnNextChartClientClick() {
    CurrentEventAndPositionPostWebRequest('CurrentEventAndPosition.ashx', GetRootEventID(), GetCurrentEventID(), GetCurrentChartID(), false);    
}


function OnLiveAgendaItemClientClick(event, startTime) {
    SetCurrentEventID(event);
}

function OnSessionItemClientClick(session)
{            
    SetSelectedSessionID(session);
    SelectSessionsItem(session);
    SelectEventsItem(session);    
}
