
/*========== FUNCTION NEEDED BY TOGGLE-LIST.JS ===========*/
Array.implement({
    applyToEach: function(fn) {
        var args = Array.prototype.slice.call(arguments, 1);
        this.each(function(item) {
            item[fn].apply(item, args);
        });
    }
});
/*========== BROWSE BY NAV ===========*/
window.addEvent('domready', function() {	
	var expandables = document.getElements('ul.expandable');
	expandables.setStyle('display', 'block');
	expandables.each(function(element){
		new ToggleList(element, {'moreText': 'Browse By', 'lessText': 'Browse By', 'collapsed': 0, 'placement': 'top'});
	});
});
/* Search Header - Clears text for input box */
window.addEvent('domready', function() {
    var searchInput = document.getElements("#global-search-term");
    searchInput.addEvent('focus', function() {
        if (this.get('value') == '--Search--')
            this.set('value', '');
    });
    searchInput.addEvent('blur', function() {  
        if (this.get('value') == '')
            this.set('value', '--Search--');
    });
    searchInput.fireEvent('blur');
    document.getElements(".search-form").addEvent('submit', function() {
        var input = this.getElement(".entire-search");
        input.set('value', input.get('value').replace('--Search--', ''));
    });
});
window.addEvent('domready', function() {
	zlib.shoppingCartButtonize('.add-to-cart', 'product-form');
});

var zlib = new Object();

zlib.buttonize = function(selector, spans) {
    $$(selector).each(function(button) {
        if (button.hasClass("button-x"))
            return;
        var begin = "";
        var end = "";
            (spans).times(function() {
                begin = begin + "<span>";
                end = end + "</span>";
            });
        button.set('html', begin + button.get('html') + end);
    });
};

zlib.shoppingCartButtonize = function(selector, form) {
    $$(selector).each(function(button) {
        var a = new Element('a', {'class': 'sc-button', 'href': '#'});
        a.set('html', button.get('value'));
        a.addEvent('click', function(e) {
            e.preventDefault();
            var hidden = new Element('input', {'type': 'hidden'});
            hidden.set('name', 'add-to-cart');
            hidden.set('value', 'true');
            $(form).grab(hidden, 'top');
            $(form).fireEvent('submit');
        });
        a.replaces(button);
    });
};

zlib.actionButtonize = function(selector) {
    document.getElements(selector).each(function(button) {
        button.set('class', 'sc-button');
    });
};

zlib.createRoundedCorners = function() {
  if (Browser.Engine.webkit420) //webkit 3 has border-radius thus doesn't need to spend time doing this
    return true;
    
  console.time("Timing createRoundedCorners()");
  
  var extra = new Element('div', {'class': 'rounded'});
  extra.grab(new Element('div'));
  var clearDiv = new Element('div', {'class': 'clear', 'style': {'clear': 'both', 'font-size': '1px', 'line-height': '1px'}});
  
  $$('.round').each(function(element) {
      if (element.get('tag') == 'h3') {
          var h3Wrap = new Element('div', {'class': 'round-h3-wrap'});
          h3Wrap.grab(extra.clone(), 'top');
          h3Wrap.wraps(element);
          var newPadding = element.getStyle('padding-top').toInt()-5;
          newPadding = (newPadding < 0) ? 0 : newPadding;
          element.setStyle('padding-top', element.getStyle('padding-top').toInt()-5);

          h3Wrap.setStyle('margin', element.getStyle('margin'));
          element.setStyle('margin', 0);
      } else {
          var divWrap = new Element('div', {'class': 'round-div-wrap'});
          divWrap.wraps(element, 'top');
          if (element.hasClass('round-important')) {
              var lightExtra = extra.clone();
              lightExtra.addClass('rounded-important');
              divWrap.grab(lightExtra);
          } else {
              divWrap.grab(extra.clone());
          }
          var newPadding = element.getStyle('padding-bottom').toInt()-5;
          newPadding = (newPadding < 0) ? 0 : newPadding;
          element.setStyle('padding-bottom', newPadding);

          element.grab(clearDiv.clone());
          divWrap.setStyle('margin', element.getStyle('margin'));
          element.setStyle('margin', 0);
          element.setStyle('margin-left', 1);
      }
  });
  
  delete extra;
  delete clearDiv;
  
  console.timeEnd("Timing createRoundedCorners()");
  return true;
};
