(function($) {
	$.fn.extend({

		miniSlider : function(options) {

			var defaults = {
				afterClick 			: function(){},
				slideButtons		: '',
				slideInfo			: '',
				slideDiv			: '',
				slideElm			: 'div',
				itemWidth			: '2000',
				easing				: '',
				delay				: 800,
				timerDelay			: 1000,
				count				: 0,
				widthTolerance 		: 0,
				cufonReplace		: true,
				CufonFontList		: CufonFontList
			};

		
			var options = $.extend(defaults, options);			

			return this.each(function() {
				var o 			= options;
				var obj			= $(this);
				var objButtons 	= obj.find(o.slideButtons);
				var slideInfo	= obj.find(o.slideInfo);
				var slideDiv	= obj.find(o.slideDiv);
				var timer	    = setTimeout('void(0)',0);
				var isManual	= false;
				var slideWidth  = 0;
		
				var firstwidth = $(slideDiv.find(o.slideElm)[0]).width();
							
				firstwidth = firstwidth ? firstwidth : o.itemWidth;
				
				slideWidth = (slideDiv.children(o.slideElm).length *  (firstwidth+8));
								
				slideDiv.css({
					width:slideWidth
				});
								
				var isOnlySlider = o.slideButtons == "";
							
				if(!isOnlySlider){					
					objButtons.find('li').click(itemClicked);
					objButtons.hover(itemHover,itemHout);
				}
								
				itemHout();				
					
				function itemHover(){
					window.clearTimeout(timer);
					isManual = true;
				};
				
				function itemHout(){
					timer = setTimeout(itemClicked,o.timerDelay);
					isManual = false;
				};

				var selected = null;
				var slideID  = 0;
				
				function itemClicked(){		
					
					if(isManual == false){
						slideID++;
					}else{
						slideID = $(this).children('a').attr('href').replace(new RegExp('[^0-9]','g'),'')-1;
					}										
					
					if(!isOnlySlider){		
						slideID %= 	objButtons.find('li').length;	
					}else{
						slideID %= 	slideDiv.find(o.slideElm).length;	
					}			
					
					slideWidth	= (slideID > 0 ? slideDiv.children(o.slideElm).width() + o.widthTolerance : '0');					
				
					if(o.count && slideWidth != '0px'){ 
						slideWidth = o.count * slideWidth;	
					}else{
						slideWidth = slideID * slideWidth;	
					}
					
					slideWidth = '-' +slideWidth;
									
					slideDiv.stop().animate({'left':slideWidth+'px' },o.delay,o.easing);
					
					if(!isOnlySlider){
						objButtons.children('li.activebutton').removeClass('activebutton');
						
						if(isManual == false){
							if(o.count >= 0){
								$(objButtons.children('li')[slideID]).addClass('activebutton');
							};
													
						}else{
							$(this).addClass('activebutton');
						}
											
						slideInfo.html((slideID+1)+'/'+objButtons.children('li').length);
					
						
						if(o.cufonReplace){
							for(i=0;i<o.CufonFontList.length;i++){
								fontClass = '.'+slideInfo.attr('class');
								if(fontClass.search(o.CufonFontList[i][0]) > -1){
									cufonReReplace(slideInfo,{fontFamily:o.CufonFontList[i][1],hover:true});
									break;
								}
							}
						}					
					}
					
					if(isManual == false){
						timer = setTimeout(itemClicked,o.timerDelay);
					}
					
					
					
					return false;
				};
				
			});

		}
	});
})(jQuery);

