var banner =  {
    'target': "",
    'interval' : "",
    'banners': [],
    'selected': 0,
    'total': 0,
    'active': false,
    'width': 960,
    'height': 265,
    'transitiontime': 1000,
    'bannertime': 9000,
    'setup': function(target) {
	
	banner.target = target;
	banner.banners = [];
	banner.total = 0;
	banner.selected = 0;
	$(this.target+' div.banner').each(function(i) {
	    banner.addBanner($(this).html());
	    if(i > 0) {
		$(this).remove();
	    } else {
				$(this).css('display','block');
			}
	});

	var controls = "";
	for(i in banner.banners) {
	    j = parseInt(i) + 1; /* Give logical numbers */
	    apClass = (j == 1) ? ' active' : '';
	    controls += "<a href=\"javascript:banner.go("+i+");\" class=\"control-link" + apClass + "\">"+j+"</a> ";
	}

	if(banner.banners.length > 1) {
		//console.log($(target).prev());
		$(target).append("<div class=\"controls\">"+controls+"</div>");
		//console.log($('div.controls').prev().children().attr('class'));
	}
	
	var offsets = $(target).offset();

	this.total -= 1;

	/*
	$(target).click(function(evnt){
	    var offsets = $(target).offset();
	    var clicked = (evnt.pageX - offsets.left) - (banner.width/2);
	    if(clicked > 0) {
		banner.next();
	    } else {
		banner.back();
	    }
	});
	*/
	$('.control-link').click(function(evnt){
		$('.control-link').removeClass('active');
		$(this).addClass('active');
		//Cufon.replace('div.banner h2');
	});
	banner.timer();
    },
    'timer': function() {
	clearTimeout(banner.interval);
	banner.interval = setInterval(banner.next, banner.bannertime);
    },
    'next': function() {
	banner.timer();
	var next_banner = banner.selected + 1; if(next_banner > banner.total) { next_banner = 0; }
	banner.changeBanner(next_banner);
    },
    'back': function() {
	banner.timer();
	var next_banner = banner.selected - 1; if(next_banner < 0) {next_banner = banner.total; }
	banner.changeBanner(next_banner);
    },
    'go': function(next_banner) {
	banner.timer();
	banner.changeBanner(next_banner);
	Cufon.replace('div.banner h2');
    },
    'changeBanner': function(next_banner) {
	if(next_banner != banner.selected) {
	    if(banner.active == false) {
		banner.active = true;
		banner.selected = next_banner;
		//alert(this.top+' '+this.left);
		$(banner.target).append("<div class='banner'>"+banner.banners[next_banner]+"</div>");
		$(banner.target+' div.banner').last().css('opacity',0).fadeTo(banner.transitiontime,1,function() {
		    $(banner.target+' div.banner').first().remove();
		    banner.active = false;

		});
	    }
	}
    },
    'addBanner': function(html) {
	banner.banners.push(html);
	banner.total = banner.banners.length;
    }
};

$(function(){
    banner.setup('.banners');
		$('.hidden-text .text').hide();
		$('.reveal').click(function(evnt) {
		    evnt.preventDefault();
		    $(this).closest('.hidden-text').find('.text').slideToggle();
		});
});


