
var cachedBlocks = new Object();
var frnPanelIDs = new Array();
var backPath = '';
function getBlockData(url, containerId, cacheBlock, tabName, loadSub) {
myCachedBlock = eval('cachedBlocks.'+cacheBlock);
if ((myCachedBlock) && (myCachedBlock.length > 5) ) {
 $('#'+containerId).html(myCachedBlock.toString());
        if (loadSub) {
                loadSubPanel(tabName);
        }
} else {
        $.ajax({
                type: 'GET',
                // url: '../read.php',
                url: url,
                dataType: 'Text',
                // data: url,
               
                // Loading-GIF ausgeben (Hintergrundgrafik)
                beforeSend: function() {
                    $('#'+containerId).html('<div class="frn_ajaxWait"></div>');
                },
               
                // Im Fehlerfall
                error: function(p1,p2,p3) {
                        $('#'+containerId).html('<div>Fehler: '+url+'<br>'+containerId+'<br>'+cacheBlock+'</div>');
                },
               
                // Im Erfolgsfall
                success: function(msg) {
                        // Ergebnis schreiben
                        $('#'+containerId).html(msg);
                        // Response in den JS-Cache schreiben
                        eval('cachedBlocks.' + cacheBlock + ' = msg');
                        if (loadSub) {
                                loadSubPanel(tabName);
                        }
                }
               
        });       
}
}
function loadSubPanel(tabName) {
        if (tabName == "Kino") {
                getBlockData(backPath+'/panelMods/Combo/Kino/Kino_Neustarts/index.html','frnKinoSubpanel','frnKinoNeustarts', tabName, false);
        } else if (tabName == "MuDo") {
                getBlockData(backPath+'/panelMods/Combo/MuDo/Single_Charts/index.html','frnMuDoSubpanel','frnMuDoSingleCharts', tabName, false);
        }
}
function activateTab(modName, tabName) {
  if(tabName.substr(0,4) == "None") {
    var frnReiterIDs = new Array();
    childs = $('ul#frnPanelTabs'+modName+' li').get();
    for ( j = 0; j < childs.length; j++) {
      frnReiterIDs[j] = childs[j].id.substr(3);
    }
    var Index = 0;
    Index = (randomTabsOff) ? 0 : Math.floor(Math.random() * frnReiterIDs.length);
    activateTab(modName, frnReiterIDs[Index]);
  }
  else {
    // Alle Tabs des Moduls deaktivieren
    $('#frnPanel'+modName+' li').attr('class', 'frn_panelTabInaktiv');
    // Den betreffenden Tab aktivieren
    $('#frnPanel'+modName+' li#Tab'+tabName).attr('class','frn_panelTabAktiv');
    var panelBlock = "frnPanelBlock" + modName;
    var panelId = "frnPanel" + modName;
    var cacheBlock = panelBlock + tabName;
    var baseUrl = backPath+"/freenet/servlet/content";
    var url = baseUrl + "/" + tabName + "?view=snippet&innerView=teaser&isInnerCont=true";
    var url = ($.url.param("iurl") && tabName == $.url.param("activeTab")) ? url + "&iurl=" + unescape(escape($.url.param("iurl"))) : url;
    getBlockData(url, 'frnPanelBlock' + modName, cacheBlock, tabName,true);
    // aktivierten Tab registrieren
    activeTabs[modName] = tabName;
  }
}
/*
 * Funktion, die die Panels initialisiert
 */
function initPanels() {
        // zunächst die vorhandenen Panelmodule suchen;
        // <div id="..."  class="frn_panel">...</div>
        // und deren id in das Array frnPanelModule aufnehmen
        var frnPanelModule = new Array();
        frnPanelModule = $('div.frn_panel').get();
        for (i = 0; i < frnPanelModule.length; i++) {
                frnPanelIDs[i] = frnPanelModule[i].id.substr(8);
        }
       
        // Für alle Panel die aktiven Reiter finden
        // und deren Inhalte per XMLHttpRequest nachladen
        // Achtung: Für jeden aktiven Tab, muss ein gesonderter Request angestoßen werden
        for (i = 0; i < frnPanelIDs.length; i++) {
                var frnReiterIDs = new Array();
                childs = $('ul#frnPanelTabs'+frnPanelIDs[i]+' li').get();
                for ( j = 0; j < childs.length; j++) {
                        frnReiterIDs[j] = childs[j].id.substr(3);
                }
                // FALLBACK, wenn KEINE Variablen von 7D geliefert werden (GH, 13.05.2007):
                // Ermittlung der aufgeklappten Reiter nach dem Zufallsprinzip (Ausnahmen: News + Games)
                if ( typeof(frnPanels) == 'undefined' || typeof(frnPanels[i]) == 'undefined' || frnPanels[i] == '' ) {
                        var Index = 0;
                        if (frnPanelIDs[i] != "News" && frnPanelIDs[i] != "Games" )
                                Index = (randomTabsOff) ? 0 : Math.floor(Math.random() * frnReiterIDs.length);
                        //alert('I: '+Index+' M: '+frnPanelIDs[i]+' T: '+frnReiterIDs[Index]);
                        if (frnPanelIDs[i] != "News")
                                 activateTab(frnPanelIDs[i], frnReiterIDs[Index]);
                } else {
                        if (frnPanelIDs[i] != "News")
                                 activateTab(frnModules[i], frnPanels[i]);
                }
               
        }
       
        // Click-Events für Tabs setzen
        $('.frn_panelTabs li').click(
                function() {
                        // id des geklickten Reiters ('Tab'+Tabname)
                        thisId = $(this).attr('id');
                        // ID des Panels in das die Response geschrieben werden soll
                        // ('frnPanelBlock'+Modulname)
                        panelId = $(this).parent().parent().attr('id');
           
                        var modName = panelId.substr(8)
                        var tabName = thisId.substr(3);
                        activateTab(modName, tabName);
                }
        );
       
        // href-Attribut, title-Attribut aus Ankern loeschen, dafuer name setzen
        // Fallback fuer Javascriptlose User entfernen
        $('.frn_panelTabs li a').removeAttr('href').removeAttr('title').attr('name','');
}
var vPath = window.location.pathname;
  var randomTabsOff = false;
  var actualTeaserId = 1;
  var activeTabs = {};
var showPanels_ = function() {}
  var showPanels = function() {
/*
      for (var i in activeTabs) {
          var modName = i;
          var tabName = activeTabs[i];
          activateTab(modName, tabName);
       }
*/
      var frnPanelModule = new Array();
      frnPanelModule = $('div.frn_panel').get();
      for (i = 0; i < frnPanelModule.length; i++) {
          frnPanelIDs[i] = frnPanelModule[i].id.substr(8);
      }
      for (i = 0; i < frnPanelIDs.length; i++) {
          if (frnPanelIDs[i] != '') {
              if ((!activeTabs[frnPanelIDs[i]] ) ) {
                  var frnReiterIDs = new Array();
                  childs = $('ul#frnPanelTabs' + frnPanelIDs[i] + ' li').get();
                  for (j = 0; j < childs.length; j++) {
                      if (childs[j].id.substr(0, 7) != 'TabConf') {
                          frnReiterIDs[j] = childs[j].id.substr(3);
                      }
                  }
                  Index = (randomTabsOff) ? 0 : Math.floor(Math.random() * frnReiterIDs.length);
                  activateTab(frnPanelIDs[i], frnReiterIDs[Index]);
              }
          }
      }
  }

  var readCookie = function(){
 
      var cookieData = $.cookie('frnTab');
      cookieData = unescape(cookieData);
    
      if (cookieData) {
 
          var dataValues = cookieData.split("/");
          var property_value = "";
        
          for (var zaehler = 0; zaehler < dataValues.length; zaehler++) {
        
              oneValue = dataValues[zaehler];
              var splittedValue = oneValue.split(":");
              var valueKey = splittedValue[0];
              var valueValue = splittedValue[1];
              if (valueValue) {
                  activeTabs[valueKey] = valueValue;
                  $('#defTab'+valueValue).attr('checked', 'checked');
              }
          }
      }
  }
 
  var saveCookie = function(tabObject) {   
      var cookieString = '';
      for (var i in tabObject) {   
          if (tabObject[i] != null) {
              cookieString = cookieString + i + ':' + tabObject[i] + '/';
          } else {
              cookieString = cookieString + i + ':None' + i +'/';
          }
      }
      $.cookie('frnTab', cookieString, { expires: 3650 } );
  }
$(document).ready( function() {
  $('.setConf').click( function() {
    
      var tabToActivate = this.id.substr(6);
      myParentId = $(this).parent()[0].id.substr(17);
      activeTabs[myParentId] = tabToActivate;
      saveCookie(activeTabs);
      myParentId = $(this).parent()[0].id
      $('#'+myParentId).toggle();
      showPanels();
  } );
});
