Object.extend(Rules, 
 { 
 	'#cart_quantity:submit': function (element, evt)
	{
		var node = Event.element(evt);
		var id = node.id;
		var error = false;
		var error_message = '';
		var total_flavors = 0;
		var prod_flavors = $('prod_flavors').value;
		var flavors = document.getElementsByClassName('attributes');
		var flavors_qty = document.getElementsByClassName('attributes_qty');
		
		if (flavors.length>0)
		{
			for (i=0;i<flavors.length;i++)
			{
				total_flavors = Math.abs(total_flavors) + Math.abs(flavors_qty[i].value);
			}
			if (total_flavors!=prod_flavors)
			{
				error = true;
				
				var total_flavors = prod_flavors - total_flavors;
				if (total_flavors>0)
					error_message += 'You need to add ' + total_flavors + ' more items.';
				else
					error_message += 'You need to remove ' + Math.abs(total_flavors) + ' items.';
			} 
		}
		if (error==true)
		{
			Event.stop(evt);
			$('error_text').innerHTML = error_message; 
			Effect.Appear('error_message',{duration:0.5,queue:'end',to:0.94});
			
			return false;
		}
	},
	'.cart_quantity:submit': function (element, evt)
	{
		var node = Event.element(evt);
		var id = node.id;
		
		var pid = id.replace('cart_quantity-', '');
		var error = false;
		var error_message = '';
		var total_flavors = 0;
		var prod_flavors = $('prod_flavors['+pid+']').value;
		var flavors = document.getElementsByClassName('attributes'+pid+'');
		var flavors_qty = document.getElementsByClassName('attributes_qty'+pid+'');
		
		if (flavors.length>0)
		{
			for (i=0;i<flavors.length;i++)
			{
				total_flavors = Math.abs(total_flavors) + Math.abs(flavors_qty[i].value);
			}
			if (total_flavors!=prod_flavors)
			{
				error = true;
				
				var total_flavors = prod_flavors - total_flavors;
				if (total_flavors>0)
					error_message += 'You need to add ' + total_flavors + ' more items.';
				else
					error_message += 'You need to remove ' + Math.abs(total_flavors) + ' items.';
			} 
		}
		if (error==true)
		{
			Event.stop(evt);
			$('error_text').innerHTML = error_message; 
			Effect.Appear('error_message',{duration:0.5,queue:'end',to:0.94});
			
			return false;
		}
	},
	'#error_message:mouseout': function (element, evt)
	{
		var node = Event.element(evt);
		var id = node.id;
		Effect.Appear('error_message',{duration:0.5,start:0.94,to:0.00});
		
	}
 }
);

Event.observe(window, 'load', onLoad, false);

function onLoad(evt)
{
	EventSelectors.start(Rules);
}



Ajax.Responders.register({
  onCreate: function() {
  	//var pageSize = getPageSize();
	var busy = document.getElementsByClassName('busy');
	for (i=0;i<busy.length;i++)
	{
		if (Ajax.activeRequestCount>0)
			Effect.Appear(busy[i],{duration:0.5,queue:'end'});
	}
	/*if (Ajax.activeRequestCount>0)
		Effect.Appear($('overlay'),{duration:1.5,queue:'end'});*/ 
    if($('busy') && Ajax.activeRequestCount>0)
	{
	  //$('overlay').style.width = pageSize[0]+"px"; 
	  
      Effect.Appear('busy',{duration:0.5,queue:'end'});
	  //document.getElementById('header').style.opacity = "50%";
	}
  },
  onComplete: function() {
  	//var pageSize = getPageSize();
	var busy = document.getElementsByClassName('busy');
	for (i=0;i<busy.length;i++)
	{
		if (Ajax.activeRequestCount==0)
			Effect.Fade(busy[i],{duration:0.5,queue:'end'});
	}
    if($('busy') && Ajax.activeRequestCount==0)
	{
	  //$('overlay').style.width = pageSize[0]+"px"; 
	  //$('overlay').style.height = pageSize[1]+"px"; 
      Effect.Fade('busy',{duration:0.5,queue:'end'});
	  //document.getElementById('header').style.opacity = "100%";
	}
  }
});
