var ProductSelector = new Class({

	initialize: function(){
	  if ($('product_sizes')) {
			var group = $('product_sizes').getElements('label');
			group.each(function(el){
				this.setClickEvent(el, group);
				this.setSizesMouseOverEvent(el);
				this.setSizesMouseOutEvent(el);
			}, this);		
    }
		if ($('product_options')) {
			var group =$('product_options').getElements('.product_selector')
			group.each(function(el){
				this.setClickEvent(el, group);
				this.setOptionsMouseOverEvent(el, group);
				this.setOptionsMouseOutEvent(el, group);
      }, this);
		}
	},

	setClickEvent: function(el, group) {
		el.addEvent('click', function() {
      var radio = $(this.getProperty('for') || 'product_option_id_'+el.getProperty('id').split('_')[1]); 
        group.each(function(el){
          el.removeClass('product_selector_selected');
        });
        el.addClass('product_selector_selected');
				radio.checked = true;
    });
  },
	
	setOptionsMouseOverEvent: function(el, group) {
    var child = el.getParent().getPrevious().getElement('.product_option_prices');
    var childs = $$('.product_option_prices');
    el.addEvent('mouseenter', function() {
      if (!el.hasClass('mouseOver')) {
          el.addClass('mouseOver');
      }
      childs.each(function(el){
        if (!el.hasClass('hidden')) {
          el.addClass('hidden');
        }
      });
      child.removeClass('hidden');
    });
    
  }, 
	
	setOptionsMouseOutEvent: function(el, group) {
    var child = el.getParent().getPrevious().getElement('.product_option_prices');
    el.addEvent('mouseleave', function() {
        if (el.hasClass('mouseOver')) {
          el.removeClass('mouseOver');
        }
        if (!child.hasClass('hidden')) {
          child.addClass('hidden');
        }
    });
   },
	
	setSizesMouseOverEvent: function(el) {
		el.addEvent('mouseenter', function() {
			if (!el.hasClass('mouseOver')) {
          el.addClass('mouseOver');
      }
    });
	},
	
	setSizesMouseOutEvent: function(el) {
    el.addEvent('mouseleave', function() {
      if (el.hasClass('mouseOver')) {
          el.removeClass('mouseOver');
      }
    });
  }

});


document.write('<style type="text/css">#product_options input,#product_options label, #product_sizes input {position:absolute; left:-9999px;}</style> ');
window.addEvent('domready', function(){
	new ProductSelector();
});