var jq=jQuery;
jq.noConflict();

function wTab(cfg){
	var this_=this;
	this.btns=cfg.btns;
	this.tabs=cfg.tabs;
	this.cons=cfg.cons;
	this.curIdx=cfg.curIdx||0;
	this.idxA=[0,this.tabs.length-1];
	var evtype='bind_'+(cfg.evtype||'click');
	if(this[evtype]){this[evtype]();}
	if(this.btns){
		jq(this.btns[0]).click(function(){
										this_.navTo(this_.curIdx-1);
										return false;
								});
		jq(this.btns[1]).click(function(){
										this_.navTo(this_.curIdx+1);
										return false;
								});
	}
	this.navTo(this.curIdx,1);
}

jQuery.extend(wTab.prototype,{
			  bind_click:function(){
				  var this_=this;
				  this.tabs.each(function(idx,tab){
										  jq(tab).click(function(ev){
																 if(this_.navTo(idx)){
																	 ev.stopPropagation();
																	 return false;
																  }
														});
										  });
				  },
			  bind_hover:function(){
				  var this_=this;this.tabs.each(function(idx,tab){
														 jq(tab).hover(function(){
																				this_.navTo(idx);
																		},
																		function(){}
																		);
														 });
				  },
			  navTo:function(idx,f){
				  if((idx<this.idxA[0]||idx>this.idxA[1])||(this.curIdx==idx&&!f))return false;
				  this.curIdx=idx;
				  this.tabs.removeClass('cur');
				  jq(this.tabs[idx]).addClass('cur');
				  this.cons.css('display','none');
				  jq(this.cons[idx]).css('display','');
				  return true;
				  }
});

(function(){
	  var r=jq('#img_slide');
	  if(!r.length)return;
	  var ctl=jq('>div.ctl_bar',r),btnbar=jq('>div.btns',ctl),btns=jq('a.prev, a.next',btnbar),playbtn=jq('a.play_pause',btnbar),tip=jq('span.index_status',btnbar),tabs=jq('>ul.imgs>li:not(:last-child)',ctl),tabcur=jq('>ul.imgs>li:last-child',ctl),con=jq('>div.cons>div',r),total=tabs.length,idxA=[0,total-1],curIdx=0,pw=-700,ph=1000,tabw=225,t_s=500;
	  var default_play=true,delay_time=6000,autoplay_process=jq('>i',tabcur),last_time=0,autoplay_timer=null;
	  playbtn.click(function(ev){
							 playbtn.toggleClass('on_pause');
							 autoPlay(!playbtn.hasClass('on_pause'));
							 return false;});
	  if(default_play){playbtn.removeClass('on_pause');autoPlay(true);}
	  else{playbtn.addClass('on_pause');}
	  tabs.each(function(idx,tab){
						 jq(tab).click(function(ev){
												navTo(idx);
												return false;});
						 });
	  var inNav=false;
	  function navTo(idx){
		  if(inNav||curIdx==idx)return false;
		  inNav=true;
		  if(idx<idxA[0]){
			  idx=idxA[1];
			  con.stop().animate({'top':ph},{'duration':t_s*.6,'complete':
							 function(){
								 con.css('left',idx*pw);
								 con.animate({'top':0},{'duration':t_s*.4,'complete':
											 function(){
												 last_time=(new Date).getTime();
												 inNav=false;
											 }
								 });
							 }
			  });
		  }
		  else if(idx>idxA[1]){
			  idx=idxA[0];
			  con.stop().animate({'top':ph},{'duration':t_s*.6,'complete':
								 function(){
									 con.css('left',idx*pw);
									 con.animate({'top':0},{'duration':t_s*.4,'complete':
												 function(){
													 last_time=(new Date).getTime();
													 inNav=false;
												 }
									 });
								 }
			  });
		  }
		  else{
			  con.stop().animate({'left':idx*pw},{'duration':t_s,'complete':
								 function(){
									 last_time=(new Date).getTime();
									 inNav=false;
								 }
			  });
		  }
		  tabcur.animate({'left':idx*tabw},{'duration':t_s*.6});
		  curIdx=idx;
		  tip.html((idx+1)+'/'+total);
		  return true;
	  }
	  function autoPlay(f){
		  if(autoplay_timer!==null){
			  clearInterval(autoplay_timer);
			  autoplay_timer=null;
		  }
		  if(f){
			  autoplay_process.show();
			  last_time=(new Date).getTime();
			  autoplay_timer=setInterval(function(){
												  if(!inNav){
													  var passed=(new Date).getTime()-last_time;
													  if(passed>=delay_time){navTo(curIdx+1);}
													  else{autoplay_process.css('width',(((passed/delay_time)*100|0)%100)+'%');}
												  }
										  },80);
		  }
		  else{autoplay_process.hide();}
	  }
})();