Ajax.Responders.register({
  // Show progress indicator and hide 
  // all other notices 
  onLoading: function() {
    document.body.addClassName('loading');
  },
  
  onComplete: function() {
    document.body.removeClassName('loading');
  }    
});


Shopify.onError = function(error) {    
  alert('Error: ' + error.message);
}
  
Shopify.onCartUpdate = function(cart) {
  if (!$('minicart').visible()) {
    Showroom.showCart();      
  }
  
  $('minicart-total').innerHTML = Shopify.formatMoney(cart.total_price);
  $('minicart-quantity').innerHTML = cart.item_count;

  $A($('minicart-items').childNodes).each(function(node) { $('minicart-items').removeChild(node); });
  
  if(cart.items.length > 0) {
    
    cart.items.each(function(item) {
    
      itemDiv           = document.createElement('div');
    	itemDiv.className = 'minicart-item';
    	itemDiv.id        = 'item-'+item.variant_id;

    	itemDiv.innerHTML = '<div class=\"minicart-item-image\">'+
                       '<a href=\"'+item.url+'\"><img src=\"' + Shopify.resizeImage(item.image, 'thumb') + '\" alt=\"' + item.title + '\" /></a>' +
    						       '</div>' +
     						       item.quantity + 'x<br /><small><a href=\"'+item.url+'\">' + item.title.truncate(18) + '</a><br />' +
     						       '<span class="dark-link"><a href=\"/cart/change/'+item.variant_id+'?quantity=0\" onclick=\"Shopify.removeItem(' + item.variant_id + ');return false\">remove</a></span></small>';      
    
      $('minicart-items').appendChild(itemDiv);
    });
  
  } else {
    Showroom.hideCart();
  }
}  
  
Shopify.onItemAdded = function(line_item) { 

  Shopify.getCart(function(cart){
    Shopify.onCartUpdate(cart);
    
    if($('item-'+line_item.variant_id)) {
      new Effect.Pulsate($('item-' + line_item.variant_id).firstChild, { duration: 1.0, pulses: 3 });    
    }

  });
}

var Showroom = { 

  toggleCart: function() {
    if (!$('minicart').visible()) {
      this.showCart();
    } else {
      this.hideCart();
    }
  },
  
  hideCart: function() {    
    new Effect.BlindUp($('minicart'));
    $('page').removeClassName('show-minicart');
  },
  
  showCart: function() {
    new Effect.BlindDown($('minicart'));
    $('page').addClassName('show-minicart');
  },
  
  onVariantChange: function(select) {
    $('product-lightbox-price').update((select.options[select.selectedIndex]).title);
  },
  
  updatePrice: function(product_id) {
    var field = $('product-quantity-'+product_id);
    $('price-field-'+product_id).innerHTML = Shopify.formatMoney($('price-'+product_id).value * field.options[field.selectedIndex].text);
  }
}

function parseCaption(url) {
    var caption = url.substring(url.lastIndexOf('/') + 1, url.lastIndexOf('.'));
    caption = caption.replace(/_large/g,' ');
    caption = caption.replace(/_/g,' ');
    return caption;
}

function showImage(url) {
    $('featured-image').src = url;
    $('image-caption').innerHTML = parseCaption(url);
}

function emailFriend(product,url,stylesheet_url) {
    window.open("http://www.telegram.net.au/mailer/email-friend.php?site=notemaker&product="+escape(product)+"&url="+url+"&stylesheet_url="+stylesheet_url, "sendToAFriendWindow","height=400,width=450,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,directories=no,titlebar=no");
}

function stockNotify(product,url,stylesheet_url) {
    window.open("http://www.telegram.net.au/mailer/stock-notify.php?site=notemaker&product="+escape(product)+"&url="+url+"&stylesheet_url="+stylesheet_url, "stockNotifyWindow","height=250,width=450,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no,directories=no,titlebar=no");
}