/*global $, jQuery, setNielsen, Shadowbox, utils */
/*jslint indent:2, regexp:true */
var MyRaiTV = {

  /* eventi */
  events: {
    userLoggedIn: 'myRaiTv.loggedIn',
    userLoggedOut: 'myRaiTv.loggedOut'
  },

  /* costanti */
  userCookieName: 'MyRaiTvUser',
  tempPlaylistCookieName: 'MyRaiTvPlaylistTemp',
  tempPlaylistStatusCookieName: 'MyRaiTvPlaylistTempStatus',

  /* path vari */
  PATH_LOGIN: '/MyRaiTv/login.do',
  PATH_RETRIEVE_LOGIN_DATA: '/MyRaiTv/retrieveLoginData.do',
  PATH_SAVE_PLAYLIST_TEMP: '/MyRaiTv/savePlaylist.do',
  //PATH_ADD_PLAYLIST: '/dl/RaiTV/MyRaiTV/addItemToPlaylist.html?contentItem=',
  PATH_ADD_PLAYLIST: '/dl/RaiTV/MyRaiTV/addItemToPlaylist.html?contentItem=',
  PATH_SAVE_FAVOURITE: '/MyRaiTv/addFavouriteContent.do',
  PATH_REMOVE_FAVOURITE: '/MyRaiTv/deleteFavouriteContent.do',

  PATH_MYPLAYLISTS: '/MyRaiTv/getPlaylists.do',
  PATH_LOADPLAYLIST: '/MyRaiTv/getPlaylist.do',
  PATH_REMOVE_PLAYLIST: '/MyRaiTv/deletePlaylist.do',
  PATH_UPDATE_PLAYLIST: '/MyRaiTv/updatePlaylist.do',

  PATH_MYFAVOURITES: '/MyRaiTv/getFavouriteContents.do',

  PATH_MYPROGRAMS: "/MyRaiTv/getFavouritePrograms.do",
  PATH_ADD_MYPROGRAMS: "/MyRaiTv/addFavouriteProgram.do",
  PATH_REMOVE_MYPROGRAMS: "/MyRaiTv/deleteFavouriteProgram.do",

  PATH_NO_CONTENT: "/dl/RaiTV/no_content.html",


  isAvailable: false,
  panel: null,
  playListBox: null,

  userLogged: false,

  playlistNameBoxDefaultText: 'Nome playlist',

  /* messaggi testuali */
  messages: {
    'error': 'Si è verificato un errore, riprovare.',
    'registrazioneOK': 'Ciao #username#,<br />I tuoi dati sono stati inviati con successo.<br />Per concludere il processo di iscrizione a MyRai.tv consulta la tua e-mail e convalida la tua registrazione cliccando sul link che ti abbiamo inviato.',
    'registrazioneKO': 'Si è verificato un errore durante la fase di registrazione, riprovare.',
    'confermaOK': 'Benvenuto #username#,<br />La tua registrazione si è conclusa con successo.<br />Grazie per esserti registrato sul portale Rai.tv.<br /> Effettua il login e inizia a creare la tua MyRai.tv',
    'confermaKO': 'Si è verificato un errore durante la fase di conferma, riprovare.',
    'iscrizioneEmail': 'Email non valida',
    'iscrizioneEmailCheckOK': 'Email disponibile',
    'iscrizioneEmailCheckKO': 'Email non disponibile',
    'iscrizioneNickname': 'Nickname obbligatorio',
    'iscrizioneNicknameCheckOK': 'Nickname disponibile',
    'iscrizioneNicknameCheckKO': 'Nickname non disponibile',
    'iscrizioneNicknameChar': '',
    'iscrizioneRepassword': 'Le due password non coincidono',
    'iscrizionePassword': 'Password obbligatoria tra 6 e 10 caratteri',
    'iscrizioneInformativa': '&Egrave; obbligatorio acconsetire all\'informativa',
    'addPlaylistConfirm': 'Sei sicuro di voler salvare il media nella playlist ',
    'uploadUserProfileOK': 'I tuoi dati sono stati aggiornati con successo.',
    'uploadUserProfileKO': 'Si è verificato un errore durante la fase di aggiornamento dati utente, riprovare.',
    'playlistSaveOK': 'Salvataggio avvenuto con successo',
    'playlistSaveKO': 'Si è verificato un errore durante la fase di salvataggio della playlist, riprovare.',
    'playlistRemoveOK': 'La playlist è stata rimossa con successo',
    'playlistRemoveKO': 'Si è verificato un errore durante la fase di cancellazione della playlist, riprovare.',
    'playlistSaveNoLogin': 'Per poter salvare una playlist devi effettuare il login',
    'playlistAddItemOK': '<span class="playlistOK">Aggiunto il video alla playlist #playlistname#</span>',
    'playlistRemoveDialog': '<span>Sei sicuro di voler eliminare la playlist: #playlistname# ?</span><ul class="button"><li><a href="#" onclick="MyRaiTV.Playlists.removePlaylist(#idPlaylist#); return false;">OK</a></li><li><a href="#" onclick="Shadowbox.close(); return false;">Annulla</a></li></ul>',
    'playlistUpdateDialog': '<span>Sei sicuro di voler aggiornare la playlist <br /> #playlistname# ?</span><ul class="button"><li><a href="#" onclick="MyRaiTV.Playlists.savePlaylist(\'#idPlaylist#\',true); return false;">OK</a></li><li><a href="#" onclick="Shadowbox.close(); return false;">Annulla</a></li></ul>',
    'playlistUpdateOK': 'Playlist aggiornata con successo',
    'playlistUpdateKO': 'Si è verificato un errore nell\'aggiornamento della playlist, riprovare.',
    'playlistAddItemKO': '<span class="playlistKO">Si è verificato un errore durante la fase di salvataggio della playlist, riprovare.</span>',
    'playlistAddItemAlert': '<span class="playlistKO">Devi selezionare una playlist esistente oppure scegliere "Nuova Playlist"</span>',
    'playlistAddItemExist': '<span class="playlistKO">Media giÃ  presenta nella playlist #playlistname#</span>',
    'playlistEmptyMessage': '<div class="infoPlaylist"><h3>Crea le tue playlist organizzando i video da rivedere e condividere con i tuoi amici.</h3>Su Myrai.tv puoi creare le tue playlist video e rivederle quando vuoi. Naviga <a href="http://www.rai.tv">Rai.tv</a>, seleziona i video di tuo interesse e clicca sul pulsante <img src="/dl/RaiTV/images/ico_info_add.gif" alt="Aggiungi a playlist" width="13" height="13" /> in basso per aggiungerli alla playlist temporanea; quando avrai completato la tua playlist potrai salvarla assegnandole un nome e poi rivederla in un secondo momento dalla sezione "Le mie playlist".</div>',
    'favouriteAddItemOK': 'Il media selezionato è stato aggiunto alla tua lista dei preferiti',
    'favouriteAddItemExist': 'Media giÃ  presente nella tua lista dei preferiti',
    'favouriteAddItemKO': 'Si è verificato un errore durante la fase di salvataggio dei preferiti, riprovare.',
    'favouriteRemoveItemOK': 'Il media è stato rimosso dai tuoi preferiti ',
    'favouriteRemoveItemKO': 'Si è verificato un errore durante la fase di rimozione del media dai tuoi dei preferiti, riprovare.',
    'retrieveEmailOK': 'Ti è stata inviata una email con le tue credenziali per il login.',
    'retrieveEmailKO': 'Si è verificato un errore nell\'invio della email, riprovare.',
    'retrieveEmailERROR': 'Email non valida',
    'programAddItemOK': 'Il programma selezionato è stato aggiunto alla tua lista ',
    'programAddItemKO': 'Si è verificato un errore durante la fase di salvataggio del tuo programma preferito, riprovare.',
    'programAddDialog': '<span>Sei sicuro di voler aggiungere il programma <br /> #programname# ?</span><ul class="button"><li><a href="#" onclick="MyRaiTV.Programs.addProgram(\'#idProgram#\',true); return false;">OK</a></li><li><a href="#" onclick="Shadowbox.close(); return false;">Annulla</a></li></ul>',
    'programRemoveDialog': '<span>Sei sicuro di voler eliminare il programma #programname# dai tuoi preferiti?</span><ul class="button"><li><a href="#" onclick="MyRaiTV.Programs.removeProgram(\'#idProgram#\',true); return false;">OK</a></li><li><a href="#" onclick="Shadowbox.close(); return false;">Annulla</a></li></ul>',
    'programRemoveItemOK': 'Il programma selezionato è stato rimosso dalla tua lista',
    'programRemoveItemKO': 'Si è verificato un errore durante la fase di cancellazione del tuo programma preferito, riprovare.',
    'programAddItemExist': 'Programma giÃ  presente nella tua lista dei preferiti',
    'loginERROR': 'Devi inserire username e password per effettuare la login',
    'loginErrorUserPassword': 'Username o Password non validi',
    'loginUserNotValid': 'Non hai ancora convalidato la tua iscrizione. Controlla l\'email che hai ricevuto all\'indirizzo di posta da te indicato in fase di registrazione e clicca sul link di convalida.',
    'playlistTempEmpty': 'Playlist temporanea vuota',
    'playlistTempAlreadyExist': 'Media giÃ  presente nella tua playlist temporanea',
    'emailSendOK': 'Email inviata con successo.',
    'emailSendKO': 'Si è verificato un errore durante l\'invio della email.',
    'emailNotValid': 'Email non valida.',
    'alertButtonOptionsPlaylist': 'Funzione non disponibile per questo media.',
    'alertButtonOptionsPodcast': 'Funzione disponibile solo per i media podcast.',
    'alertButtonOptionsFave': 'Per aggiungere un media ai preferiti<br> devi effetture il login.',
    'alertButtonOptionsFeed': 'Funzione non disponibile per questo media.',
    'userAlteredDuringImport': 'Gentile utente<br />Come da precedenti comunicazioni, abbiamo rinnovato la piattaforma di Rai Comunity  integrandola con le funzionalit&agrave; di Rai.tv.<br /><br />Potrai continuare ad utilizzare i servizi offerti dai due portali utilizzando la tua precedente utenza (utenza Rai.tv o utenza Rai Community).<br /><br />Ti invitiamo a leggere ed accettare il <a href="#url#">Regolamento</a> e a continuare la navigazione',
    'userAlteredMessages': {
      'message0': 'Gentile utente<br />Come da precedenti comunicazioni, abbiamo rinnovato la piattaforma di Rai Comunity  integrandola con le funzionalit&agrave; di Rai.tv.<br /><br />Potrai continuare ad utilizzare i servizi offerti dai due portali utilizzando la tua precedente utenza (utenza Rai.tv o utenza Rai Community).<br /><br />Ti invitiamo a leggere ed accettare il <a href="#url#">Regolamento</a> e a continuare la navigazione',
      'message1': 'Gentile utente<br />Come da precedenti comunicazioni, abbiamo rinnovato la piattaforma di Rai Comunity  integrandola con le funzionalit&agrave; di Rai.tv<br /><br />Le tue due utenze sono state unificate e adesso potrai continuare ad usufruire dei servizi offerti sui due portali con un\'unica utenza. Per agevolare le operazioni di login, puoi usare indistintamente le credenziali di accesso a Rai Community o a MyRai.tv<br /><br />Ti invitiamo a leggere ed accettare il <a href="#url#">Regolamento</a> e a continuare la navigazione.',
      'message3': 'Gentile utente<br />Come da precedenti comunicazioni, abbiamo rinnovato la piattaforma di Rai Comunity  integrandola con le funzionalit&agrave; di Rai.tv.<br /><br />Per motivi di compatibilitÃ  con il nuovo sistema e per continuare ad utilizzare i servizi offerti dai due portali dovrai scegliere un nuovo nickname.<br /><br />Ti invitiamo a leggere ed accettare il <a href="#url#">Regolamento</a> e a continuare la navigazione',
      'message4': 'Gentile utente<br />Come da precedenti comunicazioni, abbiamo rinnovato la piattaforma di Rai Comunity  integrandola con le funzionalit&agrave; di Rai.tv<br /><br />Con la tua utenza Rai.tv adesso potrai accedere anche a tutti i servizi di Rai Community<br /><br />Ti invitiamo a leggere ed accettare il <a href="#url#">Regolamento</a> e a continuare la navigazione.'
    },
    'myRaiTvNotAvailable': '<div class="myPanel error"><h3>MyRaiTv non è al momento raggiungibile.</h3></div>'
  },


  messageShadowbox: function(optionOpen) {
    Shadowbox.init({
      skipSetup: true // skip the automatic setup
    });
    var closeBtn = '<a title="Chiudi" class="Close" ' +
        'onclick="Shadowbox.close(); return false;" ' +
        'href="#" style="display: block; width: 15px; ' +
        'height: 15px; position: absolute; top: 2px; ' +
        'right: 2px; background: transparent ' +
        'url(/dl/RaiTV/images/btn_close_comm.gif) no-repeat ' +
        'scroll 0 0"><span class="solotesto">Chiudi</span></a>';
    if (optionOpen.content.indexOf('class="Close"') < 0 &&
        optionOpen.content.indexOf('Shadowbox.close') < 0) {
      optionOpen.content = closeBtn + optionOpen.content;
    }
    Shadowbox.open(optionOpen);
  },


  checkServiceAvailable: function() {
    $.ajax({
      url: MyRaiTV.PATH_LOGIN,
      type: 'HEAD',
      dataType: 'json',
      cache: false,
      async: false,
      error: function(a, b, c) {
        console.log(a + ' ' + b + ' ' + c);
        MyRaiTV.isAvailable = false;
        if (!MyRaiTV.panel) {
          MyRaiTV.panel = $('.boxMyRaitv');
        }
        if (MyRaiTV.panel) {
          MyRaiTV.panel.removeClass('hidden');
          MyRaiTV.panel.find('.myPanel').remove();
          MyRaiTV.panel.append(MyRaiTV.messages.myRaiTvNotAvailable);
        }
      },
      success: function(data, status, xhr) {
        MyRaiTV.isAvailable = true;
        if (!MyRaiTV.panel) {
          MyRaiTV.panel = $('.boxMyRaitv');
        }
        if (MyRaiTV.panel) {
          MyRaiTV.panel.removeClass('hidden');
        }
      }
    });
  },

  init: function() {
    MyRaiTV.panel = $('.boxMyRaitv');

    $('.Header .Menu .myRaitv').unbind('click').bind('click', function() {
      if (!!MyRaiTV.panel) {
        MyRaiTV.panel.show();
        var top = MyRaiTV.panel.offset().top;
        $('html,body').animate({scrollTop: top});
      }
      return false;
    });

    // login box
    if (MyRaiTV.panel.length == 0) {
      $.ajax({
        url: '/dl/RaiTV/2012/static/myraitv_bar.html',
        async: false,
        success: function(d) {
          var m = $('.Main');
          m.prepend(d);
          MyRaiTV.panel = m.find('.boxMyRaitv');
        }
      });
    }

    MyRaiTV.playListBox = $('div.boxSpalla#tempPlaylist');

    //playlist temporanea box
    if (MyRaiTV.playListBox.length == 0) {
      $.ajax({
        url: '/dl/RaiTV/2012/static/tempPlaylistBox.html',
        async: false,
        success: function(tempPlayListBoxHTML) {
          $('.Spalla .searchSpalla').eq(0).after(tempPlayListBoxHTML);
          MyRaiTV.playListBox = $('div.boxSpalla#tempPlaylist');
          MyRaiTV.playListBox.hide();



          var isIpad = (navigator.userAgent.match(/iPad/i));
          var isIphone = (navigator.userAgent.match(/iPhone/i));

          // jScrollPane inutilizzabile con il touch di safari
          if (!isIpad && !isIphone) {
            $('#tempPlaylist .scroll-pane').jScrollPane({
              showArrows: false,
              scrollbarWidth: 16,
              animateTo: true
            });
          }

          MyRaiTV.playListBox.find('a#playListSaveButton').
              click(function() {
                MyRaiTV.savePlaylist();
                return false;
              });

          MyRaiTV.playListBox.find('a#playListClearPlaylistButton').
              click(function() {
                MyRaiTV.clearPlaylistTemp();
                return false;
              });

          MyRaiTV.playListBox.find('#nomePlaylistTemp').
              val(MyRaiTV.playlistNameBoxDefaultText);
        }
      });
    }
    if (MyRaiTV.playListBox) {
      MyRaiTV.playListBox.find('.top').click(function() {
        var p = MyRaiTV.playListBox.find('.mid');
        var status = '1';
        if (p.is(':visible')) {
          p.slideUp('fast');
          status = '0';
        } else {
          p.slideDown('fast');
          status = '1';
        }
        utils.cookie.set(MyRaiTV.tempPlaylistStatusCookieName,
                         status,
                         '/',
                         HOST,
                         '');
      });
      if (utils.cookie.get(MyRaiTV.tempPlaylistStatusCookieName) == '0') {
        MyRaiTV.playListBox.find('.mid').hide();
      } else {
        MyRaiTV.playListBox.find('.mid').show();
      }
    }

    if (!MyRaiTV.isAvailable) {
      MyRaiTV.checkServiceAvailable();
    }
    if (MyRaiTV.panel) {
      MyRaiTV.panel.removeClass('hidden').show();
      if (!MyRaiTV.isAvailable) {
        MyRaiTV.panel.find('.myPanel').remove();
        MyRaiTV.panel.append(MyRaiTV.messages.myRaiTvNotAvailable);
      } else {
        MyRaiTV.panel.removeClass('hidden').show();
      }
    }

    MyRaiTV.checkLogin();
    $(document).bind(MyRaiTV.events.userLoggedIn + ' ' +
                     MyRaiTV.events.userLoggedOut, MyRaiTV.checkLogin);
    MyRaiTV.initLoginForm();
    MyRaiTV.initUserPanel();

    $('.opzVod .Fave a').
        unbind('click').
        live('click', function() {
          if (MyRaiTV.getUser() == null) {
            if (!!$.fn.clickNoTrack) {
              $('.Header .Menu .myRaitv').clickNoTrack();
            } else {
              $('.Header .Menu .myRaitv').click();
            }
          } else {
            var idItem = $(this).parents('.opzVod').siblings('.Player').attr('data-id');
            if (idItem == undefined) {
              idItem = $('#uniquename').text();
            }
            MyRaiTV.addFavourite(idItem);
          }
          return false;
        });

    //MyRaiTV.drawPlaylistTemp();
  },

  initUserPanel: function() {
    var panel;
    panel = MyRaiTV.panel.find('.myPanel.loggedIn');
    panel.find('a.exit').bind('click', MyRaiTV.logout);
  },

  initLoginForm: function() {
    var form, user, pass, fldUser, fldPass, divFeedback;
    form = MyRaiTV.panel.find('.Form.login');
    fldUser = form.find('input[name="username"]');
    fldPass = form.find('input[name="password"]');
    function sendLogin() {
      user = fldUser.val() || '';
      pass = fldPass.val() || '';
      if (user != fldUser[0].defaultValue &&
          pass != fldPass[0].defaultValue) {
        divFeedback = $('<div class="feedback loading" />');
        form.append(divFeedback);
        MyRaiTV.sendLogin(user, pass, function() {
          divFeedback.remove();
        });
      }
      return false;
    }
    // form.find('.Submit ').click(sendLogin);
    form.find('form').bind('submit', sendLogin);
  },

  updateBar: function() {

  },

  sendLogin: function(user, pass, callback) {
    $.post(MyRaiTV.PATH_LOGIN,
           {username: user, password: pass},
           function(data) {
             if (typeof(callback) == 'function') {
            callback(data);
             }
             MyRaiTV.parseLogin(data);
           }
    );
  },

  /**
   * Restituisce l'utente attualmente loggato. Se l'utente non e' loggato,
   * restituisce null.
   * @return {Object} un oggetto con i dati dell'utente o null.
   */
  getUser: function() {
    var MyRaiTvUserCodeComplete, MyRaiTvUserCode, MyRaiTvNickname;
    MyRaiTvUserCodeComplete = utils.cookie.get(MyRaiTV.userCookieName);
    if (MyRaiTvUserCodeComplete == 'undefined') {
      MyRaiTvUserCodeComplete = null;
    }
    if (!!MyRaiTvUserCodeComplete) {
      MyRaiTvUserCode = MyRaiTvUserCodeComplete.split('-')[0];
      MyRaiTvNickname = MyRaiTvUserCodeComplete.split('-')[1];
      MyRaiTV.userLogged = true;
      return {
        code: MyRaiTvUserCodeComplete,
        confirmKey: MyRaiTvUserCode,
        username: MyRaiTvNickname
      };
    } else {
      MyRaiTV.userLogged = false;
      return null;
    }
  },

  /**
  effettua i controlli sulla login
  TODO: rivedere i metodi parseLogin e checkLogin
  **/
  parseLogin: function(data) {
    var result, esito, json, text, u, msgStyle, optionShadowbox, t, d, domain;
    result = $.trim(data).split('-');
    esito = 0;
    if (result.length > 1) {
      result = [result[0], result.slice(1).join('-')];
    }
    // try {console.log({array: result});}catch(e){}
    if (result.length > 1 && /\(\{.*\}\);/.test(result[1])) {

      json = result[1].replace(/\((\{.*\})\);/, '$1');
      // try {console.log({string: json});}catch(e){}
      try {
        eval('json = ' + json + ';');
      } catch (e) {
        json = {'error': 'error'};
      }
      if (!!json.redirect) {
        text = '';
        u = decodeURIComponent(json.redirect);
        u += (/[\?#]/.test(u)) ? '&' : '?';
        u += 'ref=' + encodeURIComponent('' + document.location);
        if (!!json.message &&
            !!MyRaiTV.messages['userAlteredMessages'][json.message]) {
          text += '<p>' + MyRaiTV.messages['userAlteredMessages'][json.message].
              replace('#url#', u) + '</p>';
        } else {
          text += '<p>' + MyRaiTV.messages['userAlteredDuringImport'].
              replace('#url#', u) + '</p>';
        }
        msgStyle = '<style type="text/css">#msg p ' +
            '{text-align: left; font-size: 16px;} #msg a, #msg a:link, ' +
            '#msg a:visited {color:#fff; text-decoration: underline;} ' +
            '#msg a:hover, #msg a:active {color: #ccc;}</style>';
        optionShadowbox = {
          title: 'Login',
          content: msgStyle + '<div id="msg">' + text + '</div>',
          player: 'html',
          height: 250,
          width: 640,
          options: {animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);
        return;
      } else if (!!json.token) {
        t = json.token;
        d = t + '-' + myUsername;

        utils.cookie.set('MyRaiTvUser', d, '', '/', HOST, '');
        utils.cookie.set('token', t, '', '/', HOST, '');
        utils.cookie.set('tokenExt', t, '', '/', HOST, '');

        $('iframe#MyRaiTvLogin,iframe#MyRaiTvLogin2,' +
            'iframe#MyRaiTvLogin3,iframe#MyRaiTvLogin4').remove();
        domain = 'www.rai.tv';
        if (/rai.tv/i.test('' + document.location)) {
          domain = 'www.rai.it';
        }
        $('<iframe id="MyRaiTvLogin" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=MyRaiTvUser&amp;c=' + d + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
        $('<iframe id="MyRaiTvLogin2" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=token&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
        $('<iframe id="MyRaiTvLogin4" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=tokenExt&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));

        esito = 1;
        login(esito);

      } else {
        esito = 3;
        login(esito);
      }
    } else if (result.length > 1) {
      t = data.split('-');
      t = t[0];
      utils.cookie.set('MyRaiTvUser', data, '', '/', HOST, '');
      utils.cookie.set('token', t, '', '/', HOST, '');
      utils.cookie.set('tokenExt', t, '', '/', HOST, '');

      $('iframe#MyRaiTvLogin,iframe#MyRaiTvLogin2,iframe#MyRaiTvLogin3,iframe#MyRaiTvLogin4').remove();
      domain = 'www.rai.tv';
      if (/rai.tv/i.test('' + document.location)) {
        domain = 'www.rai.it';
      }
      $('<iframe id="MyRaiTvLogin" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=MyRaiTvUser&amp;c=' + data + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
      $('<iframe id="MyRaiTvLogin2" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=token&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
      $('<iframe id="MyRaiTvLogin4" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=tokenExt&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));

      esito = 1;
      login(esito);
    } else if (result[0] == 'nonvalido') {
      esito = 2;
      login(esito);
    } else {
      esito = 3;
      login(esito);
    }
    // Segnalo che e' stato fatto il login a myraitv.
    // Per ricevere l'evento: $(document).bind('myRaiTv.loggedIn', function);
    // es: gestione commenti
    if (MyRaiTV.panel) {
      MyRaiTV.panel.show();
    }
    $(document).trigger(MyRaiTV.events.userLoggedIn);
  },

  /**
  effettua i controlli sulla login
  **/
  checkLogin: function(data) {
    var user, panels, visiblePanel;
    try {
      // carico i widget di community
      loadWidget();
    } catch (e) {}
    user = MyRaiTV.getUser();
    panels = MyRaiTV.panel.find('.myPanel');
    if (user != null) {
      visiblePanel = panels.filter('.loggedIn');

      MyRaiTvUserCodeComplete = user.code;
      MyRaiTvUserCode = user.confirmKey;
      MyRaiTvNickname = user.username;

      visiblePanel.find('>h3>span').text(user.username);

      MyRaiTV.userLogged = true;
    } else {
      MyRaiTV.userLogged = false;
      visiblePanel = panels.filter('.Form.login');
      // hide bar
      MyRaiTV.panel.hide();
    }
    if (visiblePanel.length > 0) {
      panels.not(visiblePanel).hide();
      visiblePanel.removeClass('hidden').show();
    }

    // LEGACY
    var html = '';
    if (user != null) {
      MyRaiTvUserCodeComplete = user.code;
      MyRaiTvUserCode = user.confirmKey;
      MyRaiTvNickname = user.username;
      data = 1;
    }
    if (utils.cookie.get('MyRaiTvPlaylistTemp')) {
      $('H2.drawer-handle:eq(1)').click();
    }
    MyRaiTV.updateBar();
    switch (data) {
      case 1:
        $('.opzVod>.Fave').
            html('<a href="#" class="btnFave" ' +
                 'title="Aggiungi ai preferiti"><span>Preferiti</span></a>').
            find('a.btnFave').click(function() {
              var idItem = $(this).parents('.opzVod').siblings('.Player').attr('data-id');
              if (idItem == undefined) {
                idItem = $('#uniquename').text();
              }
              MyRaiTV.addFavourite(idItem);
              return false;
            });
        break;
      case 2:
        var optionShadowbox = {
          title: 'Login',
          content: '<div id="msg">' +
              MyRaiTV.messages['loginUserNotValid'] +
              '</div>',
          player: 'html',
          height: 100,
          width: 300,
          options: { animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);
        break;
      case 3:
        var optionShadowbox = {
          title: 'Login',
          content: '<div id="msg">' +
              MyRaiTV.messages['loginErrorUserPassword'] +
              '</div>',
          player: 'html',
          height: 100,
          width: 300,
          options: { animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);
        break;
    }
    $('.tastiOpzioni>LI,.vodOpzioni>LI').click(function() {
      if ($(this).find('a').length == 0) {
        var message = '';
        if ($(this).is('.Fave')) {
          message = MyRaiTV.messages['alertButtonOptionsFave'];
        } else if ($(this).is('.Download')) {
          message = MyRaiTV.messages['alertButtonOptionsPodcast'];
        } else if ($(this).is('.Feed')) {
          message = MyRaiTV.messages['alertButtonOptionsFeed'];
        } else if ($(this).is('.Playlist')) {
          message = MyRaiTV.messages['alertButtonOptionsPlaylist'];
        }
        var optionShadowbox = {
          title: 'Avviso',
          content: '<div id="msg">' + message + '</div>',
          player: 'html',
          height: 100,
          width: 300,
          options: { animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);

        return false;
      } else {
        return true;
      }

      if ($(this).text() == '') {
        var message = '';
        if ($(this).is('.Fave')) {
          message = MyRaiTV.messages['alertButtonOptionsFave'];
        } else if ($(this).is('.Download')) {
          message = MyRaiTV.messages['alertButtonOptionsPodcast'];
        } else if ($(this).is('.Feed')) {
          message = MyRaiTV.messages['alertButtonOptionsFeed'];
        } else if ($(this).is('.Playlist')) {
          message = MyRaiTV.messages['alertButtonOptionsPlaylist'];
        }
        var optionShadowbox = {
          title: 'Avviso',
          content: '<div id="msg">' + message + '</div>',
          player: 'html',
          height: 100,
          width: 300,
          options: { animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);
      }
      return false;
    });
  },

  logout: function() {
    $.getScript('http://sso.widget.rai.it/smartLogout.php?' +
                'callback=(function(){})');

    $('iframe#MyRaiTvLogin,iframe#MyRaiTvLogin2,' +
        'iframe#MyRaiTvLogin3,iframe#MyRaiTvLogin4').remove();
    var domain = 'www.rai.tv';
    if (/rai.tv/i.test('' + document.location)) {
      domain = 'www.rai.it';
    }
    $('<iframe id="MyRaiTvLogin" src="http://' + domain + '/dl/js/cookieUtils.html?m=r&amp;n=MyRaiTvUser" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
    $('<iframe id="MyRaiTvLogin2" src="http://' + domain + '/dl/js/cookieUtils.html?m=r&amp;n=token" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
    $('<iframe id="MyRaiTvLogin2" src="http://' + domain + '/dl/js/cookieUtils.html?m=r&amp;n=tokenExt" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));

    utils.cookie.remove('MyRaiTvUser', '/', HOST);
    utils.cookie.remove('token', '/', HOST);
    utils.cookie.remove('tokenExt', '/', HOST);

    $(document).trigger(MyRaiTV.events.userLoggedOut);
    MyRaiTV.userLogged = false;

    return false;
  },


  /**
   * Aggiunge un ContentItem alla playlist temporanea se un utente non è loggato
  function addPlaylistTemp() {
    if (vodOpzioni == false) {
      $('OL.vodOpzioni A.btnPlaylist').click(function() {
        if (!utils.cookie.get('MyRaiTvUser')) {
          setCookiePlaylistTemp($(this).attr('rel'));
        }
        return false;
      });
      vodOpzioni = true;
    }
    $('OL.tastiOpzioni A.btnPlaylist').click(function() {
      if (!utils.cookie.get('MyRaiTvUser')) {
        setCookiePlaylistTemp($(this).attr('rel'));
      }
      return false;
    });
    return false;
  },

   * @return {boolean} false.
   */
  addPlaylist: function(contentItem, source) {

    // utente loggato
    if (MyRaiTV.userLogged && source == 'page') {
      var optionShadowbox = {
        title: 'Aggiungi il media alla playlist',
        content: MyRaiTV.PATH_ADD_PLAYLIST + contentItem,
        player: 'iframe',
        width: 520,
        height: 250,
        options: { animate: false}
      };
      Shadowbox.init({
        skipSetup: true // skip the automatic setup
      });
      Shadowbox.open(optionShadowbox);

    } else {
      // utente non loggato, utilizza la playlist temporanea
      var playlistCookie = {};
      var title = $("meta[property='og:title']").attr('content');
      if (title == '' || title == null) {
        title = $('#idMedia').text();
      }

      var imgpath = $("meta[property='og:image']").attr('content');
      if (imgpath == undefined) {
        imgpath = $('#pathImgStat').text();
      }

      var programName = $("meta[name='programmaTV']").attr('content');
      if (programName == '' || title == programName) {
        programName = $('#' + contentItem + '>.Desc>.Lancio>H5').text();
      }

      var mediaType = $("meta[name='tipo']").attr('content');

      var date = $("meta[name='itemDate']").attr('content');

      var description = $("meta[property='og:description']").attr('content');

      if (utils.cookie.get('MyRaiTvPlaylistTemp')) {
        try {
          playlistCookie = $.evalJSON(
                            $.base64Decode(
                                utils.cookie.get('MyRaiTvPlaylistTemp')));
        } catch (e) {}
      }

      // il dato che specifica il tipo di programma (news, sport, ecc)
      //   non è presente nei meta tag

      if (typeof(playlistCookie[contentItem]) == 'undefined') {
        playlistCookie[contentItem] = {
          title: title,
          imgpath: imgpath,
          programName: programName,
          mediaType: mediaType,
          date: date,
          description: description
        };

        utils.cookie.set('MyRaiTvPlaylistTemp',
                         $.base64Encode($.toJSON(playlistCookie)),
                         '',
                         '/',
                         HOST,
                         '');

        $('html,body').animate({scrollTop: $('.boxMyRaitv').offset().top - 90});

        MyRaiTV.drawPlaylistTemp();

      } else {
        var optionShadowbox = {
          title: 'Playlist',
          content: '<div id="msg">' +
                        MyRaiTV.messages['playlistTempAlreadyExist'] +
                        '</div>',
          player: 'html',
          height: 150,
          width: 300,
          options: { animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);
      }
    }
    return false;
  },


  /**
  Crea l'html della playlist temporanea
  **/
  drawPlaylistTemp: function() {
    var playlistCookie, tempPanel, tempUl,
        j, id,
        title, imgpath, programName, mediaType, date, description;

    if (MyRaiTV.playListBox == null) {
      return;
    }

    playlistCookie = {};
    tempPanel = MyRaiTV.playListBox.find('.mid .videoContainer .listaVideo');

    if (utils.cookie.get('MyRaiTvPlaylistTemp')) {
      tempUl = $('<ul class="playlistTemp"></ul>');
      MyRaiTV.playListBox.show();
      tempPanel.empty().show().append(tempUl);

      try {
        // leggo il cookie in cui sono contenuti tutti i video
        // associati alla playlist temporanea
        playlistCookie = $.evalJSON(
                          $.base64Decode(
                              utils.cookie.get('MyRaiTvPlaylistTemp')));

        j = false;
        id = '';
        title = '';
        imgpath = '';
        programName = '';
        mediaType = '';
        date = '';
        description = '';

        for (j in playlistCookie) {
          id = j;
          title = playlistCookie[j].title;
          imgpath = playlistCookie[j].imgpath;
          programName = playlistCookie[j].programName;
          mediaType = playlistCookie[j].mediaType;
          date = playlistCookie[j].date;
          description = playlistCookie[j].description;



          var html = $('<li>' +
              '  <a class="del" href="#notarget">Elimina</a>' +
              '  <a class="img" href="#notarget">' +
              '    <img src="' + imgpath + '">' +
              '    <div class="mask">' +
              '      <span class="ico' + mediaType + '">' + mediaType +
              '</span>' +
              '      <em></em>' +
              '    </div>' +
              '  </a>' +
              '  <div class="Info">' +
              '    <h2><a class="txt" href="#notarget">' + title + '</a></h2>' +
              '    <h5 style="display: block">' + programName + '</h5>' +
              '    <p>' + description + '</p>' +
              '    <ol class="Specifiche">' +
              '      <li class="Pubblicato"><span>Pubblicato il</span>' + date +
                  '</li>' +
              '    </ol>' +
              '  </div>' +
              '</li>');

          html.find('a.del').click(function()
              {
                MyRaiTV.removeItemPlaylistTemp($(this), id);
              });

          tempUl.append(html);

        }

        try {
          var isIpad = (navigator.userAgent.match(/iPad/i));
          var isIphone = (navigator.userAgent.match(/iPhone/i));

          // jScrollPane inutilizzabile con il touch di safari
          if (!isIpad && !isIphone) {
            $('#tempPlaylist .scroll-pane').jScrollPane({
              showArrows: false,
              scrollbarWidth: 16,
              animateTo: true
            });
          }
        } catch (e) {}

        if (tempUl.find('>li').length == 0) {
          MyRaiTV.clearPlaylistTemp();
        }

        setReflection('.reflect');

      } catch (e) {
        console.log(e);
      }
    } else {
      MyRaiTV.playListBox.hide();
    }
  },

  removeItemPlaylistTemp: function(elem, Item) {
    var playlistCookie = {};
    if (utils.cookie.get('MyRaiTvPlaylistTemp')) {
      try {
        playlistCookie = $.evalJSON(
                          $.base64Decode(
                              utils.cookie.get('MyRaiTvPlaylistTemp')));
        delete playlistCookie[Item];
        utils.cookie.set('MyRaiTvPlaylistTemp',
                         $.base64Encode($.toJSON(playlistCookie)),
                         '',
                         '/',
                         HOST,
                         '');

        $(elem).parents('li').fadeOut(1000, function() {
          $(this).remove();
        });

      } catch (e) {
        console.log(e);
      }

    }
    // MyRaiTv.drawPlaylistTemp();
  },

  /**
   * Questa funzione visualizza il box per l'inserimento
   * del nome della playlist temporanea
   * corrente e manda una richiesta di salvataggio
   */
  savePlaylist: function() {

    var playListBox = $('.boxSpalla#tempPlaylist #savaplaylistBox');

    if (MyRaiTV.userLogged) {

      playListBox.find('#tempPlaylistMessageBox').empty().hide();
      playListBox.find('#tempPlaylistNameBox').show();


      playListBox.slideDown(600, function() {
        playListBox.find('#nomePlaylistTemp').focus(function() {
          if ($(this).val().trim() == MyRaiTV.playlistNameBoxDefaultText) {
            $(this).val('');
          }

          return false;
        });

        playListBox.find('#nomePlaylistTemp').blur(function() {
          if ($(this).val().trim().length == 0) {
            $(this).val(MyRaiTV.playlistNameBoxDefaultText);
          }

          return false;
        });

        playListBox.find('#myraitvsavesubmit').click(function() {
          MyRaiTV.sendPlaylistTemp();
          return false;
        });

        // all'apertura del box per inserire il nome della playlist e
        // salvarla, il tasto SALVA diviene il tasto ANNULLA e la sua
        // funzionalità diviene quella di richiudere il box appena aperto
        $('.boxSpalla#tempPlaylist .bot #playListSaveButton').
            text('Annulla').
            unbind('click').
            click(function() {
              playListBox.find('#nomePlaylistTemp').
                  val(MyRaiTV.playlistNameBoxDefaultText);
              playListBox.slideUp(600, function() {
                // premuto il tasto ANNULLA, il bottone ritorna
                // alla sua originale funzione
                $('.boxSpalla#tempPlaylist .bot #playListSaveButton').
                    text('Salva').
                    unbind('click').
                    click(function() {
                      MyRaiTV.savePlaylist();
                    });
              });
            });

      });
    } else {
      playListBox.find('#tempPlaylistMessageBox').
          html(MyRaiTV.messages['playlistSaveNoLogin']).show();
      playListBox.find('#tempPlaylistNameBox').hide();
      playListBox.slideDown(600).delay(3000).slideUp(600);

    }
  },

  sendPlaylistTemp: function() {
    var playlistCookie = {};
    var playlistTempString = '';
    try {
      playlistCookie = $.evalJSON(
                        $.base64Decode(
                            utils.cookie.get('MyRaiTvPlaylistTemp')));
    } catch (e) {}

    for (j in playlistCookie) {
      playlistTempString += j + '^';
    }
    playlistTempString = playlistTempString.
        substring(0, playlistTempString.length - 1);

    var valori = {
      'username': MyRaiTvNickname,
      'confirmKey': MyRaiTvUserCode,
      'domain': 'RaiTv',
      'playlistName': $('#tempPlaylistNameBox #nomePlaylistTemp').val(),
      'contents': playlistTempString
    };

    playListBox = $('.boxSpalla#tempPlaylist #savaplaylistBox');
    var savePlayListMessage = '';

    $.ajax({
      type: 'POST',
      url: MyRaiTV.PATH_SAVE_PLAYLIST_TEMP,
      data: valori,
      dataType: 'text',
      success: function(result) {
        if (result == 'ok') {
          savePlayListMessage = MyRaiTV.messages['playlistSaveOK'];
          MyRaiTV.clearPlaylistTemp();
        } else {
          savePlayListMessage = MyRaiTV.messages['playlistSaveKO'];
        }
      },
      error: function(result) {
        savePlayListMessage = MyRaiTV.messages['playlistSaveKO'];
      },
      complete: function() {
        // il tasto ANNULLA ridivente SALVA
        $('.boxSpalla#tempPlaylist .bot #playListSaveButton').text('Salva').
            unbind('click').
            click(function() {
              MyRaiTV.savePlaylist();
            });

        playListBox.find('#tempPlaylistNameBox').fadeOut(600, function() {
          playListBox.find('#tempPlaylistMessageBox').
              text(savePlayListMessage).fadeIn(600, function() {
                playListBox.delay(3000).slideUp(600);
              });
        });
      }
    });
  },

  /**
  Svuota la playlist temporanea
  **/
  clearPlaylistTemp: function()
  {
    var tempPanel;
    utils.cookie.remove('MyRaiTvPlaylistTemp', '/', HOST);

    tempPanel = MyRaiTV.playListBox.find('.mid .videoContainer .listaVideo');

    tempPanel.fadeOut(1000, function() {
      $(this).html('<ul class="playlistTemp"><li><h4>' +
                   MyRaiTV.messages['playlistTempEmpty'] +
                   '</h4></li></ul>').
          fadeIn(1000).
          delay(1000, function() {
            MyRaiTV.playListBox.hide();
          });

      var isIpad = (navigator.userAgent.match(/iPad/i));
      var isIphone = (navigator.userAgent.match(/iPhone/i));

      // jScrollPane inutilizzabile con il touch di safari
      if (!isIpad && !isIphone) {
        $('#tempPlaylist .scroll-pane').jScrollPane({
          showArrows: false,
          scrollbarWidth: 16,
          animateTo: true
        });
      }
      return false;
    });
  },

  addFavourite: function(item) {
    var user = MyRaiTV.getUser();
    var valori = {'username' : user.username, 'confirmKey': user.confirmKey, 'domain' : 'RaiTv', 'localId' : item};
    var optionShadowbox = {};
    $.ajax({
      url: MyRaiTV.PATH_SAVE_FAVOURITE,
      type: 'POST',
      dataType: 'text',
      data: valori,
      success: function(result) {
        if (result == 'ok') {
          optionShadowbox = {
            title: 'Preferiti',
            content: '<div id="msg">' + MyRaiTV.messages['favouriteAddItemOK'] + '</div>',
            player: 'html',
            height: 100,
            width: 300,
            options: { animate: false}
          };
          MyRaiTV.messageShadowbox(optionShadowbox);
        } else {
          var mex = MyRaiTV.messages['favouriteAddItemKO'];
          if (result == 'esistente') {
            mex = MyRaiTV.messages['favouriteAddItemExist'];
          }
          optionShadowbox = {
            title: 'Preferiti',
            content: '<div id="msg">' + mex + '</div>',
            player: 'html',
            height: 100,
            width: 300,
            options: { animate: false}
          };
          MyRaiTV.messageShadowbox(optionShadowbox);
        }
      },
      error: function(result) {
        optionShadowbox = {
          title: 'Preferiti',
          content: '<div id="msg">' + MyRaiTV.messages['favouriteAddItemKO'] + '</div>',
          player: 'html',
          height: 100,
          width: 300,
          options: { animate: false}
        };
        MyRaiTV.messageShadowbox(optionShadowbox);
      }
    });

  }
};


/******************** FINE OGGETTO MyRaiTV *******************************/

/**
 * Funzione chiamata al click di un link nelle pagine di raitv,
 * legata direttamente nell'html.
 * @param {String} itemId L'id dell'item raitv da aggiungere alla playlist.
 * @return {boolean} false.
 */
function addPlaylist(itemId) {
  return MyRaiTV.addPlaylist(itemId, 'page');
}


/**
 * Effettua immediatamente il controllo sulla raggiungibilita' del
 * servizio MyRaiTV
 */

MyRaiTV.init();
MyRaiTV.checkServiceAvailable();

$(function(){
  MyRaiTV.init();
  MyRaiTV.drawPlaylistTemp();
});

/**
 * La funzione "login" viene chiamata anche da altri:
 * manteniamo il riferimento valido.
 */
function login() {
  MyRaiTV.checkLogin();
}

function addFavourites(item) {
  MyRaiTV.addFavourite(item);
}
function removeFavoutites(item) {
	console.log('legacy removeFavoutites called');
	return MyRaiTV.Favourites.removeFavourites();
}

/* *** Vecchie funzioni MyRaiTV *** */


/**
setta tutte le funzioni del box MyRaiTV dalla login al recupera password
**/
function loginControlPanel() {
  $('#myraitvusername').focus(function() {
    $('#myraitvusername').val('');
    return false;
  });
  $('#myraitvpass').focus(function() {
    $('#myraitvpass').val('');
    return false;
  });
  // $(".lostPass").click(function() {
  //   $(".loginMyraitv").hide();
  //   $(".recuperaPwdMyraitv").show();
  //   return false;
  // });
  $('.backLogin').click(function() {
    $('.recuperaPwdMyraitv').hide();
    $('.loginMyraitv').show();
    return false;
  });
  $('#myraitvemail').focus(function() {
    $('#myraitvemail').val('');
    return false;
  });
  $('#myraitvsubmitemail').click(function() {
    var optionShadowbox = {};
    if ($('#myraitvemail').val() != 'E-mail' && /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($('#myraitvemail').val()))
    {
      $.post(PATH_RETRIEVE_LOGIN_DATA, {email: $('#myraitvemail').val()},
          function(data) {
            if (data == 'ok')
            {
              optionShadowbox = {
                title: 'Recupero Login',
                content: '<div id="msg">' + MyRaiTV.messages['retrieveEmailOK'] + '</div>',
                player: 'html',
                height: 100,
                width: 300,
                options: { animate: false}
              };
            } else {
              optionShadowbox = {
                title: 'Recupero Login',
                content: '<div id="msg">' + MyRaiTV.messages['retrieveEmailKO'] + '</div>',
                player: 'html',
                height: 100,
                width: 300,
                options: { animate: false}
              };
            }
            MyRaiTV.messageShadowbox(optionShadowbox);
          });
    } else {
      optionShadowbox = {
        title: 'Recupero Login',
        content: '<div id="msg">' + MyRaiTV.messages['retrieveEmailERROR'] + '</div>',
        player: 'html',
        height: 100,
        width: 300,
        options: { animate: false}
      };
      MyRaiTV.messageShadowbox(optionShadowbox);
    }
    return false;
  });
  $('#myraitvsubmit').click(function() {
    var myUsername = $('#myraitvusername').val();
    if (myUsername != 'Utente' && $('#myraitvpass').val() != 'Pass') {
      $.post(PATH_LOGIN, {username: $('#myraitvusername').val(), password: $('#myraitvpass').val() },
          function(data) {
            var result = $.trim(data).split('-');
            var esito = 0;
            if (result.length > 1) {
              result = [result[0], result.slice(1).join('-')];
            }
            // try {console.log({array: result});}catch(e){}
            if (result.length > 1 && /\({.*}\);/.test(result[1])) {

              var json = result[1].replace(/\(({.*})\);/, '$1');
              // try {console.log({string: json});}catch(e){}
              try {
                eval('json = ' + json + ';');
              } catch (e) {
                json = {'error': 'error'};
              }
              try {console.log(json);}catch (e) {}
              if (!!json.redirect) {
                var text = '';
                var u = decodeURIComponent(json.redirect);
                u += (/[\?#]/.test(u)) ? '&' : '?';
                u += 'ref=' + encodeURIComponent('' + document.location);
                if (!!json.message && !!MyRaiTV.messages['userAlteredMessages'][json.message]) {
                  text += '<p>' + MyRaiTV.messages['userAlteredMessages'][json.message].replace('#url#', u) + '</p>';
                } else {
                  text += '<p>' + MyRaiTV.messages['userAlteredDuringImport'].replace('#url#', u) + '</p>';
                }
                var msgStyle = '<style type="text/css">#msg p {text-align: left; font-size: 16px;} #msg a, #msg a:link, #msg a:visited {color:#fff; text-decoration: underline;} #msg a:hover, #msg a:active {color: #ccc;}</style>';
                var optionShadowbox = {
                  title: 'Login',
                  content: msgStyle + '<div id="msg">' + text + '</div>',
                  player: 'html',
                  height: 250,
                  width: 640,
                  options: {animate: false}
                };
                MyRaiTV.messageShadowbox(optionShadowbox);
                return;
              } else if (!!json.token) {
                var t = json.token;
                var d = t + '-' + myUsername;

                utils.cookie.set('MyRaiTvUser', d, '', '/', HOST, '');
                utils.cookie.set('token', t, '', '/', HOST, '');
                utils.cookie.set('tokenExt', t, '', '/', HOST, '');

                $('iframe#MyRaiTvLogin,iframe#MyRaiTvLogin2,iframe#MyRaiTvLogin3,iframe#MyRaiTvLogin4').remove();
                var domain = 'www.rai.tv';
                if (/rai.tv/i.test('' + document.location)) {
                  domain = 'www.rai.it';
                }
                $('<iframe id="MyRaiTvLogin" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=MyRaiTvUser&amp;c=' + d + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
                $('<iframe id="MyRaiTvLogin2" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=token&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
                $('<iframe id="MyRaiTvLogin4" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=tokenExt&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));

                esito = 1;
                login(esito);

              } else {
                esito = 3;
                login(esito);
              }
            } else if (result.length > 1) {
              var t = data.split('-');
              t = t[0];
              utils.cookie.set('MyRaiTvUser', data, '', '/', HOST, '');
              utils.cookie.set('token', t, '', '/', HOST, '');
              utils.cookie.set('tokenExt', t, '', '/', HOST, '');

              $('iframe#MyRaiTvLogin,iframe#MyRaiTvLogin2,iframe#MyRaiTvLogin3,iframe#MyRaiTvLogin4').remove();
              var domain = 'www.rai.tv';
              if (/rai.tv/i.test('' + document.location)) {
                domain = 'www.rai.it';
              }
              $('<iframe id="MyRaiTvLogin" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=MyRaiTvUser&amp;c=' + data + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
              $('<iframe id="MyRaiTvLogin2" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=token&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));
              $('<iframe id="MyRaiTvLogin4" src="http://' + domain + '/dl/js/cookieUtils.html?m=s&amp;n=tokenExt&amp;c=' + t + '" frameborder="0" style="width: 1px; height: 1px; position: absolute; left: -100px; top: -100px; overflow: hidden;"></iframe>').appendTo($('body'));

              esito = 1;
              login(esito);
            } else if (result[0] == 'nonvalido') {
              esito = 2;
              login(esito);
            } else {
              esito = 3;
              login(esito);
            }
            // Segnalo che e' stato fatto il login a myraitv.
            // Per ricevere l'evento: $(document).bind('myRaiTv.loggedIn', function(){alert('boo! :P'});
            // es: gestione commenti
            $(document).trigger('myRaiTv.loggedIn');
          });
    } else {
      var optionShadowbox = {
        title: 'Login',
        content: '<div id="msg">' + MyRaiTV.messages['loginERROR'] + '</div>',
        player: 'html',
        height: 100,
        width: 300,
        options: { animate: false}
      };
      MyRaiTV.messageShadowbox(optionShadowbox);
    }
    return false;
  });
}



/**
Accordion del box MyRaiTV presente in tutte le pagine di RaiTV
**/
function setAccordion(val) {
  $('UL.drawers>LI.drawer>div.drawer-container:not(:eq(' + val + '))').slideUp('fast');
  $('UL.drawers>LI.drawer>H2:eq(' + val + ')').addClass('open');
  $('H2.drawer-handle').click(function() {
    if ($(this).next().css('display') == 'none') {
      $(this).parents('.drawers').children('.drawer').children('h2').removeClass('open').next().slideUp('slow');
      $(this).addClass('open').next().slideDown('slow');
    }
  });
}


/**
Setta i valori della playlist temporanea in un cookie
**/
function setCookiePlaylistTemp(contentItem) {

}








/**
Crea l'html del menu MyRaiTV
**/
function drawMyRaiTvMenu() {
  var html = '';
  html = '<div id="myraitvHeader"><ul class="Opzioni"><li>Ciao ' + MyRaiTvNickname + '</li><li><a href="/dl/community/articolo/ContentItem-6ae96bc9-4570-431c-a6fd-0155a45eb1d4.html">Modifica i tuoi dati</a></li><li><a href="http://www.community.rai.it/dl/community/articolo/ContentItem-6ae96bc9-4570-431c-a6fd-0155a45eb1d4.html#ajax_profile_embed=%2Fembed%2Fletters%2Findex%2Fmailto%3Aadmin_rai_community">Contatta il moderatore</a></li><li><a href="#" onclick="logout(); return false;">Esci da MyRai.tv</a></li></ul><a href="#" class="logoMyRaitv"><h2 class="solotesto">MyRai.tv</h2></a><ul class="Menu"><li><a href="/dl/RaiTV/MyRaiTV/homeMyRaiTv.html">My home</a></li><li><a href="/dl/RaiTV/MyRaiTV/myPlaylists.html">Le mie Playlist</a></li><li><a href="/dl/RaiTV/MyRaiTV/myPrograms.html">I miei programmi</a></li><li><a href="/dl/RaiTV/MyRaiTV/myFavourites.html">Preferiti</a></li></ul></div>';
  $('.Main').prepend(html);
}

function messageShadowbox(optionOpen) {
  MyRaiTV.messageShadowbox(optionOpen);
}
var MyRaiTvUserCodeComplete = '';
var MyRaiTvUserCode = '';
var MyRaiTvNickname = '';
var vodOpzioni = false;
var menu = false;

