in_transit = false;

$.fn.panelSlider = function(callback) {

  return this.each(function(){

    in_slide = false;

    var slider = $(this);

    /* Panel Dimensions */
    var panelWidth = slider.find(".panel").width();
    var panelCount = slider.find(".panel").size();
    var panelContainerWidth = panelWidth*panelCount;

    var currentPanel = 0;

    /* Panel Title und Startpanel*/
    var panelTitle = new Array();
    $i=0;
    slider.find(".panel").each(function(){
      panelTitle.push($(this).find("span.panel-url").text());

      src = $(this).find(".day img").attr("src").substring(0, $(this).find(".day img").attr("src").length - 7);
      $(this).find(".day img").attr("src", src+dayNav[$i]["day"]+".png");

      $(this).find("div.hotspots-container:eq(0)").css("display", "block");
      
      var act_panel = false;
      if (location.hash.length) {
        act_panel = location.hash.split("#")[1];
        if (act_panel.indexOf('/comments') != -1) {
          act_panel = act_panel.substring(0, act_panel.indexOf('/comments')+1);
        }
      }
      if(act_panel && act_panel == $(this).find("span.panel-url").text()){
        currentPanel = $i;
      }

      $i++;
    });

    alterDayNavigation(currentPanel);

    /* Wrapper für alle Panels */
    $(this).find('.panel').wrapAll('<div class="panel-container" style="overflow: hidden;"></div>');
    $(this).find(".panel-container").css({ width: panelContainerWidth });

    /* Startpanelhöhe anpassen */
    panelHeight = $(this).find('.panel:eq(' + (currentPanel) + ')').height();
    slider.css({ height: panelHeight });

    /* Startpanel anzeigen */
    $(this).find('.panel-container').css({ position:'absolute', left: calculateOffset(currentPanel) });

    $(this).find('.panel:eq('+currentPanel+')').addClass("active");
    if (typeof(ie6_panelSlider_hook) == 'function') {
      ie6_panelSlider_hook();
    }
    hide_loader();

    /* Auf per URL uebergebene Parameter pruefen */
    var url_param = location.hash.substring(location.hash.lastIndexOf('/'));
    if (url_param == '/comments' || url_param == '/respond') {
      var post_id = $('div.panel.active').find('div.post').attr('id').substring($('div.panel.active').find('div.post').attr('id').indexOf('-')+1);
      $.get('/?comments_form=true&post_id='+post_id, {}, function (response) {
        $('div.panel.active div.comments-box').html(response);
        
        needHelp();
        if (typeof(ie6_comments_hook) == 'function') {
          ie6_comments_hook();
        }

        $('div.inputc-email,div.inputc-author,div.inputc-comment').altInputLabel();
        eval($('div.fbc_loginstate_top').next('script').html());


        $('div.panel.active #si_image').attr('src', '/wp-content/plugins/si-captcha-for-wordpress/captcha-secureimage/securimage_show.php?sid=' + Math.random());
        $('div.panel.active div.comments-container').css({display: 'block'});
        $('div.panel.active div.tabs div.comments').addClass('active');
        $('div.panel.active div.tabs').css({height: 425, top: 48});
          $('a#new-captcha').click(function() {
            $('div.panel.active #si_image').attr('src', '/wp-content/plugins/si-captcha-for-wordpress/captcha-secureimage/securimage_show.php?sid=' + Math.random());
            return false;
          });

        /* submit comments via AJAX */
        $('form#commentform').unbind('submit').bind('submit',function() {

          var postval = $('div.panel.active form#commentform').serializeArray();
          $.ajax({
            url: '/wp-comments-post.php',
            type: "POST",
            data: postval,
            success: function(){
              /* get post ID */
              var post_id = $('div.panel.active div.post').attr('id');
              post_id = post_id.substring(post_id.indexOf('-')+1);
              $.get('/', {'only_comments':'1', 'post_id': post_id}, function(response) {
                $('div.panel.active ol.comments-list').replaceWith(response);
                $('div.panel.active ol.comments-list').scrollTop($('div.panel.active ol.comments-list li:last').offset().top);
                // Werte leeren
                $('div.panel.active #commentform input,div.panel.active #commentform textarea').val('').trigger('blur');
                // Reiter aktualisieren
                $('div.panel.active div.commentsm a').text($('div.panel.active ol.comments-list li').length+' Comments');
              });

            },
            error: function(req, textStatus, errorThrown) {
              var errormsg = req.responseText.match(/(<p>)(.*?)(<\/p>)/);
              errormsg = errormsg[2];
              alert(errormsg);
            }
          });
          return false;
        })
      });
    }

    /* Previous */
    $(".day-previous a").click(function(){

      if ($(this).hasClass("inactive")) return false;
      if (in_transit) return false;
      if (in_slide) return false;

      in_slide = true;

      pauseFlash();

      // Ein oder zwei Panels springen
      if($(this).parent("div[class*='steps-2']").val()!=undefined){
        nextPanel = currentPanel + 2;
        steps = 2;
      }
      else{
        nextPanel = currentPanel + 1;
        steps = 1;
      }

      // Nur ausführen, wenn es noch Panels gibt
      if(nextPanel < panelCount){

        // Panelhöhe anpassen
        alterPanelHeight(nextPanel);

        // Day Navigation anpassen
        alterDayNavigation(nextPanel);

        // Panel anzeigen
        $('.panel-container', slider).animate({ left: calculateOffset(nextPanel) }, 1000, "easeInOutExpo", function(){
          closeAllTabs();
        });

        // Browserurl setzen
        location.hash = panelTitle[nextPanel];

        try {
          pageTracker._trackPageview(location.href + location.hash);
        } catch (exception) {
        }

        // Globale currentPanel Variable setzen und Active Panel setzten
        currentPanel = nextPanel;
        $('.panel', slider).removeClass("active");
        $('.panel:eq(' + currentPanel + ')', slider).addClass("active");
        if (typeof(ie6_panelSlider_hook) == 'function') {
          ie6_panelSlider_hook();
        }
        in_slide = false;

      }
      else{

        if($(this).hasClass("inactive")){
          return;
        }

        $('#slider').unbind();

        show_loader();
        $.get("/?ajax="+panelTitle[currentPanel]+"&direction=previous", function(response){

          $.get("/?ajax="+panelTitle[currentPanel]+"&direction=previous&daynav=1", "" ,function(data){

            flashPlayerID = new Array();
            youtubePlayerID = new Array();

            $('#slider').html(response);
            
            dayNav = data;

            $(".day-previous a").unbind();
            $(".day-next a").unbind();

            $('#slider').panelSlider(function(){
              in_transit = false;
              $("#day-previous a").trigger("click");
            });

            $('#day-previous-arrow').css("display", "block");
            $('#day-next-arrow').css("display", "block");
            bubblesInit();
            if (typeof(ie6_panelSlider_hook) == 'function') {
              ie6_panelSlider_hook();
            }

          }, "json");
        });

      }

      return false;
    });

    /* Next */
    $(".day-next a").click(function(){

      if ($(this).hasClass("inactive")) return false;
      if (in_transit) return false;
      if (in_slide) return false;

      in_slide = true;

      pauseFlash();

      // Ein oder zwei Panels springen
      if($(this).parent("div[class*='steps-2']").val()!=undefined){
        nextPanel = currentPanel - 2;
        steps = 2;
      }
      else{
        nextPanel = currentPanel - 1;
        steps = 1;
      }

      // Nur ausführen, wenn es noch Panels gibt
      if(nextPanel >= 0){

        // Panelhöhe anpassen
        alterPanelHeight(nextPanel);

        // Day Navigation anpassen
        alterDayNavigation(nextPanel);

        // Panel anzeigen
        $('.panel-container', slider).animate({ left: calculateOffset(nextPanel) }, 1000, "easeInOutExpo", function(){
          closeAllTabs();
        });

        // Browserurl setzen
        location.hash = panelTitle[nextPanel];

        try {
          pageTracker._trackPageview(location.href + location.hash);
        } catch (exception) {
        }

        // Globale currentPanel Variable setzen
        currentPanel = nextPanel;
        $('.panel', slider).removeClass("active");
        $('.panel:eq(' + currentPanel + ')', slider).addClass("active");
        if (typeof(ie6_panelSlider_hook) == 'function') {
          ie6_panelSlider_hook();
        }
        in_slide = false;
      }
      else{

        if($(this).hasClass("inactive")){
          return;
        }

        $('#slider').unbind();

        show_loader();
        $.get("/?ajax="+panelTitle[currentPanel]+"&direction=next", function(response){
          $.get("/?ajax="+panelTitle[currentPanel]+"&direction=next&daynav=1", "" ,function(data){

            flashPlayerID = new Array();
            youtubePlayerID = new Array();

            $('#slider').html(response);

            dayNav = data;

            $(".day-previous a").unbind();
            $(".day-next a").unbind();

            $('#slider').panelSlider(function(){
              in_transit = false;
              $("#day-next a").trigger("click");
            });

            $('#day-previous-arrow').css("display", "block");
            $('#day-next-arrow').css("display", "block");
            bubblesInit();
            if (typeof(ie6_panelSlider_hook) == 'function') {
              ie6_panelSlider_hook();
            }

          }, "json");
        });
      }

      return false;
    });


    /* Global Fuctions */
    if(typeof(callback) == "function"){
      callback.call();
    }

    function calculateOffset(panel){
      // Weil Panelnummern bei 0 anfangen
      panel = panel + 1;

      offset = - (panelWidth*(panelCount - panel));
      return offset;
    }

    function alterPanelHeight(panel) {
      panelHeight = $('.panel:eq(' + panel + ')', slider).height();
      slider.animate({ height: panelHeight }, 1000, "easeInOutExpo");
    };

    function alterDayNavigation(currentPanel){

      yesterday = new Object();
      yesterday.fri = "thu";
      yesterday.thu = "wed";
      yesterday.wed = "tue";
      yesterday.tue = "mon";
      yesterday.mon = "fri";

      yesterday2 = new Object();
      yesterday2.fri = "wed";
      yesterday2.thu = "tue";
      yesterday2.wed = "mon";
      yesterday2.tue = "fri";
      yesterday2.mon = "thu";

      tomorrow = new Object();
      tomorrow.fri = "mon";
      tomorrow.thu = "fri";
      tomorrow.wed = "thu";
      tomorrow.tue = "wed";
      tomorrow.mon = "tue";

      tomorrow2 = new Object();
      tomorrow2.fri = "tue";
      tomorrow2.thu = "mon";
      tomorrow2.wed = "fri";
      tomorrow2.tue = "thu";
      tomorrow2.mon = "wed";

      currentDay = dayNav[currentPanel]["day"].toLowerCase();

      $("#day-previous a, #day-previous-2 a, #day-next a, #day-next-2 a, #day-previous-arrow a, #day-next-arrow a").removeClass("inactive");

      dayPrevious = $("#day-previous a").attr("class");
      dayPrevious2 = $("#day-previous-2 a").attr("class");
      dayNext = $("#day-next a").attr("class");
      dayNext2 = $("#day-next-2 a").attr("class");

      imgTypePrev = '';
      imgTypePrev2 = '';
      imgTypeNex = '';
      imgTypeNex2 = '';

      if(currentPanel == panelCount - 1){
        $("#day-previous a").addClass(dayNav["prev"]);
        $("#day-previous-2 a").addClass(dayNav["prev2"]);
        $("#day-previous-arrow a").addClass(dayNav["prev"]);

        imgTypePrev = "."+dayNav["prev"];
        imgTypePrev2 = "."+dayNav["prev2"];
      }
      if(currentPanel == panelCount - 2){
        $("#day-previous-2 a").addClass(dayNav["prev"]);
        imgTypePrev = '';
        imgTypePrev2 = "."+dayNav["prev"];
      }

      if(currentPanel == 0){
        $("#day-next a").addClass(dayNav["next"]);
        $("#day-next-2 a").addClass(dayNav["next2"]);
        $("#day-next-arrow a").addClass(dayNav["next"]);

        imgTypeNex = "."+dayNav["next"];
        imgTypeNex2 = "."+dayNav["next2"];
      }

      if(currentPanel == 1){
        $("#day-next-2 a").addClass(dayNav["next"]);
        imgTypeNex = '';
        imgTypeNex2 = "."+dayNav["next"];
      }

      if (imgTypePrev == '.active') imgTypePrev = '';
      if (imgTypePrev2 == '.active') imgTypePrev2 = '';
      if (imgTypeNex == '.active') imgTypeNex = '';
      if (imgTypeNex2 == '.active') imgTypeNex2 = '';


      in_transit = true;
      // Previous
      $("#day-previous").prepend('<img id="day-previous-img" src="wp-content/themes/mondaytofashion/images/days_small/'+yesterday[currentDay]+imgTypePrev+'.png" />');
      $('#day-previous-img').css({opacity: 0}).animate({opacity: 1.0}, 1000, 'swing', function(){
        $("#day-previous a").removeClass(dayPrevious);
        $("#day-previous a").addClass(yesterday[currentDay]);
        if (typeof(ie6_daynav_hook) == 'function') {
          ie6_daynav_hook();
        }
        $('#day-previous-img').remove();
        in_transit = false;
      });

      $("#day-previous-2").prepend('<img id="day-previous-2-img" src="wp-content/themes/mondaytofashion/images/days_small/'+yesterday2[currentDay]+imgTypePrev2+'.png" />');
      $('#day-previous-2-img').css({opacity: 0}).animate({opacity: 1.0}, 1000, 'swing', function(){
        $("#day-previous-2 a").removeClass(dayPrevious2);
        $("#day-previous-2 a").addClass(yesterday2[currentDay]);
        if (typeof(ie6_daynav_hook) == 'function') {
          ie6_daynav_hook();
        }
        $('#day-previous-2-img').remove();
        in_transit = false;
      });

      // Next
      $("#day-next").prepend('<img id="day-next-img" src="wp-content/themes/mondaytofashion/images/days_small/'+tomorrow[currentDay]+imgTypeNex+'.png" />');
      $('#day-next-img').css({opacity: 0}).animate({opacity: 1.0}, 1000, 'swing', function(){
        $("#day-next a").removeClass(dayNext);
        $("#day-next a").addClass(tomorrow[currentDay]);
        if (typeof(ie6_daynav_hook) == 'function') {
          ie6_daynav_hook();
        }
        $('#day-next-img').remove();
        in_transit = false;
      });

      $("#day-next-2").prepend('<img id="day-next-2-img" src="wp-content/themes/mondaytofashion/images/days_small/'+tomorrow2[currentDay]+imgTypeNex2+'.png" />');
      $('#day-next-2-img').css({opacity: 0}).animate({opacity: 1.0}, 1000, 'swing', function(){
        $("#day-next-2 a").removeClass(dayNext2);
        $("#day-next-2 a").addClass(tomorrow2[currentDay]);
        if (typeof(ie6_daynav_hook) == 'function') {
          ie6_daynav_hook();
        }
        $('#day-next-2-img').remove();
        in_transit = false;
      });

    }

    function alterDayNavigationStatus(nextPanel){

      // Erstes Panel
      if(nextPanel == panelCount - 1){
        $("#day-previous a").addClass("inactive");
        $("#day-previous-arrow a").addClass("inactive");
      }
      else{
        $("#day-previous a").removeClass("inactive");
        $("#day-previous-arrow a").removeClass("inactive");
      }

      // Drittes Panel
      if(nextPanel > panelCount - 3){
        $("#day-previous-2 a").addClass("inactive");
      }
      else{
        $("#day-previous-2 a").removeClass("inactive");
      }

      // Vorletztes Panel
      if(nextPanel <= 1){
        $("#day-next-2 a").addClass("inactive");
      }
      else{
        $("#day-next-2 a").removeClass("inactive");
      }

      // Letztes Panel
      if(nextPanel == 0){
        $("#day-next a").addClass("inactive");
        $("#day-next-arrow a").addClass("inactive");
      }
      else{
        $("#day-next a").removeClass("inactive");
        $("#day-next-arrow a").removeClass("inactive");
      }
      if (typeof(ie6_daynav_hook) == 'function') {
        ie6_daynav_hook();
      }

    }

  });
}




