/**
 * @author denisdeng 
 * emmail dexibe@gmail.com 
 * $Version: 2009.9.16. 1.0
 * param dir[left|top] definee the dieection of scroll;
 * param delay[number] define the speed of scroll;
 * param autoPlay[number] define whether autoplay;
 * eg.
 * html 
 	<div class="marquee">
				<a class="btnNext" href="#" title="下一张"><i>下一张</i></a>
				<a class="btnPrev" href="#" title="上一张"><i>上一张</i></a>
				<div class="gallery">
					<ul>
						<li><div class="imgWrap"><img src="images/trans_4.gif"  /></div></li>
						<li><div class="imgWrap"><img src="images/trans_4.gif"  /></div></li>
						<li><div class="imgWrap"><img src="images/trans_4.gif"  /></div></li>
						<li><div class="imgWrap"><img src="images/trans_4.gif"  /></div></li>
						<li><div class="imgWrap"><img src="images/trans_4.gif"  /></div></li>
						<li><div class="imgWrap"><img src="images/trans_4.gif"  /></div></li>
					</ul>
				</div>
			</div>
 *	$(".marquee").jobkooCircle();
 */
(function($){
$.fn.jobkooCircle  = function(options){
		var settings = {
			dir:"left",
			delay:50,
			autoPlay:true,
			control:false
		}
		return this.each(
				function(){
					if(options) settings = $.extend(settings,options);
					var step = 0;
					var timeId;
					var mDir;
					var offset;
					var $this = $(this);
					var list = $("ul",$this);
					var li = $("li:first",$this);
					switch(settings.dir){
					case "top":
						mDir = "marginTop";
						offset = parseInt(li.outerHeight())+
								 parseInt(li.css("marginTop"))+
								 parseInt(li.css("marginBottom"));
						break
					default:
						mDir = "marginLeft";
						offset = parseInt(li.outerWidth())+
								 parseInt(li.css("marginLeft"))+
								 parseInt(li.css("marginRight"))
					};
					//$.picScroll = function(){};
					$this.circle = function(){
							clearTimeout(timeId);
							step++;
							list.css(mDir,-step);
							if(step == offset){
									list.css(mDir,0);
									list.find("li:first").appendTo(list);
									step = 0;
							}
							$this.init();
					};
					$this.init = function(){
							timeId = setTimeout(function(){
														 $this.circle();
														 },settings.delay);
					};
					$this.pause = function(obj){
							obj.hover(function(){
											   		clearTimeout(timeId);
											   },
									  function(){
										  			$this.init();
										  	})
					};
					var $btnPrev = $('.btnPrev',$this);
					var $btnNext = $('.btnNext',$this);
					var isControl = ($btnPrev.size() == 1 && $btnNext.size() == 1);
					if(isControl){
						$btnPrev.bind("click",function(e){
																list.find("li:last").prependTo(list);
															e.preventDefault();
														 });
						$btnNext.bind("click",function(e){
																list.find("li:first").appendTo(list);
															e.preventDefault();
														 })
					}
					if(settings.autoPlay){
						if(isControl){
							$this.pause($btnPrev);
							$this.pause($btnNext);
						}
						$this.pause(list);
						$this.init();
					}
				})
} 
})(jQuery)
