﻿var sort = 0;

showDetails = function(progid, friendlyurl)
{
    $("program-details-frame").src = "/uknetguide/tv/episode/" + progid + "/" + friendlyurl + ".aspx";
    openModalWindow("program-details");
}

closeDetails = function()
{
    closeModalWindow("program-details");
    $("program-details-frame").src = "/_controls/listings-common/program-details-loading.html";
}


//custom view / managed view tabs ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

swapViewTabs = function(showid, hideid)
{
    elshowtab = $(showid + 'viewtab');
    elshowtab.className = 'current';
    elhidetab = $(hideid + 'viewtab');
    elhidetab.className = '';
    elshow = $(showid + 'viewtabcontent');
    elhide = $(hideid + 'viewtabcontent');
    elshow.style.display='';
    elhide.style.display='none';
}

changeCustomView = function ()
{   
    var ddCVs = $('ddCustomViews');
    if (ddCVs.value!=-1)
    {
        if (ddCVs.options.length > 0)
        {
            ShowListingsLoading();
            var customviewid = getDropDownSelected('ddCustomViews');
            pageChangeCustomView(customviewid);
            setManagedViewNoSelection();
        }
    }
}

setManagedViewNoSelection = function ()
{
    var ddMVs = $('ddManagedViews');
    if (ddMVs!=null) ddMVs.value=-1;
}

changeManagedView = function ()
{
    var ddMVs = $('ddManagedViews');
    if (ddMVs.value!=-1)
    {
        ShowListingsLoading();   
        pageChangeManagedView(ddMVs.value);
        setCustomViewNoSelection();
    }
}

setCustomViewNoSelection = function ()
{
    var ddCVs = $('ddCustomViews');
    if (ddCVs!=null) ddCVs.value=-1;
}

/*
displayCurrentlyShowing = function ()
{
    //pageDisplayCurrentlyShowing();
}

callback_currentlyShowing = function (res)
{
    var currentlyshowing = res.value;
    var viewparts = currentlyshowing.split('~');
    var showingtext = "";
    var showing;
    var notshowing;
    var viewtype = 0;
    
    if (viewparts[0] == "Custom")
    {
        viewtype = 1;
//        showing = $('currentlyshowingcustom');
//        notshowing = $('currentlyshowingmanaged');
    }
    else
    {
        viewtype = 2;
//        showing = $('currentlyshowingmanaged');
//        notshowing = $('currentlyshowingcustom');
    }
    if (viewparts[3] == "edited")
        showingtext = "(edited) <a href=\"javascript:showSaveModal();\" class=\"confirm\">Save</a> or <a href=\"javascript:undoAllChanges(" + viewtype + ");\">Undo all changes</a>.";
            
    //showing.innerHTML = showingtext;
    //notshowing.innerHTML = '';
    $("currentlyshowing").innerHTML = showingtext;
    
}
*/
//callback_currentlyShowing = function (res)
//{
//    var currentlyshowing = res.value;
//    var viewparts = currentlyshowing.split('~');
//    var showingtext = "";
//    var showing;
//    var notshowing;
//    var viewtype = 0;
//    
//    if (viewparts[0] == "Custom")
//    {
//        viewtype = 1;
//        showing = $('currentlyshowingcustom');
//        notshowing = $('currentlyshowingmanaged');
//    }
//    else
//    {
//        viewtype = 2;
//        showing = $('currentlyshowingmanaged');
//        notshowing = $('currentlyshowingcustom');
//    }
//    if (viewparts[3] == "edited")
//        showingtext = "(edited) <a href=\"javascript:showSaveModal();\" class=\"confirm\">Save</a> or <a href=\"javascript:undoAllChanges(" + viewtype + ");\">Undo all changes</a>.";
//            
//    showing.innerHTML = showingtext;
//    notshowing.innerHTML = '';
//}
/*
undoAllChanges = function(viewtype)
{
    if (viewtype==1)
        changeCustomView();
    else
        changeManagedView();
}
*/

//user input functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

updateTimeDuration = function()
{
    ShowListingsLoading();
    var setDate = getDropDownSelected('ddDate');
    setDate = setDate.replace("optDays_", "");
    var startTime = getDropDownSelected('ddStartTime');
    var duration = getDropDownSelected('ddDuration');
    pageUpdateUserInputs(setDate, startTime, duration);
}

updateDayFromDropDown = function()
{
    ShowListingsLoading();
    var setDate = getDropDownSelected('ddDate');
    setDate = setDate.replace("optDays_", "");
//    setUserInputDate(setDate);
    var startTime = getDropDownSelected('ddStartTime');
    var duration = getDropDownSelected('ddDuration');
    pageUpdateUserInputs(setDate, startTime, duration);
}

updateDayFromAnchor = function(setDate)
{
    ShowListingsLoading();
    setUserInputDate(setDate);
    var startTime = getDropDownSelected('ddStartTime');
    var duration = getDropDownSelected('ddDuration');
    pageUpdateUserInputs(setDate, startTime, duration);
}

setUserInputDate = function(newDate)
{
    //dayanchorList
    var ulDayButtons = $("ulDayButtons");
    var aButtons = ulDayButtons.getElementsByTagName("a");
    for (var i=0; i<aButtons.length; i++)
    {
        aButton = aButtons[i];
        if (aButton.id == "aDays_" + newDate)
        {
            aButton.className = 'current';
        } else {
            aButton.className = '';
        }
    }
    //dayoptionList
    var ddDate = $("ddDate");
    var optDates = ddDate.getElementsByTagName("option");
    for (var i=0; i<optDates.length; i++)
    {
        optDate = optDates[i];
        if (optDate.id == "optDay_" + newDate)
        {
            optDate.selected = "selected";
        } else {
            optDate.selected = "";
        }
    
    }
}

shiftTime = function(startHour, differential)
{
    var newTime = startHour + differential;
    if(newTime > 0 && newTime < 24) {
        ShowListingsLoading();
        var duration = getDropDownSelected('ddDuration');
        var setDate = getDropDownSelected('ddDate');
        setDate = setDate.replace("optDays_", "");
        pageUpdateUserInputs(setDate, newTime, duration);
    }
}




//channel functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

changeChannel = function(ukstationid, ukstationname, sortorder)
{
    sort = sortorder;
    $("span-current-channel").innerHTML = ukstationname;
    //$("a-remove-channel").href = "javascript:removeChannel('" + ukstationid + "');";
    setDropDownSelected('ddSelectChannels',ukstationid);
    openModalWindow('change-channel');
}

updateChannel = function()
{
    ShowListingsLoading();
    var uk_station_id = getDropDownSelected('ddSelectChannels');
    closeModalWindow('change-channel');
    pageUpdateChannel(sort, uk_station_id);
}

addChannel = function()
{
    ShowListingsLoading();
    var uk_station_id = getDropDownSelected('ddAddChannel');
    closeModalWindow('add-channel');
    pageAddNewChannel(uk_station_id);
}

removeChannel = function(uk_station_id)
{
    ShowListingsLoading();
    closeModalWindow('change-channel');
    pageRemoveChannel(uk_station_id);
}




//saving custom views ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var m_viewparts;
var m_blnOverwrite = false;
showSaveModal = function(_loggedin)
{
    pageGetCurrentlyShowingForSaveModal(); //callback_showSaveModal
}

callback_showSaveModal = function(res)
{
    var currentlyshowing = res.value;
    
    m_viewparts = currentlyshowing.split('~');
    var viewtype = m_viewparts[0];
    if (viewtype != "ManagedNotLoggedIn")
    {
        $("saveCurrentView").innerHTML = '"' +  m_viewparts[2] + '"';
        if ((viewtype == "Managed") || (viewtype == "ManagedNotLoggedIn"))
            saveAsOnly();
    }
    openModalWindow('save-view');
}
saveAsOnly = function ()
{
    $("saveHeading").innerHTML = "Save a new view";
    $("saveInfo").style.display = "none";
    $("saveOptions").style.display = "none";
    
    ClickSaveOptionSaveAs();
}

ClickSaveOption = function(_option)
{
    resetSaveModal(true);
    switch (_option)
    {
        case 1:
            ClickSaveOptionOverwrite();
            break;
        case 2: 
            ClickSaveOptionSaveAs();
            break;
    }
}

ClickSaveOptionOverwrite = function()
{
    m_blnOverwrite = true;
    $("saveOptionOverwrite").className = "error";
    lblOverwriteConfirm = document.createElement("label");
    lblOverwriteConfirm.id = "lblOverwriteConfirm";
    lblOverwriteConfirm.innerHTML = 'Click save to overwrite: <span>"' + m_viewparts[2] + '"</span>';
    
    $("saveFunctions").appendChild(lblOverwriteConfirm);
    $("saveCustomViewButton").style.display = "";
}

ClickSaveOptionSaveAs = function()
{
    m_blnOverwrite = false;
    $("saveOptionSaveAs").className = "error";
    
    txtSaveAs = document.createElement("input");
    txtSaveAs.id = "txtCustomView";
    txtSaveAs.className = "short textfield";
    txtSaveAsErr = document.createElement("span");
    txtSaveAsErr.id = "txtCustomViewErr";
    txtSaveAsErr.className = "error";
    txtSaveAsErr.style.display = "none";
    divMakeDefaultView = document.createElement("div");
    divMakeDefaultView.className = "inline-group-helper";
    divMakeDefaultView.id = "divMakeDefaultView";
    chkMakeDefaultView = document.createElement("input");
    chkMakeDefaultView.type = "checkbox";
    chkMakeDefaultView.id = "chkMakeDefaultView";
    chkMakeDefaultView.className = "inline";
    lblMakeDefaultView = document.createElement("label");
    lblMakeDefaultView.htmlFor = "chkMakeDefaultView";
    lblMakeDefaultView.className = "inline";
    lblMakeDefaultView.innerHTML = "Use as default";
    
    divMakeDefaultView.appendChild(chkMakeDefaultView);
    divMakeDefaultView.appendChild(lblMakeDefaultView);
    
    $("saveFunctions").appendChild(txtSaveAs);
    $("saveFunctions").appendChild(txtSaveAsErr);
    $("saveFunctions").appendChild(divMakeDefaultView);
    $("saveCustomViewButton").style.display = "";
    
}

resetSaveModal = function (_withoption)
{

    if ($("saveHeading")!= null) $("saveHeading").innerHTML = "Save view";
    if ($("saveOptions") != null) $("saveOptions").style.display = "";
    
    if ($("saveInfo")!=null)
    {
        if (_withoption) $("saveInfo").style.display = "none";
        else $("saveInfo").style.display = "";
    }
    
    if ($("saveOptionOverwrite") != null) $("saveOptionOverwrite").className = "";
    if ($("saveOptionSaveAs") != null) $("saveOptionSaveAs").className = "";
    
    //remove overwrite option
    if ($("lblOverwriteConfirm") != null) $("saveFunctions").removeChild($("lblOverwriteConfirm"));
    
    //remove saveas option
    if ($("txtCustomView") != null) $("saveFunctions").removeChild($("txtCustomView"));
    if ($("txtCustomViewErr") != null) $("saveFunctions").removeChild($("txtCustomViewErr"));
    if ($("divMakeDefaultView") != null) $("saveFunctions").removeChild($("divMakeDefaultView"));
    
    if ($("saveCustomViewButton") != null) $("saveCustomViewButton").style.display = "none";
    
    m_blnOverwrite = false;
}

closeSaveModal = function()
{
    closeModalWindow('save-view');
    window.setTimeout("resetSaveModal(false);",1000);
}

saveCustomView = function()
{
    var stationIDs = getStationIDs();
    if (stationIDs != "")
    {
        if (m_blnOverwrite)
            overwriteCustomView(stationIDs);
        else
            saveNewCustomView(stationIDs);
    }
}

saveNewCustomView = function (stationIDs)
{
    var timespans = getDropDownSelected('ddDuration');
    var setdefault = $("chkMakeDefaultView").checked;
    var saveName = $("txtCustomView").value;
    
    showFeedback('addCustViewActionContainer', 'Saving');
    eng_custom_view.saveCustomView(stationIDs, 'txtCustomView', saveName, timespans, setdefault, callback_saveCustView);
}

overwriteCustomView = function (stationIDs)
{
    showFeedback('addCustViewActionContainer', 'Saving');
    eng_custom_view.overwriteCustomView(stationIDs, parseInt(m_viewparts[1]), callback_saveCustView);
}

callback_saveCustView = function (res)
{
	var success = ProcessFeedback(true, res.value, 'addCustViewActionContainer', 'Saved', "successfulSaveCustomView('" + res.value.Message + "');");

   clearInterval(timeoutid);
    
   timeoutid = window.setInterval("checkS()", timeOutDelay);
    	
}

successfulSaveCustomView = function (strCustomViewID)
{
    closeSaveModal();
    swapViewTabs('custom', 'managed');
    $("ddManagedViews").selectedIndex = 0;
    var intCustomViewID = parseInt(strCustomViewID);
    eng_custom_view.GetCustomViewsOptionsByUserID(intCustomViewID, callback_CustomViewsOptions);
}

callback_CustomViewsOptions = function(res)
{
    var customviewselector = $("ddCustomViews");
    
    customviewselector.innerHTML = "";
    
    var opt_element_default = document.createElement("option");
    opt_element_default.value = "-1";
    opt_element_default.innerHTML = "Select a view:";
    
    customviewselector.appendChild(opt_element_default);
    
    var dt = res.value;
    

    for (var i = 0; i<dt.Rows.length; i++)
        {
        var opt_element = document.createElement("option");
        opt_element.value = dt.Rows[i].CustomViewID;
        opt_element.innerHTML = dt.Rows[i].Description;
        if (dt.Rows[i].Selected == "True")
            opt_element.selected = true;
        customviewselector.appendChild(opt_element);
        }

    //displayCurrentlyShowing();
}





//page loading transisions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ShowListingsLoading = function ()
{
    disableToolTips();
    var listingsloadmessage = $("listings-actions-message");
    
    //create image element
    //var imgLoading = document.createElement("img");
    //imgLoading.src = "/images/indicators/16-16/default.gif"
    //imgLoading.className = "indicator";
    //imgLoading.alt = "";
    
    //create span element
    var spanLoading = document.createElement("span");
    spanLoading.innerHTML = "Loading&#8230;";
    
    //append created elements to loading message container
    //listingsloadmessage.appendChild(imgLoading);
    listingsloadmessage.appendChild(spanLoading);
  
    Effect.Appear
    ('listings-actions-message',
    	{
			duration: 0.4,
			to: 1
		}
    );
    Effect.Fade('tblListingsTableDiv', { duration: 0.4, to: 0.25 });
}

ShowListings = function () 
{
    Effect.Fade('listings-actions-message', { duration: 0.3, to: 0, 
        afterFinish:function() 
        { 
            var listingsloadmessage = $("listings-actions-message");
            listingsloadmessage.innerHTML = "";
        } });
    Effect.Appear('tblListingsTableDiv', { duration: 0.3, from: 0.25 });
    
    enableToolTips();
    
    clearInterval(timeoutid);
    
    timeoutid = window.setInterval("checkS()", timeOutDelay);

}

//genre highlighting ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

clearGenres = function()
{
    var genrelist = $('genre-list');
    var genrelist_items = genrelist.getElementsByTagName('li');
    
    for (var i=0; i<genrelist_items.length; i++)
    {
        genre_item_class = genrelist_items[i].className;
        
		genre_item_class = genre_item_class.replace(' active', '');
		highlightAllByGenre(genre_item_class, false);
		
		genrelist_items[i].className = genre_item_class;
    }
    newCookie("otb_genres","");
}

highlightGenre = function(genre)
{
    var genrelist = $('genre-list');
    var genrelist_items = genrelist.getElementsByTagName('li');
    
    for (var i=0; i<genrelist_items.length; i++)
    {
        genre_item_class = genrelist_items[i].className;
        if(genre_item_class.indexOf(genre) >= 0)
        {
            if(genre_item_class.indexOf('active') >= 0)
            {
                genre_item_class = genre_item_class.replace(' active', '');
                highlightAllByGenre(genre, false);
            } else {
                genre_item_class += ' active';
                highlightAllByGenre(genre, true);
            }
            genrelist_items[i].className = genre_item_class;
        }
    }
 
    var cookieGenres = readCookie("otb_genres");
    if ((cookieGenres==null)||(cookieGenres==""))
    {
        newCookie("otb_genres", genre + "|");
    }
    else
    {
        if (cookieGenres.indexOf(genre) >= 0)
        {
            cookieGenres = cookieGenres.replace(genre + "|", "");
        }
        else
        {
            cookieGenres = cookieGenres + genre + "|";
        }
    newCookie("otb_genres", cookieGenres); 
    }
}

highlightAllByGenre = function (genre, blnHighlight)
{
    var listings = $('tblListings');
    var prog_a_items = listings.getElementsByTagName('a');
    var a_id = '';
    
    for (var i=0; i<prog_a_items.length; i++)
    {
        a_id = prog_a_items[i].id;
        if (a_id.indexOf(genre)>=0)
        {
            if(blnHighlight)
                prog_a_items[i].className = genre;
            else
                prog_a_items[i].className = '';
        }
    
    }
}


loadGenreHighlightsFromCookie = function()
{
    var cookieGenres = readCookie("otb_genres");
    if ((cookieGenres==null)||(cookieGenres==""))
    {
    
    }
    else
    {
        var genres = cookieGenres.split("|");
        for (var i = 0;i<genres.length - 1;i++)
        {
        highlightAllByGenre(genres[i], true);
        }
    }
    
    
     window.setTimeout("highlightModalGenreSelections();", 2000);
     
     
}

highlightModalGenreSelections = function()
{
    var cookieGenres = readCookie("otb_genres");
    if ((cookieGenres==null)||(cookieGenres==""))
    {
    
    }
    else
    {
        var genres = cookieGenres.split("|");
        for (var i = 0;i<genres.length - 1;i++)
        {
        highlightModalGenre(genres[i]);
        }
    }
}

highlightModalGenre = function(genre)
{
var genrelist = $('genre-list');
    var genrelist_items = genrelist.getElementsByTagName('li');
    
    for (var i=0; i<genrelist_items.length; i++)
    {
        genre_item_class = genrelist_items[i].className;
        if(genre_item_class.indexOf(genre) >= 0)
        {
            if(genre_item_class.indexOf('active') >= 0)
            {
                genre_item_class = genre_item_class.replace(' active', '');
                highlightAllByGenre(genre, false);
            } else {
                genre_item_class += ' active';
                highlightAllByGenre(genre, true);
            }
            genrelist_items[i].className = genre_item_class;
        }
    }
}


//display functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


CreateProgramElement = function (prog, channelname, airtime, type)
{
    aProgram = document.createElement("a");

    aProgram.title = GetProgramTooltip(prog);
    aProgram.innerHTML = prog.Title;
    aProgram.id = prog.UK_Prog_ID + "_" + prog.Genre.replace(" ", "_").toLowerCase() + "_" + prog.DisplayStart.replace(":", "");
    //aProgram.href="/episode-detail/" + channelname.replace(" ", "-") + "/" + dateFormat(airtime, "dddd-dd-mmmm-yyyy-") + prog.DisplayStart.replace(":", "-") + "/" + prog.UK_Prog_ID.toLowerCase() + "/" + prog.FriendlyURL + ".aspx"
    
    if (type == "tv")
        {
        //aProgram.href="/tv/episode/" + prog.UK_Prog_ID.toLowerCase() + "/" + prog.FriendlyURL + ".aspx"   
        aProgram.href="javascript:showDetails('" + prog.UK_Prog_ID.toLowerCase() + "','" + prog.FriendlyURL + "')";
        }
    else
        {
        //aProgram.href="/radio-listings/program-details/" + prog.UK_Prog_ID.toLowerCase() + "/" + prog.FriendlyURL + ".aspx"    
        aProgram.href="/radio/episode/" + prog.UK_Prog_ID.toLowerCase() + "/" + prog.FriendlyURL + ".aspx" 
        }
    
    liGenreItem = $("genre-item-" + prog.Genre.toLowerCase());
    if (liGenreItem!=null)
    {
        liGenreClass = liGenreItem.className;
        if(liGenreClass.indexOf("active")>=0)
            aProgram.className = prog.Genre.toLowerCase();
    }
    
    return aProgram;

}