jQuery.noConflict();
var SIDEBARTOUT = {
	
	/* OPTIONS: DEFAULT VALUES */
	BOX_ID: '#sidebar-tout',
	DIM_X: 200,
	DIM_Y: 300,
	TRANS_SPD: 750,
	DEFAULT_PAUSE_DUR: 2500,

	SD: {},
	PAUSE_DURS: [],
	SLIDE_START: 'normal',
	LOAD_STAT: [],
	SLIDE_CNT: 0,
	TRANS_INTRVL: 0,
	CURRENT_SLIDE: 1,
	NXT_SLIDE: 2,
	FRST_SLIDE: 0,
	
	init: function(d) {
		SIDEBARTOUT.SD = d;
		if (d) SIDEBARTOUT.prepareTouts();
	},
	
	prepareTouts: function() {

		/* SET CONFIG OPTIONS */
		jQuery.each(SIDEBARTOUT.SD,function(i,configoption) {
			jQuery.each(configoption, function(k, v) {
				switch (k) {
					case 'boxid': 
						SIDEBARTOUT.BOX_ID = v; 
						break;
					case 'firstslide': 
						SIDEBARTOUT.SLIDE_START = v; 
						break;
					case 'width': 
						SIDEBARTOUT.DIM_X = v; 
						break;
					case 'height': 
						SIDEBARTOUT.DIM_Y = v; 
						break;
					case 'transitionspeed': 
						SIDEBARTOUT.TRANS_SPD = Number(v); 
						break;
					case 'pauseduration': 
						SIDEBARTOUT.DEFAULT_PAUSE_DUR = Number(v); 
						break;	
				}
			});
		});
		var cssW = SIDEBARTOUT.DIM_X + 'px';
		var cssH = SIDEBARTOUT.DIM_Y + 'px';
		jQuery(SIDEBARTOUT.BOX_ID).css('width',cssW).css('height',cssH);			
		SIDEBARTOUT.SLIDE_CNT = SIDEBARTOUT.SD.touts.length;
		/* CREATE SLIDES */
		jQuery.each(SIDEBARTOUT.SD.touts,function(i,tout){
		   	var htmlStr = '<div class=\"slide slide-' + tout.id + '\" style=\"left: 999px;\"><div class=\"image\">';
			if (tout.link.length > 7) {
				htmlStr += '<a href=\"' + tout.link + '\"><img src=\"' + tout.image + '\" alt=\"' + tout.title + '\" /></a>';
			} else {
				htmlStr += '<img src=\"' + tout.image + '\" alt=\"' + tout.title + '\" />';
			}
			htmlStr += '</div></div>';
			jQuery(SIDEBARTOUT.BOX_ID).append(htmlStr);
			var thisSlidePos = (tout.id - 2);
			if (thisSlidePos < 0) thisSlidePos = (SIDEBARTOUT.SLIDE_CNT - 1);
			if (tout.pauseduration) {
				SIDEBARTOUT.PAUSE_DURS[thisSlidePos] = tout.pauseduration;
			} else {
				SIDEBARTOUT.PAUSE_DURS[thisSlidePos] = SIDEBARTOUT.DEFAULT_PAUSE_DUR;
			}
			var thisSlideImg = SIDEBARTOUT.BOX_ID + ' .slide-' + tout.id + ' img';
			jQuery(thisSlideImg).load(function(){ 
				SIDEBARTOUT.LOAD_STAT[thisSlidePos] = true; 
			});
		});
		SIDEBARTOUT.startAnimation();

	},
	
	startAnimation: function() {
		/* ANIMATE IF MORE THAN ONE */
		if (SIDEBARTOUT.SLIDE_CNT > 1) {
			if (SIDEBARTOUT.FRST_SLIDE == 0) {
				if (SIDEBARTOUT.SLIDE_START == 'random') {
					SIDEBARTOUT.FRST_SLIDE = Math.ceil(Math.random() * SIDEBARTOUT.SLIDE_CNT); 
				} else {
					SIDEBARTOUT.FRST_SLIDE = 1; 
				}
				var firstSlide = SIDEBARTOUT.BOX_ID + ' .slide-' + SIDEBARTOUT.FRST_SLIDE;
				jQuery(firstSlide).css('left', '0');
				SIDEBARTOUT.CURRENT_SLIDE = SIDEBARTOUT.FRST_SLIDE;
				var thisSlidePos = (SIDEBARTOUT.CURRENT_SLIDE - 1);
				SIDEBARTOUT.NXT_SLIDE = (SIDEBARTOUT.CURRENT_SLIDE < SIDEBARTOUT.SLIDE_CNT) ? (SIDEBARTOUT.CURRENT_SLIDE + 1) : 1;
				SIDEBARTOUT.TRANS_INTRVL = setInterval("SIDEBARTOUT.toutAnimate()", SIDEBARTOUT.PAUSE_DURS[thisSlidePos]);
			}
		} else {
			var firstSlide = SIDEBARTOUT.BOX_ID + ' .slide-1';
			jQuery(firstSlide).css('left', '0');			
		}
	},
	
	toutAnimate: function () {
		var slidePos = (SIDEBARTOUT.NXT_SLIDE - 1);
		if (SIDEBARTOUT.LOAD_STAT[slidePos] == true) {
			clearInterval(SIDEBARTOUT.TRANS_INTRVL);
			SIDEBARTOUT.swapZ();
			var thisSlidePos = (SIDEBARTOUT.CURRENT_SLIDE - 1);
			var nextSlide = SIDEBARTOUT.BOX_ID + ' .slide-' + SIDEBARTOUT.NXT_SLIDE;
			jQuery(nextSlide).css('display','none').css('left','0');
			jQuery(nextSlide).fadeIn(SIDEBARTOUT.TRANS_SPD);
			SIDEBARTOUT.CURRENT_SLIDE = SIDEBARTOUT.NXT_SLIDE;
			SIDEBARTOUT.NXT_SLIDE = (SIDEBARTOUT.CURRENT_SLIDE < SIDEBARTOUT.SLIDE_CNT) ? (SIDEBARTOUT.CURRENT_SLIDE + 1) : 1;
			SIDEBARTOUT.TRANS_INTRVL = setInterval("SIDEBARTOUT.toutAnimate()", SIDEBARTOUT.PAUSE_DURS[thisSlidePos]);
		}
	},
	
	swapZ: function() {
		for (var i=1; i<=SIDEBARTOUT.SLIDE_CNT; i++) {
			var thisSlide = SIDEBARTOUT.BOX_ID + ' .slide-' + i;
			if (i == SIDEBARTOUT.CURRENT_SLIDE) { 
				jQuery(thisSlide).css('left', '0').css('z-index', '2');
			} else {
				jQuery(thisSlide).css('left', '999px').css('z-index', '3');
			}
		}
	}
	
};

