/**
 * 幻灯片
 * 
 * @author linxs@35.cn
 */
(function($) {
	$.fn.cavanSlide = function(o) {
		// 默认参数
		o = $.extend({
			btnPrev: null,		// 向前ID
			btnNext: null		// 向后ID
		}, o || {});
		
		// 插件扩展
		return this.each(function() {
			var num = 0;
			var curr = 0;
			var ulSize = 0;
			var running = false;
			var div = $(this), ul = $("ul", div), li = $("li", ul), img = $("img", li), tl = li.size();
			var divSize = div.width();
			img.each(function() {
				var image = new Image();
				image.onload = function() {
					init();
				}
				image.src = $(this).attr("src");
			});
			
			// 图片加载完成
			function init() {
				if (++num != tl) {
					return false;
				}

				li.each(function() {
					ulSize += $(this).outerWidth(true);
				});
				
				li.css({overflow: "hidden", float: o.vertical ? "none" : "left"});
				ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1", width: ulSize});
				div.css({overflow: "hidden", position: "relative", "z-index": "2", left: "0px"});
				
				if(o.btnPrev) {
					$(o.btnPrev).click(function() {
						if (curr > 0) {
							return go(curr - 1);
						}
					});
				}
				
				if(o.btnNext) {
					$(o.btnNext).click(function() {
						if (curr < tl - 1) {
							return go(curr + 1);
						}
					});
				}
			}

			// 翻页
			function go(to) {
				if (!running) {
					var position = ul.position();
					var element = li.eq(curr + (curr < to ? 0 : - 1));
					var left = position.left + (curr < to ? - element.outerWidth(true) : element.outerWidth(true));
					
					if (curr < to && ulSize + position.left <= divSize) {
						return false;
					}

					running = true;
					ul.animate({left: left}, 200, null, function() {
						running = false;
					});
					curr = to;
				}
			}
		}); // end plugin
	};
})(jQuery);