/*
 * AdTimize client scripts
 *
 * Copyright (c) 2009 Michal Wiglasz, www.friml.net
 */
 
 
/* 
Banners at homepage
	
	z-indexes: 
		10 = current visible banner
		11 = all other banners
		
	how it works:
		INIT:
			1. load all banners into array (all have z-index 11 set in css)
			2. set top-most banner z-index to 10
			3. start the loop
			
		LOOP/NEXT/PREV:
			1. fade-in next/prev banner
			2. hide previously top-most banner and set its z-index to 11
			3. set newly displayed banner z-index to 10
			
	Includes one very ugly fix for Opera... (It animates a little bit different.)
*/

// settings
var banner_delay = 10000;
var banner_resume_delay = 25000;


var banners = new Array();
var current_banner = 0;
var banner_count;
var banner_stopped = false;

function banner_init() {
	$('#banners .banner').each(function(i) {
		banners[i] = tmp = $(this);
		if(i != 0) {
			tmp.hide();
			if($.browser.opera) tmp.children('p').hide();
		}
	});
	
	banner_count = banners.length;
	
	banners[current_banner].css('z-index', 10);
	setTimeout(banner_loop, banner_delay);
	
	$('#banners')
		.append('<a href="javascript:banner_show(banner_prev, true);" id="banner-left" class="arrow">&larr;</a>')
		.append('<a href="javascript:banner_show(banner_next, true);" id="banner-right" class="arrow">&rarr;</a>');
}

function banner_next() {
	current_banner++;
	if(current_banner == banner_count)
		current_banner = 0;
}

function banner_prev() {
	current_banner--;
	if(current_banner == -1)
		current_banner = banner_count-1;
}

function banner_show(nextitem_callback, pause, finished_callback) {
	var old = banners[current_banner];
	
	nextitem_callback();
	
	var next = banners[current_banner];
	
	var speed = $.browser.opera ? 'normal' : 'slow';

	next.fadeIn(speed, function() {
		if($.browser.opera) {
			next.children('p').fadeIn('fast');
			old.children('p').hide();
		}
		old.hide();
		old.css('z-index', 11);
		next.css('z-index', 10);
		if($.isFunction(finished_callback)) finished_callback();
	});
	
	if(pause) banner_pause();
}

function banner_loop() {
	if(!banner_stopped) {
		banner_show(banner_next, false, function() { setTimeout(banner_loop, banner_delay); });
		
	}
}

function banner_stop() {
	banner_stopped = true;
}

function banner_pause() {
	banner_stopped = true;
	setTimeout(banner_resume, banner_resume_delay);
}

function banner_resume() {
	banner_stopped = false;
	banner_loop();
}