(function($){

	$.fn.doCoursel = function() {
		
		$(this).each(function(){
		
			var	coursel = $(this)
			var	courselUl = coursel.find("ul")
			var	courselLi = courselUl.find("li")
			var	courselLiL = courselLi.length
			var	courselNav = coursel.find(".nav-btn")
			var	courselType = 0
      
			coursel.data("info", { cur: 0, vis: 5 })
      
      //console.log( coursel.data("info").vis )
      
      if ( courselLiL <= coursel.data("info").vis ){
        courselNav.hide()
      }
      
			
			if ( coursel.hasClass("coursel_with-big-image") ){
				courselType = 1;
			}else if(coursel.hasClass("preview-coursel")){
				courselType = 2;
			}
			
			if ( courselType==1 ){
				
				var bigCoursel = $('<div class="b-images"></div>').insertBefore(coursel)
				var	bigCourselNav = $('<div class="nav-btn prev"></div><div class="nav-btn next"></div>').appendTo(bigCoursel)
				var	bigCourselUlWrap = $('<div class="coursel-list_wrap"></div>').appendTo(bigCoursel)
				var	bigCourselUl = $('<ul class="coursel-list nm clearfix"></ul>').appendTo(bigCourselUlWrap)
						
				bigCoursel.data("info", { cur: 0, vis: 1 })
				
				courselLi.each(function(i){
					var me = $(this)
					
					if ( coursel.hasClass("coursel_video") ){
						bigCourselUl
							.append('<li><object id="video'+i+'" type="application/x-shockwave-flash" data="/xtpl/video/uppod.swf" width="589" height="440">'+
										'<param name="bgcolor" value="#ffffff" />'+
										'<param name="allowFullScreen" value="true" />'+
										'<param name="allowScriptAccess" value="always" />'+
										'<param name="wmode" value="opaque" />'+
										'<param name="movie" value="/xtpl/video/uppod.swf" />'+
										'<param name="flashvars" value="comment='+me.find("a").attr("title")+'&amp;m=video&amp;file='+me.find("a").attr("href")+'" />'+
									'</object></li>')

					}else{
						bigCourselUl.append('<li><img src="'+me.find("a").attr("href")+'" /></li>')
					}
					
					
				}).eq(0).addClass("active")
				
				var bigCourselLi = bigCourselUl.find("li")
				var	bigCourselLiL = bigCourselLi.length
				
			}else if( courselType==2 ){
				var bigImageBlock = $(".preview-coursel-images")
				var	bigImageLink = bigImageBlock.find("a")
				var	bigImage = bigImageBlock.find(".images-main")
				var	BigImageCur = courselLi.eq(0)
				var	BigImageCurLink = BigImageCur.find("a")
				
				BigImageCur.addClass("active")
				bigImageLink.attr("href",BigImageCurLink.attr("href"))
				bigImage.attr("src",BigImageCurLink.attr("preview"))
			}
			
			courselNav
				.hover(
					function(){
						$(this).not(".off").addClass("hover")
					},
					function(){
						$(this).removeClass("hover")
					}
				)
				.click(function(){
					if( !$(this).is(".off") )cMove($(this),coursel)
					return false;
				})
			
			courselLi
				.find("a")
				.click(function(){
					cView( $(this) );
          if ( courselType==1 || courselType==2 ){
            return false;
          }
				})
			
			
			function cView(link){
			
			
				var linkLi = link.parents("li")
				var	linkLiInd = courselLi.index(linkLi)
			
				courselUl.find(".active").removeClass("active")
				linkLi.addClass("active")
				
				if ( courselType==1 ){
				
					bigCourselUl
						.animate({
							left:-linkLiInd*bigCoursel.find("li").eq(0).width()
						})
					bigCoursel.data("info").cur = linkLiInd
          
				}else if ( courselType==2 ) {				
					bigImageLink.attr("href",link.attr("href"))
					bigImage.attr("src",link.attr("preview"))
				}
				
			}
			
			function cMove(btn,car){
			
				var key = 0
				var	courselCurentTmp = car.data("info").cur
				var	liLenght = car.find("li").length
			
				if (btn.is(".prev")){
					key = -1
				}else{
					key = 1
				}
        
				courselCurentTmp = courselCurentTmp + key
        
        //console.log( courselCurentTmp,liLenght,key,liLenght-car.data("info").vis )
				
				if( courselCurentTmp<=0 || courselCurentTmp>=liLenght-car.data("info").vis ){
					btn.addClass("off")
				}else{
					car.find(".off").removeClass("off")
				}
				
				if( courselCurentTmp>=0 && courselCurentTmp<=liLenght-car.data("info").vis ){
					car.data("info").cur = car.data("info").cur + key
					car
						.find("ul")
						.animate({
							left:-car.data("info").cur*car.find("li").eq(0).width()
						})
						
					if ( car.hasClass("b-images") ){
						coursel
							.find(".active")
							.removeClass("active")
							.end()
							.find("li:nth-child("+(car.data("info").cur+1)+")")
							.addClass("active")
					}
						
					
				}
				
			}
			
			
			if ( courselType==1 ){
				
				
				bigCourselNav
					.hover(
						function(){
							$(this).not(".off").addClass("hover")
						},
						function(){
							$(this).removeClass("hover")
						}
					)
					.click(function(){
						if( !$(this).is(".off") ){
							cMove($(this),bigCoursel)
							
							if( $(this).is(".prev") ){
								cMove(coursel.find(".prev"),coursel)
							}else{
								cMove(coursel.find(".next"),coursel)
							}
							
						}
						return false;
					})
				
			}
			
				
			cInit()
			function cInit(){
				courselLi
					.each(function(){
						var me = $(this)
						me.width( parseInt(coursel.find(".coursel-list_wrap").width()/coursel.data("info").vis) )
					})
				courselUl.width( courselLiL * courselLi.eq(0).width() )
				
				if ( coursel.hasClass("coursel_with-big-image") ){
					bigCourselLi
						.each(function(){
							var meB = $(this)
							meB.width( parseInt(bigCoursel.find(".coursel-list_wrap").width()/bigCoursel.data("info").vis) )
						})
					bigCourselUl.width( bigCourselLiL * bigCourselLi.eq(0).width() )
				}
			}
      
      if ( typeof galleryCurrent != "undefined"  ){
        
        //console.log(galleryCurrent - coursel.data("info").vis)
        
        if ( (galleryCurrent - coursel.data("info").vis +1)>0){
          coursel.data("info").cur = galleryCurrent - coursel.data("info").vis
          cMove(courselNav.eq(1),coursel)
        }
        
        bigCoursel.data("info").cur = galleryCurrent
        
        //console.log( coursel.data("info").cur )
        
        courselUl
          .find("li")
          .eq(galleryCurrent)
          .find("a")
          .trigger('click')
        
      }	
      
			$(window).resize(function() {
				cInit()
			});

		})
		
	}
	
})(jQuery);

$(document).ready(function(){
	if ( $(".coursel").length > 0 ){
		$(".coursel").doCoursel()		
	}
});
