var slideshow_timer = 5000; 
var slideshow_intervals = new Array();
var slide_add_selected = '';

function open_slideshow_item(selector, id) {

	if (typeof selector == "undefined") { var selector = ''; return false; }
	
	
	
	if (selector && id && id!=$(".slideshow_item.selected", selector).attr('rel')) {
		

		var element = $(".slideshow_item[rel='"+id+"']", selector);
		
		$('.slideshow_item', selector).removeClass('selected').css('z-index','3').stop(true, true).fadeOut(800);
		$('.slideshow_item .data', selector).animate({bottom:'-100px'},300);
		
		element.addClass('selected').css('z-index','5').stop(true, true).fadeIn(800);
		$('.data', element).delay(400).animate({bottom:'0'},300);
			
		$('.slideshow_controls a', selector).removeClass('selected');
		$(".slideshow_controls a[rel='"+id+"']", selector).addClass('selected');
		
	} else { return true; }
}

function start_slideshow(selector){
	
	var selector_stored = selector;
	if (typeof selector == "undefined") { var selector = ''; return false; }
	
	if(typeof slideshow_intervals[selector]=="undefined" && slideshow_timer>0){
		slideshow_intervals[selector] = window.setInterval(function(){ slideshow_next(selector_stored); } ,slideshow_timer);
	}else{
		stop_slideshow(selector);
	}
	
}

function stop_slideshow(selector){

	if (typeof selector == "undefined") { var selector = ''; return false; }
	
	if(typeof slideshow_intervals[selector]!="undefined"){
		window.clearInterval(slideshow_intervals[selector]);
		delete slideshow_intervals[selector];
	}
}

function slideshow_next(selector){

	if (typeof selector == "undefined") { var selector = ''; return false; }

	if (slideshow_timer) {
		var current_slide = $(".slideshow_item.selected", selector).attr('rel');
		var total_slides = $(".slideshow_item", selector).length;
		var current_slide_index =  $(".slideshow_item", selector).index($(".slideshow_item.selected", selector));
		if (current_slide_index+1 < total_slides) {
			var next_slide = $(".slideshow_item.selected", selector).next().attr('rel');
		} else {
			var next_slide = $('.slideshow_item:first', selector).attr('rel');
		}
		//alert(next_slide);
		if (next_slide){
			open_slideshow_item(selector, next_slide);
			return true;
		} else { return false; }
	} else { return false; }
	
}

function slideshow_init(selector, show_only_number) {
	if (typeof selector == "undefined") { var selector = ''; return false; }
	if (typeof show_only_number == "undefined") { var show_only_number = false }

	if (selector) {
	
		var count_slideshow_items = $('.slideshow_item', selector).length;

		if (count_slideshow_items) {
			
			var slide_i=1;
			$('.slideshow_item', selector).each(function(i){
				slide_i = i + 1;
				var element = $(this);
				slide_rel = element.attr('rel');
				
				var title_with_a = $('.title', element).html();
				var title = $('.title a', element).html();
				if (!title) title = title_with_a;
				
				var description = $('.description', element).html();
				var description_short = $('.description', element).attr('shortdescription');
				if (!description_short) description_short = description;
				
				if (slide_i==1) {
					var slide_add_selected = ' class="selected"';
					element.addClass('selected');
				} else {
					var slide_add_selected = '';
				}
				
				if(show_only_number){
					// append single number control
					$('.slideshow_controls', selector).append('<a href="#" rel="'+slide_rel+'" '+slide_add_selected+' title="'+title+'">'+slide_i+'</a>'); 
				} else {
					// append full control
					$('.slideshow_controls', selector).append('<a href="#" rel="'+slide_rel+'" '+slide_add_selected+' title="'+title+'">'+title+' <span>'+description_short+'</span></a>'); 
				}
				
			});
			
			$('.slideshow_loading', selector).hide();
			
			$('.slideshow_item:first', selector).show();
			$('.slideshow_item:first .data', selector).css('bottom', '0');
			$('.slideshow_controls a', selector).live('click', function () {
				var id = $(this).attr('rel');
				open_slideshow_item(selector, id);
				stop_slideshow(selector);
				return false;
			});	
			
			if (slideshow_timer>0) {
				start_slideshow(selector);
			}
			
			$(selector).mouseenter(function () {
				stop_slideshow(selector);
			}).mouseleave(function() {
				start_slideshow(selector);
			});	
		}
		
		
		
	}
}


