﻿
var programmes =
[
    /*
    {
        shh: 8,
        smm: 30,            // incluso
        ehh: 8,
        emm: 37,            // escluso
        daysWeek: null,     // days of the week (0=domenica, 1=lunedì - 6=sabato) or null (everyday)
        daysMonth: null,    // days of the month (1-31) or null (everyday) / e.g. [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31] -> odd days / [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30] -> even days
        title: 'Notiziario',
        description: 'Notiziario della mattina',
        picture: 'Images/programmes/...'
    },
    */
    {
        shh: 8,
        smm: 45,
        ehh: 8,
        emm: 52,
        daysWeek: null,
        daysMonth: null,
        title: 'Notiziario',
        description: 'Notiziario della mattina',
        picture: 'Images/programmes/Notizie.jpg'
    },
    {
        shh: 11,
        smm: 00,
        ehh: 12,
        emm: 00,
        daysWeek: null,
        daysMonth: null,
        title: 'Speciale cubana e reggaeton',
        description: 'Un\'ora di musica cubana e reggaeton',
        picture: 'Images/programmes/CubanaReggaeton.jpg'
    },
    /*
    {
        shh: 13,
        smm: 00,
        ehh: 14,
        emm: 00,
        daysWeek: null,
        daysMonth: null,
        title: 'Latin Pop',
        description: 'Il ritmo caliente della musica Pop Latina',
        picture: 'Images/programmes/LatinPop.jpg'
    },
    */
    {
        shh: 15,
        smm: 00,
        ehh: 16,
        emm: 00,
        daysWeek: null,
        daysMonth: null,
        title: 'Salsa Romantica',
        description: 'Un\'ora di salsa romantica',
        picture: 'Images/programmes/Romantica.jpg'
    },
    /*
    {
        shh: 18,
        smm: 00,
        ehh: 18,
        emm: 30,
        daysWeek: null,
        daysMonth: null,
        title: 'Speciale Tango',
        description: '30\' Tango Clasico e Tango Nuevo',
        picture: 'Images/programmes/Tango.jpg'
    },
    */
    {
        shh: 19,
        smm: 45,
        ehh: 19,
        emm: 52,
        daysWeek: null,
        daysMonth: null,
        title: 'Notiziario',
        description: 'Notiziario della sera',
        picture: 'Images/programmes/Notizie.jpg'
    },
    /*
    {
        shh: 20,
        smm: 00,
        ehh: 20,
        emm: 45,
        daysWeek: [1,3,5,7],
        daysMonth: null,
        title: 'La Classifica di DJ Manolito',
        description: 'Top 10 Salsa Clasica',
        picture: 'Images/programmes/ManolitoClasica.jpg'
    },
    {
        shh: 20,
        smm: 00,
        ehh: 20,
        emm: 45,
        days: [2,4,6],
        title: 'La Classifica di DJ Manolito',
        description: 'Top 12 Salsa de Hoy y Bachata',
        picture: 'Images/programmes/ManolitoHoy.jpg'
    },
    */
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [1,16],
        title: 'Speciale Tito Puente',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/TitoPuente.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [2,17],
        title: 'Speciale Ray Perez',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/RayPerez.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [3,18],
        title: 'Speciale Celia Cruz',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/CeliaCruz.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [4,19],
        title: 'Speciale La Excelencia',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/LaExcelencia.jpg'
    },    
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [5,20],
        title: 'Speciale Tito Rodriguez',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/TitoRodriguez.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [6,21],
        title: 'Speciale Ray Barreto',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/RayBarreto.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [7,22],
        title: 'Speciale Hector Lavoe',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/HectorLavoe.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [8,23],
        title: 'Speciale Junior Gonzalez',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/JuniorGonzalez.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [9,24],
        title: 'Speciale Willie Colon',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/WillieColon.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [10,25,31],
        title: 'Speciale Wayne Gorbea',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/WayneGorbea.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [11,26],
        title: 'Speciale Richie Ray &... Bobby Cruz',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/RichieRayBobbyCruz.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [12,27],
        title: 'Speciale El Gran Combo ... De Puerto Rico',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/ElGranComboDePuertoRico.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [13,28],
        title: 'Speciale Ismael Miranda',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/IsmaelMiranda.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [14,29],
        title: 'Speciale Alex Wilson',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/AlexWilson.jpg'
    },
    {
        shh: 21,
        smm: 00,
        ehh: 22,
        emm: 00,
        daysWeek: null,
        daysMonth: [15,30],
        title: 'Speciale Eddie Palmieri',
        description: 'L\'artista del giorno, un\'ora di musica',
        picture: 'Images/programmes/EddiePalmieri.jpg'
    },
    {
        shh: 22,
        smm: 00,
        ehh: 23,
        emm: 00,
        daysWeek: null,
        daysMonth: null,
        title: 'Novità su Salsa4te',
        description: 'I nuovi brani aggiunti in programmazione',
        picture: 'Images/programmes/NewHits.jpg'
    },
    {
        shh: 01,
        smm: 30,
        ehh: 01,
        emm: 34,
        daysWeek: null,
        daysMonth: null,
        title: 'Notiziario inglese',
        description: 'Notiziario della notte in lingua inglese',
        picture: 'Images/programmes/Notizie.jpg'
    }
];

/* -------------------------------------- */

function fillProgramme()
{
    var today       = new Date();   
    var hour        = today.getHours();     // 0-23
    var minute      = today.getMinutes();   // 0-59
    var dayOfMonth  = today.getDate();      // 1-31
    var dayOfWeek   = today.getDay();       // 0=domenica, 1=lunedì - 6=sabato

    var k = 1;
    var programmePicture = null;
    var isOnAir = false;
    
    for(var i=0; i<programmes.length; i++)
    {
        if (
            ( (programmes[i].daysWeek != null) && VisioTec.Utilities.Arrays.contains(dayOfWeek, programmes[i].daysWeek)    ) ||
            ( (programmes[i].daysMonth != null) && VisioTec.Utilities.Arrays.contains(dayOfMonth, programmes[i].daysMonth) ) ||
            ( (programmes[i].daysWeek == null) && (programmes[i].daysMonth == null) )
           )
        { 
            $("#programme" + k + " .hour").text(
                (programmes[i].shh < 10 ? "0" : "") + programmes[i].shh + ":" +
                (programmes[i].smm < 10 ? "0" : "") + programmes[i].smm + "-" +
                (programmes[i].ehh < 10 ? "0" : "") + programmes[i].ehh + ":" + 
                (programmes[i].emm < 10 ? "0" : "") + programmes[i].emm);                
            $("#programme" + k + " .title").text(programmes[i].title);
            $("#programme" + k + " .description").text(programmes[i].description);
            
            $("#programme" + k).css("background-color","Black");              
            $("#programme" + k).css("height","15px");              
            $("#programme" + k).removeClass("selected");

            if (((programmes[i].shh < hour) || 
                ((programmes[i].shh == hour) && (programmes[i].smm <= minute))) &&
                ((hour < programmes[i].ehh) || 
                ((hour == programmes[i].ehh) && (minute < programmes[i].emm))))
            {
                $("#programme" + k).css("background-color","#323232");              
                $("#programme" + k).css("height","30px");
                $("#programme" + k).addClass("selected");
                
                programmePicture = programmes[i].picture;
                
                isOnAir = true;
            }
                
            k++;
        }
    }
    
    if (!isOnAir)
        programmePicture = "Images/programmes/Rotazione.jpg";
    
    if (forcedProgrammePicture != null)
        programmePicture = forcedProgrammePicture;
        
    $("#OnAirProgrammeWrapper img").attr("src", programmePicture);
}

/* -------------------------------------- */

forcedProgrammePicture = null;
forcedProgrammeIndex = -1;

function getForcedOnAirProgramme()
{
    $.ajax(
    {
       type: "GET",
       url: "ProxyService.aspx?action=RF&file=App_Data\\ForcedOnAirProgramme.txt",
       dataType : "text",
       cache: false,
       success: function (data) { getForcedOnAirProgrammeCallback(data) }//,
       //error: function (xmlHttpRequest, textStatus, errorThrown) { alert(errorThrown + ", " + xmlHttpRequest.status + ", " + xmlHttpRequest.statusText) }    
    });
}

function getForcedOnAirProgrammeCallback(data)
{
    var updateImmediately = false;
    if (data != forcedProgrammePicture)
        updateImmediately = true;
        
    if (data == "clear")
        forcedProgrammePicture = null;
    else
        forcedProgrammePicture = "Images/programmes/" + data;
        
    if (updateImmediately)
        fillProgramme();
}

function setForcedOnAirProgramme(name)
{
    $.ajax(
    {
       type: "GET",
       url: "ProxyService.aspx?action=WF&file=App_Data\\ForcedOnAirProgramme.txt&contents=" + name,
       dataType : "text",
       cache: false,
       success: function (data) { getForcedOnAirProgramme() }//,
       //error: function (xmlHttpRequest, textStatus, errorThrown) { alert(errorThrown + ", " + xmlHttpRequest.status + ", " + xmlHttpRequest.statusText) }    
    });
}

/* -------------------------------------- */
/* -------------------------------------- */

function StartProgrammeUpdate()
{
    fillProgramme();
    setInterval(fillProgramme,40000);            

    getForcedOnAirProgramme();
    setInterval(getForcedOnAirProgramme,60000);
}

