var Browser = {
  ua: function() {
    return navigator.userAgent;
  },
  engine: function() {
    var agent = this.ua();
    if (agent.match(/WebKit/))  return "webkit"
    if (agent.match(/Gecko\//)) return "gecko"
    if (agent.match(/MSIE/))    return "ie"
    if (agent.match(/Opera/))   return "opera"
  },
  version: function() {
    var agent = this.ua();
    var v, r = [];
    if (v = agent.match(/Version\/(\d).*Mobile.*Safari/))  r = ["mobile"]
    if (v = agent.match(/Chrome\/(\d)/))                   r = ["chrome", v[1]]
    if (v = agent.match(/Version\/(\d).*Safari/))          r = ["safari", v[1]]
    if (v = agent.match(/Firefox\/(\d)\.([1-9])/))         r = ["ff", v[1], "_", v[2]]
    if (v = agent.match(/Firefox\/(\d)/))                  r = ["ff", v[1]]
    if (v = agent.match(/MSIE (\d)/))                      r = ["ie", v[1]]
    return r.join("")
  },
  platform: function() {
    var agent = this.ua();
    if (agent.match(/Macintosh/)) return "mac"
    if (agent.match(/iPhone/))    return "iphone"
    if (agent.match(/Windows/))   return "win"
    if (agent.match(/Linux/))     return "linux"
  },
  to_s: function() {
    return [
      this.engine(),
      this.version(),
      this.platform()
    ].join(" ")
  }
};


function changeAmount(link, amount) {
  var input = $(link).siblings("input");
  var value = parseInt(input.val()) + amount;
  
  if (value > 0)
    input.val(value);
}

function trackCarousel(jcarousel, item) {
  wtad = $(item).children("a").data("wtad");
  if (wtad && typeof(dcsMultiTrack)!="undefined")
    dcsMultiTrack("WT.ad", wtad);
}


$(document).ready(function() {
  jQuery("html").addClass(Browser.to_s());
  jQuery("html").addClass("js");
  
  if (jQuery("#agegate").length > 0) {
    
    // ============
    // = AGE GATE =
    // ============
    jQuery("#page, #flashBG").hide();
    jQuery("#agegate input").keypress(function(e) {
      if (e.keyCode == 13) {
        jQuery("#agegate .actions a")[0].click();
      };
    });
    
    if (jQuery().uniform) {
      jQuery("#agegate select").uniform();
    }

    if (jQuery().autotab) {
      jQuery("#agegate .date input").autotab_magic().autotab_filter("numeric");
    }

  } else {
    
    // =================
    // = DEFAULT PAGES =
    // =================
    
    $("#main_menu ul li ul").parent().append("<div />");
    $("#main_menu a.mainNavSelected").parent().addClass("selected");

    $(".button, .search_pages a").wrapInner("<span />");

    $("#global_cart").append("<a href='#toggle' id='global_cart_toggle'>Toggle</a>");
    $("#global_cart_toggle, \
       #global_cart h3, \
       #global_cart_badge").click(function() {
      $("#global_cart").toggleClass("collapsed");
      $("#cart_collapsed").val($("#global_cart").hasClass("collapsed") ? "true" : "false"); 
    });

    $("#product .amount span").addClass("has-controls").
                               append("<a href='#increase' class='increase'></a>").
                               append("<a href='#decrease' class='decrease'></a>");
    $("#product .amount span .increase").click(function() { changeAmount(this, +1) });
    $("#product .amount span .decrease").click(function() { changeAmount(this, -1) });

    if (jQuery().jcarousel)
      $("#stage").jcarousel({scroll: 1, wrap: "circular", auto: 6, itemVisibleInCallback: trackCarousel});
    
  }
  
  // =================
  // = GENERAL =
  // =================
  
  if (jQuery().colorbox) {
    jQuery(".popup").colorbox({innerWidth:500, innerHeight:500, iframe:true});
    if (jQuery("#agegate .error-message-popup").length > 0) {
      jQuery.colorbox({inline:true, href:"#agegate .error-message-popup", innerWidth:500});
    }
  }
  
  if (jQuery().placeholder) {
    jQuery("input").placeholder();
  }
  
  
});
