/*



 * 	Easy Slider 1.7 - jQuery plugin



 *	written by Alen Grakalic	



 *	http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding



 *



 *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)



 *	Dual licensed under the MIT (MIT-LICENSE.txt)



 *	and GPL (GPL-LICENSE.txt) licenses.



 *



 *	Built for jQuery library



 *	http://jquery.com



 *



 */



 



/*



 *	markup example for $("#slider").easySlider();



 *	



 * 	<div id="slider">



 *		<ul>



 *			<li><img src="images/01.jpg" alt="" /></li>



 *			<li><img src="images/02.jpg" alt="" /></li>



 *			<li><img src="images/03.jpg" alt="" /></li>



 *			<li><img src="images/04.jpg" alt="" /></li>



 *			<li><img src="images/05.jpg" alt="" /></li>



 *		</ul>



 *	</div>



 *



 */







(function($) {







	jQuery.fn.easySlider = function(options){



	  



		// default configuration properties



		var defaults = {			



			prevId: 		'slider_left',



			prevText: 		'slider_left',



			nextId: 		'slider_right',	



			nextText: 		'slider_right',



			controlsShow:	true,



			controlsBefore:	'',



			controlsAfter:	'',	



			controlsFade:	true,



			firstId: 		'nextBtn',



			firstText: 		'First',



			firstShow:		true,



			lastId: 		'prevBtn',



			lastText: 		'Last',



			lastShow:		true,



			vertical:		false,



			speed: 			800,



			auto:			true,



			pause:			2000,



			continuous:		false, 



			numeric: 		false,
			
			
			acces_function:    false,
			acces_id: 	0,




			numericId: 		'controls'



		}; 



		



		var options = $.extend(defaults, options);  
		
		
		if(options.acces_function){
              alert(acces_id);

               animate(acces_id,true);


		};	

		this.each(function() {  



			var obj = $(this); 				



			var s = $("li", obj).length;



			var w = $("li", obj).width(); 



			var h = $("li", obj).height(); 



			var clickable = true;



			obj.width(w); 



			obj.height(h); 



			obj.css("overflow","hidden");



			var ts = s-1;



			var t = 0;



			$("ul", obj).css('width',s*w);			


			

			
			if(options.continuous){



				$("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-left","-"+ w +"px"));



				$("ul", obj).append($("ul li:nth-child(2)", obj).clone());



				$("ul", obj).css('width',(s+1)*w);



			};	

			



			if(!options.vertical) $("li", obj).css('float','left');



								



			if(options.controlsShow){



				var html = options.controlsBefore;				



			



					html += '<ol id="'+ options.numericId +'"></ol>';



				



					if(options.firstShow) html += '<span id="'+ options.firstId +'"><a href=\"javascript:void(0);\">'+ options.firstText +'</a></span>';




					if(options.lastShow) html += ' <span id="'+ options.lastId +'"><a href=\"javascript:void(0);\">'+ options.lastText +'</a></span>';				



				



				



				html += options.controlsAfter;						



				$(obj).after(html);										



			};





											



				for(var i=0;i<s;i++){						



					$(document.createElement("li"))



						.attr('id',options.numericId + (i+1))



						.html('<a rel='+ i +' href=\"javascript:void(0);\">'+ (i+1) +'</a>')



						.appendTo($("#"+ options.numericId))



						.click(function(){							



							animate(parseInt($("a",$(this)).attr('rel')),true);



						}); 												



				};							



			



				$("#slider_right").click(function(){		


					animate("next",true);



				});



				$("#slider_left").click(function(){		


					animate("prev",true);				



				});	



				$("a","#"+options.firstId).click(function(){		



					animate("first",true);



				});				



				$("a","#"+options.lastId).click(function(){		



					animate("last",true);				



				});				



			
			function slider_products(i){
              alert(i);
              animate(parseInt(i),true);
			};



			



			function setCurrent(i){



				i = parseInt(i)+1;



				$("li", "#" + options.numericId).removeClass("current");
				$("li#" + options.numericId + i).addClass("current");

                $(".simple_title").css('display','none');
				$("#info_"+i).css('display','block');

			};



			



			function adjust(){



				if(t>ts) t=0;		



				if(t<0) t=ts;	



				if(!options.vertical) {



					$("ul",obj).css("margin-left",(t*w*-1));



				} else {



					$("ul",obj).css("margin-left",(t*h*-1));



				}



				clickable = true;



				if(options.numeric) setCurrent(t);



			};



			



			function animate(dir,clicked){


				if (clickable){



					clickable = false;



					var ot = t;				



					switch(dir){



						case "next":



							t = (ot>=ts) ? (options.continuous ? t+1 : ts) : t+1;						

							break; 



						case "prev":



							t = (t<=0) ? (options.continuous ? t-1 : 0) : t-1;



							break; 



						case "first":



							t = 0;



							break; 



						case "last":



							t = ts;



							break; 



						default:

                        t = dir; 



							break; 



					};	



					var diff = Math.abs(ot-t);



					var speed = diff*options.speed;						



					if(!options.vertical) {

					

					p = (t*w*-1);

                   

						$("ul",obj).animate(



							{ marginLeft: p }, 



							{ queue:false, duration:speed, complete:adjust }



						);				



					} else {



						p = (t*h*-1);



						$("ul",obj).animate(



							{ marginTop: p }, 



							{ queue:false, duration:speed, complete:adjust }



						);					



					};



					



					if(!options.continuous && options.controlsFade){					



						if(t==ts){



							$("a","#"+options.nextId).hide();



							$("a","#"+options.lastId).hide();



						} else {



							$("a","#"+options.nextId).show();



							$("a","#"+options.lastId).show();					



						};



						if(t==0){



							$("a","#"+options.prevId).hide();



							$("a","#"+options.firstId).hide();



						} else {



							$("a","#"+options.prevId).show();



							$("a","#"+options.firstId).show();



						};					



					};				



					



					if(clicked) clearTimeout(timeout);



					if(options.auto && dir=="next" && !clicked){;



						timeout = setTimeout(function(){



							animate("next",false);



						},diff*options.speed+options.pause);



					};



			



				};



				



			};



			// init



			var timeout;



			if(options.auto){;



				timeout = setTimeout(function(){



					animate("next",false);



				},options.pause);



			};		



			



			if(options.numeric) setCurrent(0);



		



			if(!options.continuous && options.controlsFade){					



				$("a","#"+options.prevId).hide();



				$("a","#"+options.firstId).hide();				



			};				



			



		});



	  



	};







})(jQuery);
















