(function($) {

	var opt 		= new Array;
	var played		= new Array;
	var oimg		= new Array;
	var odesc		= new Array;
	var currentpos	= new Array;
	var autoInterval = new Array;
	var in_animate	 = false;
	 
	$.fn.WIPslider= $.fn.WIPslider = function(options){
		
		init = function(tg){
			opt[tg.id] = $.extend({}, $.fn.WIPslider.defaults, options);
			played[tg.id]		= new Array();
			oimg[tg.id]			= new Array();
			odesc[tg.id]		= new Array();
			currentpos[tg.id]	= 0;
			
			$('#'+tg.id+'').css('background-image', 'none');//remove the preloader image

			$.each($('#'+tg.id+' li'), function(i,item){ //grab the data for each image & description.
				played[tg.id][i]	= $(item);
				oimg[tg.id][i] 		= $(item).find('img');
				odesc[tg.id][i] 	= $(item).find('.sdesc');
				odesc[tg.id][i].css({bottom : '470px', display : 'none'});
				oimg[tg.id][i].css('display', 'none');
			});
					
			$.setBulletNavi(tg);//create the bullet navigation
			
				
			//call the first image data
						in_animate = true;
						$('#wip_bullet-0').addClass('slide_active');
						oimg[tg.id][0].fadeIn(opt[tg.id].animateSpeed,
							function(){
								$(odesc[tg.id][0]).css('display', 'block').animate({'bottom': '10px'},{duration: 450, easing:'easeOutSine'});
								$(played[tg.id][0]).addClass('slideNow');
								in_animate = false;
							}
						);
				
			if( opt[tg.id].autoPlay ) //if autoplay == true, do the animation.
				$.transition(tg);

		};
		
		// transitions
		$.transition = function(tg){

			autoInterval[tg.id] = setInterval(function() { $.tp(tg) }, opt[tg.id].delay);		
		};
		
		$.tp = function(tg, direction){

				if(typeof(direction) == "undefined")
					currentpos[tg.id]++;
				else
					currentpos[tg.id] = direction;

				if(currentpos[tg.id] == played[tg.id].length ) {
					currentpos[tg.id] = 0;
				}	

				if(currentpos[tg.id] == -1){
					currentpos[tg.id] = played[tg.id].length-1;
				}
				
				in_animate = true;
				
				if( $('.slideNow').find('div.sdesc').length != 0 ){
					$('.slideNow').find('div.sdesc').animate({'bottom': '470px'},150,
						function(){
							$('.slideNow').find('img').fadeOut(opt[tg.id].animateSpeed);
							$('.slideNow').removeClass('slideNow');
							$('.slide_active').removeClass('slide_active');
							$('#wip_bullet-'+currentpos[tg.id]).addClass('slide_active');
							oimg[tg.id][currentpos[tg.id]].fadeIn(opt[tg.id].animateSpeed,
								function(){
									$(odesc[tg.id][currentpos[tg.id]]).css('display', 'block').animate({'bottom': '10px'},{duration: 450, easing:'easeOutSine'});
									$(played[tg.id][currentpos[tg.id]]).addClass('slideNow');
									in_animate = false;
								}
							);
							
					});
				} else {
					$('.slideNow').find('img').fadeOut(opt[tg.id].animateSpeed);
					$('.slideNow').removeClass('slideNow');
					$('.slide_active').removeClass('slide_active');
					$('#wip_bullet-'+currentpos[tg.id]).addClass('slide_active');
					
					oimg[tg.id][currentpos[tg.id]].fadeIn(opt[tg.id].animateSpeed,
						function(){
							$(odesc[tg.id][currentpos[tg.id]]).css('display', 'block').animate({'bottom': '10px'},{duration: 450, easing:'easeOutSine'});
							$(played[tg.id][currentpos[tg.id]]).addClass('slideNow');
							in_animate = false;
						}
					);
				
				}
				
				
		};

		
		$.setBulletNavi = function(tg){
			//append ul after the main div
			$('<div class="intermezzo-bullet-bg"><ul id="wip_bullet"></ul><div class="left-bb"></div><div class="right-bb"></div></div>').insertAfter($('#'+tg.id+''));
			
			for(k=0;k<played[tg.id].length;k++){
				$('#wip_bullet').append("<li><a href='#' class='wip_bullet_link' id='wip_bullet-"+k+"'></a></li>");
			}
			
			$.each($('.wip_bullet_link'), function(i,item){
				$(item).click( function(e){
					e.preventDefault();
					if( in_animate == false ){
						$('.slide_active').removeClass('slide_active');
						$(this).addClass('slide_active');
						
						$.tp(tg,i);

						if( opt[tg.id].autoPlay ){
							clearInterval(autoInterval[tg.id]);
							$.transition(tg);
						}
					}
				});
			});
			
			if( opt[tg.id].autoPlay )
				if(opt[tg.id].hoverPause)$.pause(tg);
		};
		
		$.pause = function(tg){
			$('#'+tg.id+'').hover(function(){
				clearInterval(autoInterval[tg.id]);
			}, function(){
				clearInterval(autoInterval[tg.id]);
				$.transition(tg);
			});
		}

		this.each (
			function(){ init(this); }
		);


	};
	
	// default values
	$.fn.WIPslider.defaults = {	
		delay : 6000, // delay between div/object
		animateSpeed : 1000, //speed on amimation per div/object
		hoverPause : true,
		autoPlay : true
	};	
	
})(jQuery);
