// 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;
		}
	}
	
	$('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);
});