$.fn.goslide = function(options) {
	var defaults = {
		ctime: 10	
	};
	return this.each(function(){
		var $this = $(this);
		var $wrapper = $this.find('.wrapper');
		var $ul = $this.find('ul');
		var $items = $this.find('li');
		var singlew = $this.find('li:first').width();
		var pages = $items.length;
		var currentPage = 1;
		var anim = true;
		prepareit = function() {
			//$('#container').addClass('mslide');
			$items.slice(0,2).clone().insertAfter($items.filter(':last'));
			$items.slice(-2).clone().insertBefore($items.filter(':first'));
			addLabel();
			$ul.width((pages+4)*(singlew+5));
			$ul.mouseover(function(){anim=false;});
			$ul.mouseout(function(){anim=true;});
			gotoPage(currentPage);
			$("#next").click(function(){ animateToPage(currentPage+1);});
			$("#prev").click(function(){ animateToPage(currentPage-1);});
			cycle();
		};
		gotoPage = function(n) {
			$ul.css('marginLeft',-(singlew+5)*n);
		};
		animateToPage = function(np) {
			if(!anim) return false;
			anim = false;
			$ul.filter(':aniamted').animate({
				'marginLeft':-(singlew+5)*np
			},400,'linear',function(){ animateAfter(np) });
		};
		cycle = function() {
			setTimeout('cycle()',9000);
			animateToPage(currentPage+1);
		};
		addLabel = function() {
			$this.find('li').each(function(){
				var $img = $(this).find('img');
				$(this).append("<div>" + $img.attr('alt') + "</div>");
				$(this).children('div').css({'opacity':0.75});
				$(this).mouseenter(function(){
					$(this).find('div').animate({'marginTop':-50,'opacity':0.95},300);
				});
				$(this).mouseleave(function(){
					$(this).find('div').animate({'marginTop':-30,'opacity':0.75},300);
				});
			});
		};
		animateAfter = function(n) {
			if( n < 1 ) {
				n = pages;
				gotoPage(n);
			} else if( n > pages) {
				n = 1;
				gotoPage(n);
			}
			currentPage = n;
			anim = true;
			//cycle();
		};
		prepareit();
		//setTimeout(function(){animateToPage},2000);
	});
};
$(document).ready(function(){
	$('#mslide').goslide();
});
