/** hotj jQuery plugin 
 *	@version 0.8
 *	@author derki
 */
jQuery.fn.extend({
	hotj: function(data) {
		
		function hotj_select(element,item) {
			element.find('div#hotj_left_content div.selected').show(150);
			item.hide(150).addClass('selected');
			var highlight = item.clone();
			
			element.find('div#hotj_selector_anim').fadeOut(150,function() {
				element.find('div#hotj_right_content').css('backgroundImage','url('+highlight.find('div.pic').html()+')');
				element.find('div#hotj_right_content div.hotj_plate').html(highlight.find('div.heading').html());
				jQuery(this).find('div.hotj_item').replaceWith(highlight);	
				jQuery(this).find('div.hotj_selected_info').html(highlight.find('div.info').html());
				jQuery(this).fadeIn(200);
			});
			
			if(hotj_select.timer) {
				clearTimeout(hotj_select.timer);
			}
			
			var next = parseInt(item.find('div.index').html())+1;
			next = (next<5) ? next : 0;
			
			hotj_select.timer = setTimeout(function() {
				hotj_select(element,jQuery(element.find('div#hotj_left_content div.hotj_item').get(next)));
			},hotj_select.timeout);
		}
		
		hotj_select.timeout = data.timeout;
		
		this.find('h4.hotj_heading').html(data.heading);
		var $pics = this.find('div#hotj_left_content div.hotj_item');
		var e = this;
		jQuery.each(data.items,function(index,data) {
			var preload = new Image;
			preload.src = data.picture;
				
			var $target = jQuery($pics.get(index)).find('div.image');
			$target.css('backgroundImage','url('+data.thumb+')');
			$target.find('div.hotj_plate').html(data.plate);
			$target.hover(function() {
				jQuery(this).find('div.hotj_plate').fadeOut(200);
			},function() {
				jQuery(this).find('div.hotj_plate').fadeIn(150);
			});
			
			$target.append('<div class="hidden pic">'+data.picture+'</div>'+
				'<div class="hidden heading">'+data.title+'</div>'+
				'<div class="hidden info">'+data.info+'</div>'+
				'<div class="hidden index">'+index+'</div>');
			
			$target.parent().click( function() {
				hotj_select(e,jQuery(this));
			});
		});
		
		hotj_select(this,jQuery($pics.get(data.selected)));
		
		return this;
	}
});
