(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);
