/* ----------------------------------------------- Globale Variablen */

now = new Date();
virgin = true;
lastIn = now.getTime();
lastOut = lastIn;
timeTaking = false;
inbackground = false;
webcamtab = false;
webcam2active = "TRUE";
adplaying = false;
advirgin = true;

if ($.browser.msie) {
	document.onfocusin = onFocusCheck;
	document.onfocusout = onBlurCheck;
} else {
	window.onfocus = onFocus;
	window.onblur = onBlur;
}

/* -------------------------------------------------------------- */
/* ----------------------------------------------- "on DOM ready" */
/* -------------------------------------------------------------- */

$(document).ready(function(){
  
  setInterval("refreshtime()", 5000);
  setInterval("refreshplaylist()", 180000);
  setInterval("refreshwebcamtab()", 180000);
  if (!FlashDetect.versionAtLeast(9,0,115)) {
    $('#flashwarning').show();
  }  
    
  
/* ----------------------------------------------- Playlisten-Auswahlfelder */

  $('#pll-chooser select').change(function(){
    var myday = $('#ppl-daychooser')[0].value;
    var myhour = $('#ppl-hourchooser')[0].value;
    refreshplaylist(myday,myhour);
  });
  
/* ----------------------------------------------- Mailform   */
  
  $('#mailform input[type=submit]').click(function(){
    
    $.ajax({
      type: 'POST',
      url: "studiomail.php",
      data: { send: "1", website: $('#formwebsite')[0].value, name: $('#formname')[0].value, mail: $('#formmail')[0].value, message: $('#formmessage')[0].value },
      success: function(data){
       $('#mailalert').text(data).show().fadeOut(2000, function(){
         $(this).hide();
       });
        if (data == 'Erfolgreich versendet!') {
          $('#formname, #formmail, #formmessage').attr('value','');
        }
      }
    });
    return false;
  });

  /* ----------------------------------------------- Kanal wechseln */

  $('.stationbutton').click(function(){
     if (!$(this).hasClass('active')) {
       countivw();
       switchTo(this);
     } 
     $('#header li').removeClass('active');
     $('.panel').removeClass('panelactive');
     $('#header li:first-child').addClass('active');
     $('#programm').addClass('panelactive');
     return false;
   });

  /* ----------------------------------------------- Panel wechseln */

  $('#header li').click(function(){
  
    if ($(this).find('a')[0].id != "helpexternal") {
      if (!adplaying && !$(this).hasClass('active')) {
        countivw();
        $('#header li').removeClass('active');
        $('.panel').removeClass('panelactive');
    
        $(this).addClass('active');
        var mytab = $(this).find('a')[0].href;
        mytab = mytab.substring(mytab.indexOf('#'));
        $(mytab).addClass('panelactive');
        if ($(mytab).attr('id') == "webcam") {
          webcamtab = true;
        } else {
          webcamtab = false;
        }
      }
      return false;
    }
  });
  
  /* ----------------------------------------------- Socialbar   */

    $('#socialbar a').click(function(){
      var artist = $('#interpret').text();
      var song = $('#title').text();
      var station = " " + $('.stationbutton.active h2').next().text();
      if (station.indexOf("Rock Nonstop") >= 0) {
        station = "";
      }
      var nowidth = false;
      if (this.id == "icon-twitter") {
        width = 980;
        height = 370;
        if (artist != "") {
          url = "http://twitter.com/home?status=Ich+hoere+gerade+'"+song+"'+von+"+artist+"+auf+ROCK+ANTENNE"+station+"+@rockantenne.";
        } else {
          url = "http://twitter.com/home?status=Ich+hoere+gerade+ROCK+ANTENNE"+station+"+@rockantenne";
        }
      }    
      if (this.id == "icon-facebook") {
        width = 1008;
        height = 390;
        if (artist != "") {
          url = "http://www.facebook.com/dialog/feed?app_id=249295485103104&link=http://www.facebook.com/rockantenne&picture=http://rockantenne.de/webplayer/img/fb.png&name=Hier%20geht's%20zur%20ROCK%20ANTENNE&caption=100%20%%20Rock%20nonstop&description=Ich%20hoere%20gerade%20'"+song+"'%20von%20"+artist+"%20auf%20ROCK%20ANTENNE"+station+",%20Bayerns%20Rock%20Radio%20Nr.%201!&redirect_uri=http://rockantenne.de/webplayer/facebook.php";
        } else {
          url = "http://www.facebook.com/dialog/feed?app_id=249295485103104&link=http://www.facebook.com/rockantenne&picture=http://rockantenne.de/webplayer/img/fb.png&name=Hier%20geht's%20zur%20ROCK%20ANTENNE&caption=100%20%%20Rock%20nonstop&description=Ich%20hoere%20gerade%20ROCK%20ANTENNE"+station+",%20Bayerns%20Rock%20Radio%20Nr.%201!&redirect_uri=http://rockantenne.de/webplayer/facebook.php";
        }
      }
      /*
      if (this.id == "icon-buzz") {
        width = 700;
        height = 310;
        if (artist != "") {
          url = "http://www.google.com/buzz/post?url=http://www.google.com/buzz&message=Ich+hoere+gerade+'"+song+"'+von+"+artist+"+auf+ROCK+ANTENNE+"+station+"+(www.rockantenne.de).";
        } else {
          url = "http://www.google.com/buzz/post?url=http://www.google.com/buzz&message=Ich+hoere+gerade+ROCK+ANTENNE+"+station+"+(www.rockantenne.de)";
        }
      }
      */
      if (this.id == "icon-amazon" || this.id == "text-buy") {
        if (artist != "") {
          url = "http://www.amazon.de/gp/search?ie=UTF8&keywords="+artist+"%20"+song+"&tag=ra07-21&index=music&linkCode=ur2&camp=1638&creative=6742";
        } else {
          url = "http://www.amazon.de/gp/search?ie=UTF8&keywords=Rock&tag=ra07-21&index=music&linkCode=ur2&camp=1638&creative=6742"
        }
        nowidth = true;
      }
      if (!nowidth) {
        window.open(url, "Status", "width="+width+",height="+height);
      } else {
        window.open(url);
      }
      return false;
    });
  
  
});

/* ---------------------------------------------------------- */
/* ----------------------------------------------- Funktionen */
/* ---------------------------------------------------------- */



/* ----------------------------------------------- Init Startradio */

function startRadio() {
  advirgin = false;
  adplaying = false;
  $('#adplayer, #waiting').remove();
  $('#hidecheck').remove();
  
  switchTo($('.stationbutton.active')[0]);
  refreshsongs();
  setInterval("refreshsongs()", 15000);
  setInterval("refreshwebcam()", 60000);
}


/* ----------------------------------------------- Flashtalking Events */

function wr_go() {
  startRadio(); 
}

function checkAdplayer() {
  if (!adplaying && advirgin) { startRadio(); }
}

function wr_countdown(time) {
  if (adplaying == false) {
    adplaying = true;
    advirgin = false;
    $('#adplayer').append('<div id="adcountdown">Diese Anzeige endet in <span>'+time+'</span> Sekunden …</div>');
  } else {
    $('#adcountdown span').text(time);
  }
  
}


/* ----------------------------------------------- RTMP Check */

function checkRTMP() {
  $('#hidecheck').html('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="rtmpcheck" width="1" height="1"><param name="movie" value="flash/rtmpcheck.swf" /><!--[if !IE]>--><object type="application/x-shockwave-flash" data="flash/rtmpcheck.swf"  width="1" height="1"></object><!--<![endif]--></object>');
}

/* ----------------------------------------------- Gallery-Init */

function startSpaceGallery() {
  if ($('#stage img').length > 1) {
    $('#stage').spacegallery({
      loadingClass: 'loading',
      duration: '500',
      perspective: '100'
    }).find('img').addClass('spaced');
  }
}

/* ----------------------------------------------- Show only WinMedia for older Flashversions */

function flashCheck() {
  if (!FlashDetect.versionAtLeast(9,0,115)) {
    if ($.browser.msie) {
      $('#playerwrap').html('<object type="video/x-ms-wmv" id="winmedia" data="'+streamurl+'" width="100" height="48"><param name="src" value="'+streamurl+'" /><!--[if lte IE 6]><param name="autostart" value="false" /><![endif]--><!--[if gte IE 7]><param name="autostart" value="true" /><![endif]--><!--[if !IE]><!--><param name="autostart" value="true" /><!-- <![endif]--><param name="controller" value="true" /></object>');
    } else {
      $('#winmedia').clone().appendTo('#playerwrap');
      $('#player').remove();
    }
  }
}

/* ----------------------------------------------- Kanalwechsel */

function switchTo(obj) {
  $('.stationbutton').removeClass('active');
  $(obj).addClass('active');
  mychannel = obj.href.substring(obj.href.indexOf('?'));
  myartist = $(obj).find('.artist').eq(0).text();
  myicon = obj.rel;
  if (!adplaying && !advirgin) {
    // Change Flash Player and Gallery
    $.ajax({
      url: 'stationswitch.php'+mychannel+'&artist='+myartist,
      success: function(data) {
        playerdata = data.substring(0, data.indexOf('<!-- seperator -->'));
        gallerydata = data.substring(data.indexOf('<!-- seperator -->')+18);
        if (!inbackground) {
          $('#stage').html(gallerydata);
          startSpaceGallery();
        }
        $('#playerwrap').html(playerdata);
        flashCheck();
      }
    });
  }
  // Change Livesong in player
  var myartist = $(obj).find('.artist').eq(0).text();
  var mysong = $(obj).find('.title').eq(0).text();
  $('#interpret').text(myartist);
  $('#title').text(mysong);
  $('#icon')[0].src = "img/"+myicon;
  $('#icon-amazon')[0].href = "http://www.amazon.de/gp/search?ie=UTF8&keywords="+myartist+"%20"+mysong+"&tag=ra07-21&index=music&linkCode=ur2&camp=1638&creative=6742"
  $('#pll-channel').text($('#stationswitch .active h2').text()+": "+$('#stationswitch .active h3').text());
  refreshplaylist();
  switchWebcams();
}


/* ----------------------------------------------- Old ad system

function checkFlowplayer(query) {
  if (
    (query == "hasloaded" && adplaying && $('#adplayer_api').length <= 0)
    ||
    (query == "stillplaying" && adplaying)
    ) {
    startRadio();
  }
}

function init_flowplayer() {
  window.setTimeout("checkFlowplayer('stillplaying');", 60000);
  try {
    var get_preroll = ads_gettag('preroll',480,270,100,'xml',0);
    var get_overlay = ads_gettag('videolayer', 480,270,100,'xml',0);
  } catch (e) {
    var get_preroll = '';
    var get_overlay = '';
  }
  flowplayer("adplayer", {
      src: "flash/flowplayer.commercial-3.2.2.swf", 
      version: [9,0,115],
      width: 538,
      height: 321,
      cachebusting: true,
      bgcolor: '#4d140d',
      onFail: startRadio
    }, {
    key: '#$6af7907f4a5c89e423d',
    screen:	{ bottom: 0 },
    canvas: {
      backgroundColor: '#4d140d',
    	 backgroundGradient: 'none'
    },
    clip: { 
      autoPlay: true,
      onStart: startRadio
    },
    version: [9, 115],

    playlist: [{ url: 'flash/1frameversuch.flv', duration: 0.01 }],
    plugins: {
        controls: {
            url: 'flash/flowplayer.controls-3.2.1.swf',
            controls: null,
            playlist: true,
            opacity: 0,
            all: false,
            autoHide: {
                fullsccreenOnly: false,
                hideDelay: 0
            }
        },
        UIF_Plugin: {
            url: 'flash/UIFPlugin-3.1.5.swf',
            preroll: get_preroll,
            overlay_delay: '5',
            ad_countdown: true, 
            ad_countdown_position: 'top', 
            ad_countdown_text: ' Die Anzeige endet in: [Time] Sek.',
            ad_countdown_text_color: '0xffffff', 
            ad_countdown_color: '0x000000', 
            ad_countdown_opacity: 0.6
        }
      }
    });
}


*/


/* ----------------------------------------------- Playlist-Refresh */

function refreshplaylist(showday,showhour) {
  
  if (showday) { showday = "&day="+showday } else { showday = ""; }
  if (showhour) { showhour = "&hour="+showhour } else { showhour = ""; }
  
  $.ajax({
    url: 'showplaylist.php?nocache='+parseInt(Math.random() * 100000)+'&playchannel='+$('#stationswitch .active').eq(0).attr('id')+showday+showhour,
    dataType: 'html',
    success: function(mytable) {
      $('#playlistwrap table').remove();
      $('#playlistwrap').append(mytable);
    }
  });
}

/* ----------------------------------------------- Song-Refresh */

function refreshsongs(forcepix) {

$.ajax({
  url: 'xml/livesongcache.xml?'+parseInt(Math.random()*100000),
  dataType: 'xml',
  success: function(xmldata) {
    
    var activechannel = $('#stationswitch .active').eq(0).attr('id');
    data = new Array();

    $(xmldata).find('station').each(function(){
      station = $(this).attr('name');
      data[station] = new Object();
      
      if ($(this).find('onair Class').eq(0).text() == "Music") {
        data[station].title =  $(this).find('onair Title').eq(0).text();
        data[station].artist = $(this).find('onair Music_Performer').eq(0).text();
      } else {
        data[station].title = '';
        data[station].artist = '';
      }
    }); 
    
    webcam2active = $(xmldata).find('station[name=rockantennelocal01]').find('onair > RockAntenneWebcamStudio2, past:last RockAntenneWebcamStudio2').eq(0).text();    
    
    $('#stationswitch .stationbutton').each(function(){
      if (data[this.id] && $(this).find('.title').eq(0).text() != data[this.id].title) {
        $(this).find('.text').empty().append(
          '<span class="artist">'+data[this.id].artist+'</span><span class="title">'+data[this.id].title+'</span>'
        );
      }
    });
    
    if (($('#interpret').text() != data[activechannel]['artist']) || forcepix ) {
      $('#interpret').text(data[activechannel]['artist']);
      $('#title').text(data[activechannel]['title']);
      
      if (!inbackground) {  
        $.ajax({
          url: 'stationswitch.php?playchannel='+activechannel+'&artist='+data[activechannel]['artist'],
          success: function(data) {
            gallerydata = data.substring(data.indexOf('<!-- seperator -->')+18);
            $('#stage').html(gallerydata);
            startSpaceGallery();
          }
        });
      }
    }
  }
});

}

/* ----------------------------------------------- String Helferlein */

function hashify(text) {
  text = text.replace(" ", "-")
  text = text.toLowerCase();
  return text;
}

/* ----------------------------------------------- Uhrzeit */

function refreshtime() {
  var rightnow = new Date();
  var mins = rightnow.getMinutes();
  var hours = rightnow.getHours();
  hours = ((hours < 10) ? "0" + hours  + ":" : hours + ":");
  mins = ((mins < 10) ? "0" + mins : mins);
  $('#time').text(hours+mins);
}

/* ----------------------------------------------- IVW-Trigger */

function countivw() {
  var IVW="http://rockant.ivwbox.de/cgi-bin/ivw/CP/webradio21;";
  $('#ivw').html("<img src=\""+IVW+"?r="+escape(document.referrer)+"&d="+(Math.random()*100000)+"\" width=\"1\" height=\"1\" alt=\"szmtag\" />");
}

/* ----------------------------------------------- Webcam */

function refreshwebcam() {
  
  if (webcamtab && !inbackground) {
    
    camstring = "webcampic";
    if (document.getElementById('webcampic').style.display == 'none') {
      camstring = "webcampic2";
    }
    
    var url = document.getElementById(camstring).src;
    var pos = url.indexOf("?");
    if (pos > 0) {
      url = url.substring(0, url.indexOf("?"));
    }
    document.getElementById(camstring).src = url+"?wc="+(Math.random()*100000);
  }
}

/* ----------------------------------------------- Webcam Tabsichtbarkeit */

function switchWebcams() {
  var activechannel = $('.stationbutton.active').attr('id');
  if (activechannel == "rockantennelocal01" && webcam2active == "TRUE") {
    $('#webcampic2').show();
    $('#webcampic').hide();
  } else {
    $('#webcampic').show();
    $('#webcampic2').hide();
  }
  
}

/* ----------------------------------------------- Webcam Tabsichtbarkeit */

function refreshwebcamtab() {
  $.ajax({
    url: 'xml/webcamschedule.xml?nocache='+parseInt(Math.random() * 100000),
    dataType: 'xml',
    success: function(xmldata) {
      var showtab = false;
      var jetzt = new Date();
      var nthday = jetzt.getDay();
      var curhour = jetzt.getHours();
      var days = new Array("sun", "mon", "tue", "wed", "thu", "fri", "sat");
      var hours = $(xmldata).find(days[nthday]).text().split(",");
      $.each(hours, function(index, val) {
        if (hours[index] == curhour) {
          showtab = true;
        }
      });
      if (showtab == true) {
        $('#nav-webcam, #webcam').removeClass('disabled');
      } else {
        $('#nav-webcam, #webcam').addClass('disabled');
      }
    }
  });  
}

/* ----------------------------------------------- Fokus */

function onBlur() {
  inbackground = true;
  if ($.browser.msie) {
    $('#stage').empty();
  }
}

function onFocus(){
  
  inbackground = false;
  if (!virgin) {
    if ($('#interpret').text() != $('#stage img').eq(0).attr('alt')) {
      refreshsongs(true);
    } else {
      refreshsongs();
    }
  } else {
    virgin = false;
  }
}

// ----------------------------------------------- 
//  Internet Exploder Special Case: Tell if document.onfocusout and
//  document.onfocusin is not just a regular click in IE 6-8.
// ----------------------------------------------- 

function onFocusCheck() {
  var now = new Date(); 
  lastIn = now.getTime();
  if ((lastIn - lastOut) > 100) { 
    onFocus(); 
  }
}

function onBlurCheck() {
  var now = new Date(); 
  lastOut = now.getTime();
  if (!timeTaking) {
    timeTaking = true;
    setTimeout(onBlurCheckAgain, 100);
  }
}

function onBlurCheckAgain() {
  var now = new Date(); 
  rightnow = now.getTime();
  if ((rightnow - lastIn) > 1200) { onBlur(); }
  timeTaking = false;
}

/* ----------------------------------------------- Flash Detect */

var FlashDetect=new function(){var self=this;self.installed=false;self.raw="";self.major=-1;self.minor=-1;self.revision=-1;self.revisionStr="";var activeXDetectRules=[{"name":"ShockwaveFlash.ShockwaveFlash.7","version":function(obj){return getActiveXVersion(obj);}},{"name":"ShockwaveFlash.ShockwaveFlash.6","version":function(obj){var version="6,0,21";try{obj.AllowScriptAccess="always";version=getActiveXVersion(obj);}catch(err){}
return version;}},{"name":"ShockwaveFlash.ShockwaveFlash","version":function(obj){return getActiveXVersion(obj);}}];var getActiveXVersion=function(activeXObj){var version=-1;try{version=activeXObj.GetVariable("$version");}catch(err){}
return version;};var getActiveXObject=function(name){var obj=-1;try{obj=new ActiveXObject(name);}catch(err){obj={activeXError:true};}
return obj;};var parseActiveXVersion=function(str){var versionArray=str.split(",");return{"raw":str,"major":parseInt(versionArray[0].split(" ")[1],10),"minor":parseInt(versionArray[1],10),"revision":parseInt(versionArray[2],10),"revisionStr":versionArray[2]};};var parseStandardVersion=function(str){var descParts=str.split(/ +/);var majorMinor=descParts[2].split(/\./);var revisionStr=descParts[3];return{"raw":str,"major":parseInt(majorMinor[0],10),"minor":parseInt(majorMinor[1],10),"revisionStr":revisionStr,"revision":parseRevisionStrToInt(revisionStr)};};var parseRevisionStrToInt=function(str){return parseInt(str.replace(/[a-zA-Z]/g,""),10)||self.revision;};self.majorAtLeast=function(version){return self.major>=version;};self.minorAtLeast=function(version){return self.minor>=version;};self.revisionAtLeast=function(version){return self.revision>=version;};self.versionAtLeast=function(major){var properties=[self.major,self.minor,self.revision];var len=Math.min(properties.length,arguments.length);for(i=0;i<len;i++){if(properties[i]>=arguments[i]){if(i+1<len&&properties[i]==arguments[i]){continue;}else{return true;}}else{return false;}}};self.FlashDetect=function(){if(navigator.plugins&&navigator.plugins.length>0){var type='application/x-shockwave-flash';var mimeTypes=navigator.mimeTypes;if(mimeTypes&&mimeTypes[type]&&mimeTypes[type].enabledPlugin&&mimeTypes[type].enabledPlugin.description){var version=mimeTypes[type].enabledPlugin.description;var versionObj=parseStandardVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revisionStr=versionObj.revisionStr;self.revision=versionObj.revision;self.installed=true;}}else if(navigator.appVersion.indexOf("Mac")==-1&&window.execScript){var version=-1;for(var i=0;i<activeXDetectRules.length&&version==-1;i++){var obj=getActiveXObject(activeXDetectRules[i].name);if(!obj.activeXError){self.installed=true;version=activeXDetectRules[i].version(obj);if(version!=-1){var versionObj=parseActiveXVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revision=versionObj.revision;self.revisionStr=versionObj.revisionStr;}}}}}();};FlashDetect.JS_RELEASE="1.0.4";
