$.fn.extend({
	allenSlide: function() {
		var ads = $(this).find('ul:first li');
		var name = $(this).attr('id');
		var n = ads.length;
		var w = ads.width();
		var h = ads.height();
		var clicked = false;
		var t = 3000;
		var lt = 5000;
		var speed = 'fast';
		var curPage = 0;
		
		if(n > 1) {
			$(this).children('ul:first').append($(this).find('ul:first li:first').clone());
			
			$(this).width(w).height(h);
			$(this).css('overflow', 'hidden');
			$(this).css('position', 'relative');
			$(this).children('ul:first').width(w * (n + 1));
			var pages = $('<div class="slide-page"></div>');
			for(var i = 1; i <= n; i++) {
				var el = $('<a href="#" id="' + name + '-page-' + i + '">' + i + '</a>');
				eval('el.mouseover(function(){ clicked = true; slideTo(' + i + '); return false; });');
				pages.append(el);
			}
			$(this).append(pages);
			$('#' + name + '-page-1').parent().addClass('on');
			autoSlide();
		}

		function slideTo(page) {
			curPage = page;
			var ml = -1 * w * (page - 1);
			$('#' + name).children('ul:first').stop();
			if(page > n) {
				curPage = 1;
			} else if(page == 2 && !clicked) {
				$('#' + name).children('ul:first').css('margin-left', '0px');
			}
			$('#' + name).children('ul:first').animate({ marginLeft: ml }, speed);
			$('#' + name).find('.slide-page > a').removeClass('on');
			$('#' + name + '-page-' + curPage).addClass('on');
		}
		
		function autoSlide() {
			var tp = curPage;
			if(!clicked) {
				slideTo(tp + 1);
				eval('setTimeout(function() { autoSlide(); }, ' + t + ');');
			} else {
				clicked = false;
				eval('setTimeout(function() { autoSlide(); }, ' + lt + ');');
			}
		}

	}
});
