(function(){
  
  function getResource(script, url, success) {
    var done = false, resource = null;
    if (script) {
      resource = document.createElement("script");
      resource.type = "text/javascript";
      resource.src = url;
    }
    else {
      resource = document.createElement("link");
      resource.type = "text/css";
      resource.rel = "stylesheet";
      resource.media = "all";
      resource.href = url;
    }
    if (success) {
      resource.onload = resource.onreadystatechange = function(){
      	if ( !done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") ) {
      		done = true;
      		success();
      	}
      };
    }
    document.getElementsByTagName("head")[0].appendChild(resource);    
  }
  function getStyles(url,success) { return getResource(false,url,success); }
  function getScript(url,success) { return getResource(true,url,success); }
  
  function init() {
    var container = $zmxmusic("#" + zmxmusic.container_id);
    container.hide()
    var html = "<div class=\"zmxmusic_wrapper yui-cssreset\">\n<div class=\"zmxmusic_header\">\n  <a href=\"http://zmxmusic.com/\"><img alt=\"Zmx_logo_40\" src=\"http://zmxmusic.com/images/zmx_logo_40.png?1279505935\" /></a>\n</div>\n<div class=\"zmxmusic_summary\">\n  <span class=\"zmxmusic_subtotal_wrapper\">\n    <h3>Subtotal:</h3>\n    <span class=\"zmxmusic_subtotal\"></span>\n    <span class=\"zmxmusic_quantity\"></span>\n  </span>\n  <a href=\"#\" class=\"zmxmusic_checkout\">Checkout</a>\n</div>\n<form action=\"http://zmxmusic.com/widget/checkout\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"authenticity_token\" type=\"hidden\" value=\"iMHhB/F1kDnnKq2wGbWnqGHQ4litZeufzELzGVoLeJA=\" /></div>\n<div class=\"zmxmusic_arrangements_wrapper\">\n<div class=\"zmxmusic_arrangements\">\n\n<div class=\"zmxmusic_arrangement\">\n  <span class=\"zmxmusic_info\">\n    <span class=\"zmxmusic_composition\"><a href=\"http://s3.amazonaws.com/assets.zmxmusic.com/arrangements/3/medium.jpg?1268367411\" title=\"Same Sex Marriage\">Same Sex Marriage</a></span>\n    <span class=\"zmxmusic_style\">Guitar Tab</span>\n    <span class=\"zmxmusic_performer\"><a href=\"#\" class=\"zmxmusic_fake_link\" title=\"Marc Bridge\">Marc Bridge</a></span>\n  </span>\n  <span class=\"zmxmusic_actions\">\n    <span class=\"zmxmusic_price\">$0.99</span>\n    <a class=\"zmxmusic_preview\" href=\"http://s3.amazonaws.com/assets.zmxmusic.com/arrangements/3/medium.jpg?1268367411\" title=\"Preview this arrangement\"></a>\n    <div class=\"zmxmusic_clear\"></div>\n    <a class=\"zmxmusic_cart_action zmxmusic_remove_from_cart\" href=\"#\" style=\"display:none\">Remove</a>\n    <a class=\"zmxmusic_cart_action zmxmusic_add_to_cart\" href=\"#\">Add to Cart</a>\n    <input class=\"zmxmusic_cart_input\" type=\"checkbox\" name=\"cart[items][0][arrangement_id]\" value=\"3\" price=\"0.99\"/>\n  </span>\n  <div class=\"zmxmusic_clear\"></div>\n</div>\n\n<div class=\"zmxmusic_arrangement\">\n  <span class=\"zmxmusic_info\">\n    <span class=\"zmxmusic_composition\"><a href=\"http://s3.amazonaws.com/assets.zmxmusic.com/arrangements/2/medium.jpg?1269021243\" title=\"Same Sex Marriage\">Same Sex Marriage</a></span>\n    <span class=\"zmxmusic_style\">Lead Sheet</span>\n    <span class=\"zmxmusic_performer\"><a href=\"#\" class=\"zmxmusic_fake_link\" title=\"Marc Bridge\">Marc Bridge</a></span>\n  </span>\n  <span class=\"zmxmusic_actions\">\n    <span class=\"zmxmusic_price\">$0.99</span>\n    <a class=\"zmxmusic_preview\" href=\"http://s3.amazonaws.com/assets.zmxmusic.com/arrangements/2/medium.jpg?1269021243\" title=\"Preview this arrangement\"></a>\n    <div class=\"zmxmusic_clear\"></div>\n    <a class=\"zmxmusic_cart_action zmxmusic_remove_from_cart\" href=\"#\" style=\"display:none\">Remove</a>\n    <a class=\"zmxmusic_cart_action zmxmusic_add_to_cart\" href=\"#\">Add to Cart</a>\n    <input class=\"zmxmusic_cart_input\" type=\"checkbox\" name=\"cart[items][1][arrangement_id]\" value=\"2\" price=\"0.99\"/>\n  </span>\n  <div class=\"zmxmusic_clear\"></div>\n</div>\n\n<div class=\"zmxmusic_arrangement\">\n  <span class=\"zmxmusic_info\">\n    <span class=\"zmxmusic_composition\"><a href=\"http://s3.amazonaws.com/assets.zmxmusic.com/arrangements/1/medium.jpg?1269021256\" title=\"Same Sex Marriage\">Same Sex Marriage</a></span>\n    <span class=\"zmxmusic_style\">Full Transcription</span>\n    <span class=\"zmxmusic_performer\"><a href=\"#\" class=\"zmxmusic_fake_link\" title=\"Marc Bridge\">Marc Bridge</a></span>\n  </span>\n  <span class=\"zmxmusic_actions\">\n    <span class=\"zmxmusic_price\">$0.99</span>\n    <a class=\"zmxmusic_preview\" href=\"http://s3.amazonaws.com/assets.zmxmusic.com/arrangements/1/medium.jpg?1269021256\" title=\"Preview this arrangement\"></a>\n    <div class=\"zmxmusic_clear\"></div>\n    <a class=\"zmxmusic_cart_action zmxmusic_remove_from_cart\" href=\"#\" style=\"display:none\">Remove</a>\n    <a class=\"zmxmusic_cart_action zmxmusic_add_to_cart\" href=\"#\">Add to Cart</a>\n    <input class=\"zmxmusic_cart_input\" type=\"checkbox\" name=\"cart[items][2][arrangement_id]\" value=\"1\" price=\"0.99\"/>\n  </span>\n  <div class=\"zmxmusic_clear\"></div>\n</div>\n\n</div>\n</div>\n</form>\n</div>";
    container.html(html);    
    var updateTotals = function() {
      var widget = $zmxmusic(".zmxmusic_wrapper");
      var cartItems = $zmxmusic(".zmxmusic_cart_input:checked")
      var quantity = cartItems.size();
      var cartItemPrices = cartItems.map(function() {
        var price = parseFloat($zmxmusic(this).attr("price"))
        return price
      }).get()
      var subtotal = 0;
      for (var i = 0; i < cartItemPrices.length; i++) {
        subtotal += cartItemPrices[i]
      }      
      widget.find(".zmxmusic_quantity").html("(" + quantity + (quantity == 1 ? " item)" : " items)"));
      widget.find(".zmxmusic_subtotal").html("$" + subtotal.toFixed(2));      
      if (quantity > 0) {
        widget.find(".zmxmusic_checkout").fadeIn();
      }
      else {
        widget.find(".zmxmusic_checkout").fadeOut();
      }
    };
    $zmxmusic(".zmxmusic_cart_input").removeAttr("checked")
    updateTotals();
    $zmxmusic(".zmxmusic_wrapper .zmxmusic_add_to_cart").click(function() {
      $zmxmusic(this).hide()
      var actions = $zmxmusic(this).closest(".zmxmusic_actions")
      actions.find(".zmxmusic_cart_input").attr("checked", "checked")
      actions.find(".zmxmusic_remove_from_cart").show()
      actions.closest(".zmxmusic_arrangement").addClass("zmxmusic_cart_item")
      updateTotals()
      return false
    })
    $zmxmusic(".zmxmusic_wrapper .zmxmusic_remove_from_cart").click(function() {
      $zmxmusic(this).hide()
      var actions = $zmxmusic(this).closest(".zmxmusic_actions")
      actions.find(".zmxmusic_cart_input").removeAttr("checked")
      actions.find(".zmxmusic_add_to_cart").show()
      actions.closest(".zmxmusic_arrangement").removeClass("zmxmusic_cart_item")      
      updateTotals()
      return false
    })
    $zmxmusic(".zmxmusic_wrapper .zmxmusic_checkout").click(function() {
      $zmxmusic(".zmxmusic_wrapper form").submit()
      return false
    })
    $zmxmusic(".zmxmusic_wrapper .zmxmusic_composition a").facybox()
    $zmxmusic(".zmxmusic_wrapper .zmxmusic_preview").facybox()
    $zmxmusic(".zmxmusic_fake_link").click(function() {
      return false
    })
    
    var count = $zmxmusic(".zmxmusic_wrapper .zmxmusic_arrangement").size()
    var pages = count / 5
    if (pages > 1) {
      $zmxmusic(".zmxmusic_arrangements_wrapper").after("<div class='zmxmusic_navigation_wrapper'><a href='#' class='zmxmusic_navigation_page zmxmusic_navigation_prev_page'>Prev</a><div class='zmxmusic_navigation'></div><a href='#' class='zmxmusic_navigation_page zmxmusic_navigation_next_page'>Next</a></div>")
      $zmxmusic(".zmxmusic_arrangements_wrapper").scrollable({
        vertical: true,
        size: 5,
        items: ".zmxmusic_arrangements",
        prevPage: ".zmxmusic_navigation_prev_page",
        nextPage: ".zmxmusic_navigation_next_page"
      }).mousewheel().navigator({
        navi: ".zmxmusic_navigation"
      })
      var width = 14 * pages
      var margin = (280 - 30 * 2 - width) / 2
      $zmxmusic(".zmxmusic_navigation").css("width", width)
      $zmxmusic(".zmxmusic_navigation_prev_page").css("margin-right", margin)
      $zmxmusic(".zmxmusic_navigation_next_page").css("margin-left", margin)
      $zmxmusic(".zmxmusic_navigation_page").click(function() {
        return false
      })
    }
    
    container.show()
        
  }
  
  var host = "http://zmxmusic.com";
  getStyles(host + "/stylesheets/widget.min.css");
  getScript(host + "/javascripts/widget.min.js", function() {
    window.$zmxmusic = window.jQuery.noConflict(true);
    init();
  });

})();