var $main = $("#Changing");
var $metaNav = $("#metaNav");
var $log = $("#userLog");
- tooltip_options = {
- position: {
- my: "center bottom-5",
- at: "center top",
- using: function( position, feedback ) {
- $( this ).css( position );
- $( "<div>" )
- .addClass( "arrow" )
- .addClass( feedback.vertical )
- .addClass( feedback.horizontal )
- .appendTo( this );
- }
- }
- };
-
- $('.newsRoll').tooltip(tooltip_options);
- $('#metaNav').tooltip(tooltip_options);
/****************************************************/
/**** AJAX UTILITIES FOR REQUESTS ****/
};
var loadPage_request = null;
afterLoad = function(html, textStatus, XMLHttpRequest) {
+ $('#loading-page').addClass('fade');
loadPage_request = null;
if (textStatus == "error") {
doLog('Sorry! And error occur when loading page content','error');
};
$(window).on("popstate", function(e) {
- if (e.originalEvent.state !== null) {loadPage(location.href, false);}
+ loadPage(location.href, false);
});
loadPage = function(href, push_state) {
if (loadPage_request !== null) {
loadPage_request.abort();
}
+ $('#loading-page').remove();
+ $('<div id="loading-page"></div>').prependTo($('#All'));
loadPage_request = $.ajax({
url: href,
success: afterLoad,
$(this).unbind('click');
$(this).bind('click',function(e){
var href = $(this).attr("href");
- if (href.match('\.(pdf|odt|ods|doc|xls|docx|xlsx|rtf)$')) {
- /* open files */
+ if (e.which == 2) {
window.open(href, '_blank');
return false;
}
- if (e.which == 2) {
- window.open(href, '_blank');
+ if (href.match('\.(pdf|odt|ods|doc|xls|docx|xlsx|rtf|zip|rss|atom)$')) {
+ /* open files */
+ window.location = href;
return false;
}
$(this).addClass('loading');
/****************************************************/
var timer = null;
- var refresh_onair_interval = 25000;
var ticker_interval = null;
- /*
- //TODO: mini icon version for player, (playpause only)
- $('#togglePlayer').on('click',function(e) {
- e.preventDefault();
- if($(this).is('.icon-double-angle-left')){
- $("#player").fadeOut('fast',function(){
- $("#player-container").toggleClass('minimized');
- $('#togglePlayer').toggleClass('icon-double-angle-left icon-double-angle-right');
- });
- }else{
- $("#player").fadeIn('fast',function(){
- $("#player-container").toggleClass('minimized');
- $('#togglePlayer').toggleClass('icon-double-angle-left icon-double-angle-right');
- });
- }
- return false;
- });
- */
$('#WhatsOnAir').on('load',function(){
var WhatsOnAir = $(this);
- $('#RefreshWhatsOnAir').addClass('spinning');
$.getJSON('/onair.json', function(onair) {
- setTimeout(function() { $('#RefreshWhatsOnAir').removeClass('spinning'); }, 5000);
var onairContainer = $('<span>');
if(onair.data.episode || onair.data.emission) {
if(onair.data.emission){
$('<a>',{href:onair.data.episode.url,html:onair.data.episode.title}).appendTo(onairContainer).ajaxifyClick();
}
} else if (onair.data.nonstop) {
- onairContainer = $('<span>' + onair.data.nonstop.title + '</span>');
+ if (onair.data.nonstop.url) {
+ onairContainer = $('<a href="' + onair.data.nonstop.url + '">' + onair.data.nonstop.title + '</a>');
+ } else {
+ onairContainer = $('<span>' + onair.data.nonstop.title + '</span>');
+ }
if (onair.data.track_title) {
$('<span> - </span>').appendTo(onairContainer);
$('<span class="nonstop-track-title">' + onair.data.track_title + '</span>').appendTo(onairContainer);
else {
onairContainer = $('<span>Unknown (Probably Non-Stop)</span>');
}
+ if (onair.data.emission && onair.data.emission.chat) {
+ $('#CurrentlyChatting a').attr('href', onair.data.emission.chat);
+ $('#CurrentlyChatting').show();
+ } else {
+ $('#CurrentlyChatting').hide();
+ }
var current_html = WhatsOnAir.html();
var new_html = '<span>' + onairContainer.html() + '</span>';
if (new_html !== current_html) {
}
});
});
- $('#RefreshWhatsOnAir').on('activate',function(e){
- $('#WhatsOnAir').trigger('load');
- timer = setInterval( "$('#WhatsOnAir').trigger('load');", refresh_onair_interval);
- }).on('deactivate',function(e){
- $(this).removeClass('spinning');
- $('#WhatsOnAir').removeClass('active');
- clearInterval(timer);
- }).on('click',function(e){
- $(this).toggleClass('active');
- if($(this).is('.active')){
- $(this).trigger('deactivate');
- }else{
- $(this).trigger('activate');
- }
- return false;
- }).trigger('activate');
+ $('#WhatsOnAir').trigger('load');
+ var refresh_onair_interval = 25000;
+ setInterval("$('#WhatsOnAir').trigger('load');", refresh_onair_interval);
$("#DirectStreamPanikControler").on('click',function(e) {
e.preventDefault();
var stream = $('#DirectStreamPanik').get(0);
$('#DirectStreamPanik').on('play',function(){
$('audio:not(#DirectStreamPanik)').each(function(){this.pause();});
$('#streamSymbol').removeClass('icon-volume-up').addClass('icon-pause');
- $('#RefreshWhatsOnAir').trigger('activate');
}).on('pause',function(){
//$('audio:not(#DirectStreamPanik)').each(function(){this.pause();});
$('#streamSymbol').addClass('icon-volume-up').removeClass('icon-pause');
topPosition = $('#mainHeader > div').offset().top + $('#mainHeader > div').height();
$(window).bind('scroll load',function (event) {
//$('#player-container').removeClass('fixed');
- var y = $(this).scrollTop() + 40;
+ var y = $(this).scrollTop() + 60;
if (topPosition!== 0 && y >= topPosition) {
$('#player-container').addClass('fixed').removeClass('normal');
} else {
activeTab.trigger('load');
});
$('[data-player-action]').on('click',function(){
- var audio = $('#'+$(this).attr('data-player-audio'));
+ var audio = $('audio[data-sound-id=' + $(this).attr('data-sound-id') + ']');
var sound_id = audio.data('sound-id');
if($(this).attr('data-player-action') == "registerAudio"){
- $localList.playlist("registerAudio",audio,doLog(audio.attr('title')+' has been added to your playlist.','ok'));
+ $localList.playlist("registerAudio",audio);
}else if($(this).attr('data-player-action') == "playAudio"){
- $localList.playlist("registerAudio",audio,doLog(audio.attr('title')+' will play soon.','ok'));
- $localList.playlist("playSoundId", sound_id);
- if ($(this).parent().find('.icon-pause').length) {
- $(this).hide();
- $(this).parent().find('.icon-pause').show();
+ if ($(this).hasClass('icon-play-sign')) {
+ $localList.playlist("registerAudio",audio);
+ $localList.playlist("playSoundId", sound_id);
+ if ($(this).parent().find('.icon-pause').length) {
+ $(this).hide();
+ $(this).parent().find('.icon-pause').show();
+ }
+ } else {
+ $localList.playlist('pauseSounds');
}
}else if ($(this).attr('data-player-action') == "pauseSounds") {
if ($(this).parent().find('.icon-play-sign').length) {
}
});
$('[data-player-control]').each(function(){
- var audio = $('#'+$(this).attr('data-player-audio'));
+ var audio = $('audio[data-sound-id=' + $(this).attr('data-sound-id') + ']');
$localList.playlist("bindControl",$(this).attr('data-player-control'),audio,$(this));
});
return false;
});
- if ($('input#id_q').val() == '') {
- $('input#id_q').focus();
+ if ($('#search-form.big input#id_q').val() == '') {
+ $('#search-form.big input#id_q').focus();
}
$('#ticker li:not(:first)');
$('#nav-search a').unbind('click').on('click', navsearch_click);
$('#nav-search form').unbind('submit').on('submit', navsearch_click);
+ if ($('.bg-title').length) {
+ var bg_title = $('<span id="bg-title" aria-hidden="true"></span>');
+ bg_title.text($('.bg-title').text());
+ $('#Changing').append(bg_title);
+ }
$('[data-toggle-img]').bind('click', function() {
var src = $(this).data('toggle-img');
$(this).data('toggle-img', $(this).attr('src'));
if (matching_audio.length == 0) return;
matching_audio = matching_audio[0];
if (matching_audio.paused || matching_audio.ended) {
- /* ignore */
+ $(this).parents('.sound').find('.icon-play-sign').click();
return;
}
/* try to set time */
return false;
});
+ if ($('.sound + .content .text ').length) {
+ var text_content = $('.sound + .content .text')[0];
+ text_content.innerHTML = text_content.innerHTML.replace(
+ /[0-9][0-9]+:[0-9][0-9]/g,
+ function(x) { return '<span class="timestamp">' + x + "</span>"; });
+ $(text_content).find('span.timestamp').on('click', function() {
+ var $waveform = $('div.waveform').first();
+ var sound_id = $waveform.prev().data('sound-id');
+ var total_duration = parseFloat($waveform.data('duration'));
+ var nb_ticks = $waveform.find('span').length;
+ var timestamp = $(this).text().split(':');
+ var timestamp_position = timestamp[0] * 60 + timestamp[1] * 1;
+ var tick_idx = parseInt(nb_ticks * timestamp_position / total_duration);
+ // play, then set rough position
+ $('.episode.detail .icon-play-sign').first().trigger('click');
+ var matching_audio = $('audio[data-sound-id=' + sound_id + ']');
+ matching_audio[0].currentTime = timestamp_position;
+ });
+ }
+
if (document.cookie.indexOf('panikdb=on') != -1) {
panikdb_path = null;
if (window.location.pathname.indexOf('/emissions/') == 0) {
});
/* CHAT */
- var $chat = $('#chat');
- if ($chat.length) {
+ if ($('#chat').length) {
+ $('#player').addClass('on-chat-page');
+ var moderator = ($('#panikdb').length > 0);
var $msg = $('input#msg');
var $send = $('button#send');
var chat_roster = Object();
- if (window.localStorage['pa-nick'] !== undefined) {
- $('.nick input').val(window.localStorage['pa-nick']);
+ if (moderator) {
+ $('#chat').addClass('moderation');
+ $('#chat').on('click', 'span.from', function() {
+ var name = $(this).text();
+ if (confirm('Kick ' + name + ' ?')) {
+ var muc = $('div#chat').data('chatroom');
+ connection.muc.kick(muc + '@conf.panik', name,
+ 'no reason',
+ function(iq) {
+ },
+ function(iq) {
+ doLog('error kicking', 'error');
+ }
+ );
+ }
+ });
}
$('.nick input').on('keydown', function(ev) {
$('.nick button').on('click', function() {
window.localStorage['pa-nick'] = $('.nick input').val();
var nick = window.localStorage['pa-nick'];
+ $('.commands .prompt').text(nick + '>');
connection = new Strophe.Connection("/http-bind");
connection.connect('im.panik', null, function(status, error) {
} else {
klass = 'msg-in';
}
- var new_msg = $('<div class="msg new ' + klass + '"><span class="from">' + from + '</span> <span class="content">' + msg.textContent + '</span></div>').prependTo($chat);
+ var new_msg = $('<div class="msg new ' + klass + '"><span class="from">' + from + '</span> <span class="content">' + msg.textContent + '</span></div>').prependTo($('#chat'));
new_msg[0].offsetHeight; /* trigger reflow */
new_msg.removeClass('new');
$('div#chat div:nth-child(20)').remove()
return true;
},
function(pres) {
+ var nick = $('.nick input').val()
+ var muc = $('div#chat').data('chatroom');
+ if (pres.getElementsByTagName('status').length == 1 &&
+ pres.getElementsByTagName('status')[0].attributes &&
+ pres.getElementsByTagName('status')[0].attributes.code &&
+ pres.getElementsByTagName('status')[0].attributes.code.value == '307') {
+ /* kicked */
+ var kicked = pres.getElementsByTagName('item')[0].attributes.nick.value;
+ var new_msg = $('<div class="msg info new"><span class="content">' + kicked + ' a été mis dehors.</span></div>').prependTo($('#chat'));
+ new_msg[0].offsetHeight; /* trigger reflow */
+ new_msg.removeClass('new');
+ if (kicked == nick) {
+ connection.disconnect();
+ $('div.nick').css('visibility', 'hidden');
+ }
+ }
if (pres.getElementsByTagName('conflict').length == 1) {
- var nick = $('.nick input').val()
$('.nick input').val(nick + '_');
connection.disconnect();
$('.nick button').trigger('click');
if (chat_roster[nick] == true) {
for (contact in roster) {
if (chat_roster[contact] !== true) {
- var new_msg = $('<div class="msg info new"><span class="content">' + contact + ' est dans la place.</span></div>').prependTo($chat);
+ var new_msg = $('<div class="msg info new"><span class="content">' + contact + ' est dans la place.</span></div>').prependTo($('#chat'));
new_msg[0].offsetHeight; /* trigger reflow */
new_msg.removeClass('new');
}
return true;
});
+ if (window.localStorage['pa-nick'] !== undefined) {
+ $('.nick input').val(window.localStorage['pa-nick']);
+ $('.nick button').click();
+ }
+
$(window).on('beforeunload', function() {
if (connection) { connection.disconnect(); }
});
+ } else {
+ $('#player').removeClass('on-chat-page');
}
}
init();
var konami = new Konami('/party');
+ $(document).on('panik:play', function(ev, data) {
+ var $page_audio_controls = $('#Main').find('div.audio[data-sound-id="' + data.sound_id + '"]');
+ $page_audio_controls.find('.icon-play-sign').removeClass('icon-play-sign').addClass('icon-pause');
+ });
+
+ $(document).on('panik:pause', function(ev, data) {
+ var $page_audio_controls = $('#Main').find('div.audio[data-sound-id="' + data.sound_id + '"]');
+ $page_audio_controls.find('.icon-pause').removeClass('icon-pause').addClass('icon-play-sign');
+ });
+
+
$(document).on('panik:timeupdate', function(ev, data) {
+ var $page_audio_controls = $('#Main').find('div.audio[data-sound-id="' + data.sound_id + '"]');
+ $page_audio_controls.find('.icon-play-sign').removeClass('icon-play-sign').addClass('icon-pause');
$waveform = $('#Main div.waveform[data-sound-id="' + data.sound_id + '"]');
var elems = $waveform.find('span');
var total_elems = elems.length;