$.fn.banners = function(json){
	var data = new Array();
	var i = 0;
	for (var k in json) {
		data[i] = new Array();
		for (var key in json[k])
			data[i][key] = json[k][key];
		i++;
	}
	
	if ( data.length == 0 )
		return;

	var self = this;
		self.active = 0;
	var banners = self.find('.promo');
	var amount = data.length;
	var link = self.find('.link');
	var title = self.find('.overlay span');
	
	title.html(data[0].title);
	link.attr('href', data[0].link);

	link.eq(0).show();
	
	if (amount > 1) {
		var switcher = self.find('.switcher a');
		var img = self.find('.img img');
		var onClick = function(i){
			var left = img.eq(i).position().left;
			self.interval = window.clearInterval(self.interval);
			switcher.eq(self.active).removeClass('active');
			switcher.eq(i).addClass('active');
			title.fadeOut('fast', function(){
				title.html(data[i].title);
				link.attr('href', data[i].link);
				title.fadeIn('fast');
			});
			link.eq(self.active).hide();
			link.eq(i).show();
			img.parent().animate({left: -left}, function(){
				self.active = i;
				self.off = 0;
				self.interval = window.setInterval(slide, 7500);
			});
		}
		var slide = function(){
			var active = self.active + 1;
			if (img.eq(active).size() == 0) active = 0;
			
			onClick(active);
		}
		
		switcher.each(function(i){
			$(this).data({index: i});
		}).click(function(){
			if (!$(this).hasClass('active') && self.off != 1) {
				self.off = 1;
				onClick($(this).data('index'));
			}
		});
		
		self.interval = window.setInterval(slide, 7500);
	}
}
