/*
 * Slideshow
 * 
 * http://www.systemagic.co.uk
 *
 */

slideshow = new Array();

jQuery.fn.extend({
	slideshow: function(value){
		if(this.length < 1) return;
		
		slideshow[slideshow.length] = new Array();
		me = slideshow[slideshow.length-1];
		me.id = slideshow.length-1;
		me.images = new Array();
		me.current = 0;
		var value = value || {};
		var id = $(this).attr("id");
		var interval = value.interval*1000 || 5000;
		var transition = value.transition*1000 || 1000;
		var items = value.items || [];
		var titles = [];
		var url = value.url || "";
		me.transition = transition;

		if(items.length == 0){
			for(var i=0;i<$("#"+id+" > img").get().length;i++){
				items.push($("#"+id+" > img").eq(i).attr("src"));
				titles.push($("#"+id+" > img").eq(i).attr("title"));
			}
			$("#"+id+" > img:not(:first)").remove();
		}
		
		me.images = new Array();
		
		for(i=0;i<items.length;i++){
			me.images[i] = new Image();
			me.images[i].src = url+items[i];
			me.images[i].title = titles[i];
		}
		
		$('#'+id+' > img').attr("src", me.images[0].src);
		$('#'+id+' > img').attr("title", me.images[0].title);
		$('#'+id+' > img').css({ "position": "relative", "top": "0px", "left": "0px", "float":"left" });
		$('#'+id+' > img').clone().appendTo(this);
		$('#'+id+' > img:last').attr("src", me.images[1].src);
		$('#'+id+' > img:last').attr("title", me.images[1].title);
		var h = $(this).height();
		h = h-h-h;
		$('#'+id+' > img:last').css({ "top": h });
		$('#'+id+' > img:last').animate({ opacity: 0 }, 0);
		
		setInterval("$('#"+id+"').slideshowChange("+me.id+")", interval);
},
	slideshowChange: function(me){
		me = slideshow[me];
		var id = $(this).attr("id");
		me.current++;
		if(me.current >= me.images.length){ me.current = 0; }
		
		if(me.images[me.current].complete == true){
			switch($('#'+id+' > img:first').css("opacity")) {
				case "0":
					$('#'+id+' > img:first').attr("src", me.images[me.current].src);
					$('#'+id+' > img:first').attr("title", me.images[me.current].title);
					$('#'+id+' > img:first').animate({ opacity:1 }, me.transition);
					$('#'+id+' > img:last').animate({ opacity:0 }, me.transition);
					$('#'+id+' > div > h1').animate({ opacity:0 }, 1000, function(){
						$('#'+id+' > div > h1').html($('#'+id+' > img:first').attr("title"));
						$(this).animate({ opacity:1 }, me.transition/2);
					});
				break;
				default:
					$('#'+id+' > img:last').attr("src", me.images[me.current].src);
					$('#'+id+' > img:last').attr("title", me.images[me.current].title);
					$('#'+id+' > img:last').animate({ opacity:1 }, me.transition);
					$('#'+id+' > img:first').animate({ opacity:0 }, me.transition);
					$('#'+id+' > div > h1').animate({ opacity:0 }, 1000, function(){
						$('#'+id+' > div > h1').html($('#'+id+' > img:last').attr("title"));
						$(this).animate({ opacity:1 }, me.transition/2);
					});
				break;
			}
		}else{
			me.current++;
			$(this).slideshowChange();
		}
	}
});
