// JavaScript Document

var soc_offers = Array();

document.observe('dom:loaded', function(){
	$$('#specialOfferCallout .soc_offer').each(function(e){
		soc_offers.push(e);
	});
	
	soc_offers.pointer = 0;
	
	soc_offers.current = function() {
		return soc_offers[soc_offers.pointer];
	};
	
	soc_offers.next = function() { 
		if (soc_offers.length > 0)
		{
			soc_offers.pointer += 1;  
			if (soc_offers.pointer >= soc_offers.length)
			{
				soc_offers.pointer = 0;
			}
			return soc_offers.current();
		} else {
			return false;
		}
	};
	
	soc_offers.prev = function() {
		if (soc_offers.length > 0)
		{
			soc_offers.pointer -= 1;  
			if (soc_offers.pointer < 0)
			{
				soc_offers.pointer = soc_offers.length - 1;
			}
			return soc_offers.current();
		} else {
			return false;
		}
	};
	
	soc_offers.goto = function(i) {
		if (soc_offers.length > 0)
		{
			soc_offers.pointer = i;  
			if (soc_offers.pointer < 0)
			{
				soc_offers.pointer = 0;
			} else if (soc_offers.pointer >= soc_offers.length) {
				soc_offers.pointer = soc_offers.length - 1;
			}
			return soc_offers.current();
		} else {
			return false;
		}
	}

	if($('soc_next') != null && $('soc_next') != undefined){
	  $('soc_next').clickFX = function(){
		  if (soc_offers.length > 1)
		  {
			  var c = soc_offers.current();

			  new Effect.Opacity(c.identify(), {
				  from: 1,
				  to: 0,
				  duration: 0.5,
				  beforeSetup: function(){
					  $('soc_next').stopObserving('click', $('soc_next').clickFX);
					  $('soc_prev').stopObserving('click', $('soc_prev').clickFX);

					  var n = soc_offers.next();
					  n.show();

					  new Effect.Opacity(n.identify(), {
						  from: 0,
						  to: 1,
						  duration: 0.5,
						  afterFinish: function(){
							  c.hide();
							  $('soc_next').observe('click', $('soc_next').clickFX);
							  $('soc_prev').observe('click', $('soc_prev').clickFX);
						  }
					  });
				  }
			  });
		  }
	  };
	  $('soc_next').observe('click', $('soc_next').clickFX);

	
	  $('soc_prev').clickFX = function(){
		  if (soc_offers.length > 1)
		  {
			  var c = soc_offers.current();

			  new Effect.Opacity(c.identify(), {
				  from: 1,
				  to: 0,
				  duration: 0.5,
				  beforeSetup: function(){
					  $('soc_next').stopObserving('click', $('soc_next').clickFX);
					  $('soc_prev').stopObserving('click', $('soc_prev').clickFX);

					  var p = soc_offers.prev();
					  p.show();

					  new Effect.Opacity(p.identify(), {
						  from: 0,
						  to: 1,
						  duration: 0.5,
						  afterFinish: function(){
							  c.hide();
							  $('soc_next').observe('click', $('soc_next').clickFX);
							  $('soc_prev').observe('click', $('soc_prev').clickFX);
						  }
					  });
				  }
			  });
		  }
	  };
	  $('soc_prev').observe('click', $('soc_prev').clickFX);
	}
});
