jQuery(document).ready(function($){
  $("html").addClass("js");

  $("#skip-nav a").click(function(){$("#nav-main a")[0].focus();return false;});
  $("#skip-search a").click(function(){$("#search input").focus();return false;});

  function headersOneUp(h){
    for (var i = 5; i > 0; i--) h = h.replace("h"+ i +">", "h"+ (i+1) +">");
    return h;
  }

  if ($(".casesWidget")) {
    var CasesWidget = {
      el: $(".casesWidget")
    , numCases: $(".casesWidget li").size()
    , running: false
    , timer: null
    , sleep: 7000
    , speed: 1000
    , animate: function(){
        $(".casesWidget ul").attr("scrollTop", 0);
        $("li:first-child", CasesWidget.el).animate({marginTop: "-232px"}, CasesWidget.speed, "swing", function(){
          $("li:first-child", CasesWidget.el).appendTo(".casesWidget ul").css({marginTop: "0px"});
          if (CasesWidget.running) CasesWidget.setTimer();
        });
      }
    , setTimer: function(){ CasesWidget.timer = setTimeout(CasesWidget.animate, CasesWidget.sleep); }
    , toggle: function(){ CasesWidget.running ? CasesWidget.pause() : CasesWidget.play(true); }
    , pause: function(){
        CasesWidget.running = false;
        CasesWidget.el.removeClass("running");
        clearTimeout(CasesWidget.timer);
      }
    , play: function(now){
        CasesWidget.running = true;
        clearTimeout(CasesWidget.timer);
        CasesWidget.el.addClass("running");
        now ? CasesWidget.animate() : CasesWidget.setTimer();
      }
    }

    if (CasesWidget.numCases > 0) {
      CasesWidget.play();
      CasesWidget.el.append("<p class=control><a href='javascript:void'>►</a></p>");
      $(".control a", CasesWidget.el).click(function(){ CasesWidget.toggle(); return false; });
    }
  }

  if ($("body.cases")) {
    do {
      var lis = $("#content > ul:last-child li:gt(2)");
      if (lis.size() > 0) {
        $("#content").append("<ul class=cases>");
        $("#content ul:last-child").append(lis);
      }
      else break;
    }
    while (true);

    var CaseContainer = {
      el: $("<div id=case-detail><div id=case-close><a href='javascript:void'>×</a></div><div id=case-content/></div>").hide()
    , close: function(cb){
        $("#content li.selected").removeClass("selected");
        if ($(":visible", CaseContainer.el).size() == 0) {if (cb instanceof Function) cb();}
        else this.el.slideUp(500, function(){
          $("#case-content", CaseContainer.el).html("");
          if (cb instanceof Function) cb();
        });
      }
    , open: function(d){
        $("#case-content", CaseContainer.el).append(headersOneUp(d.html()));
        CaseContainer.el.slideDown(500);
      }
    }
    $("#case-close a", CaseContainer.el).click(function(){
      CaseContainer.close();
      return false;
    });

    CaseDetail = function(a) {
      var o = this;
      o.a = a;
      $(o.a).click(function(){
        CaseContainer.close(function(){
          $(o.a).parents("li").addClass("selected");
          $.get(o.a.href, {}, function(data, textStatus){
            if (textStatus == "success") {
              $(o.a).parents("ul").after(CaseContainer.el);
              CaseContainer.open($("#content", data));
            }
          });
        });
        return false;
      });
    }

    $("#content > ul p.buttons a").each(function(i,a){new CaseDetail(a);});
  }
});

