;(function($) {

	$.fn.htmlSlider = function(options)
	{
	  
		// default configuration properties
		var defaults = {
			prevClass  :  'prevBtn',						
			nextClass  :  'nextBtn',
			pageClass  :  'sliderPage',
			sliderClass:  'sliders',
			sliderULClass:  'sliderUL',
			sliderLIClass:  'sliderLI',
			
			prevImg     : '',
			prevImgOver : false,
			nextImg     : '',
			nextImgOver : false,
			
			orientation: '', //  'vertical' is optional;
			speed      : 800,
			autoRun	   : true,
			delay      : 5000,
			opacity    : false,
			borderColor     : ' 1px solid #8F8F8F ',
			selborderColor  : ' 1px solid #ffffff ',
            overborderColor : ' 1px solid #8F8F8F ',
            
            gallery          : false,
            isOpacityPaging  : false,
            pagingOpacity    : 0.4,            
            isAbsolutePaging : false,
            absoluteClass    : 'divSliderPaging',
            pagingTop        : 12,
            isHidePagind     : false
		}; 
		
		var options = $.extend(defaults, options);  
		
		return this.each(function() 
		{
			var obj = $(this); 				
			var s = $("li."+options.sliderLIClass, obj).length;
			var w = $("."+options.sliderClass, obj).width(); 
			var h = $("."+options.sliderClass, obj).height(); 
			var ts = s-1;			
			var t = 0;
			var page = 0;
			var vertical = (options.orientation == 'vertical');
			$("ul."+options.sliderULClass, obj).css('width',s*w);			
			if(!vertical) $("li."+options.sliderLIClass, obj).css('float','left');
			
			if (options.isAbsolutePaging)
			{
				var pos = $(this).position();	
				var hpaging = $("."+options.absoluteClass, obj).height() + options.pagingTop;
				var cssObj = {
					      'position'  : 'absolute',
					      'padding'   : '5px',
					      'top'       : pos.top + h - hpaging +'px',
					      'background' : 'url(/img/site/bg_paging.png)'
					    }
				$("."+options.absoluteClass,obj).css(cssObj);
				
				if (options.isHidePagind)
				{
					 $("."+options.absoluteClass,obj).hide();
					 
					 obj.mouseenter(function()
					 {
						 var pos = obj.position();
					     $("."+options.absoluteClass,obj).css({'top' : pos.top + h - hpaging +'px'});
						 
						 $("."+options.absoluteClass,obj).fadeIn();
					 }).
					 mouseleave(function()
					 {				  
						 $("."+options.absoluteClass,obj).hide();
					 });
					 
					 	/*				
					 $("."+options.sliderULClass, obj).mouseover(function()
					 {
						 var pos = obj.position();
					     $("."+options.absoluteClass,obj).css({'top' : pos.top + h - hpaging +'px'});
						 
						 $("."+options.absoluteClass,obj).fadeIn();
					 });
					 
					 $("."+options.sliderULClass, obj).mouseout(function()
					 {			    		
						 $("."+options.absoluteClass,obj).hide();
					 });
					 
					 $("."+options.absoluteClass, obj).mouseover(function()
					 {
						 var pos = obj.position();
					     $("."+options.absoluteClass,obj).css({'top' : pos.top + h - hpaging +'px'});
							
						  $("."+options.absoluteClass,obj).fadeIn();
					 });
					 */
					
				}
			}
			
			//---- 1 - Paiging Opasity -----
			if (options.isOpacityPaging)
			{
				$("."+options.pageClass,obj).children("img").css('opacity', options.pagingOpacity).css('border', options.borderColor);
				$('.'+options.pageClass+':nth-child(1)', obj).children("img").animate({opacity: 1.0}).css('border', options.selborderColor);
				
				$("."+options.pageClass,obj).click(function()
				{
					$("."+options.pageClass,obj).children("img").css('opacity', options.pagingOpacity).css('border', options.borderColor);
  			        $(this).children("img").animate({opacity: 1.0}).css('border', options.selborderColor);
				});
				
				$("."+options.pageClass,obj).mouseover(function()
				{
					$(this).children("img").css('opacity', 1.0).css('border', options.overborderColor);
				});
				
				$("."+options.pageClass,obj).mouseout(function()
				{
					$(this).children("img").css('opacity', options.pagingOpacity).css('border', options.borderColor);
				});
			}
			//---- 1 - end --- 
			
			//---- 2 - Slider Opasity ---
			if (options.opacity)
			{
			   $("li img", obj).css('opacity', options.opacity).css('border', options.borderColor);
			  
			   $("li img", obj).click(function()
						{
						   
						     $("li img", obj).css('opacity', options.opacity).css('border', options.borderColor);
						     $("li img", obj).removeClass('jqueryActive');			   
						     $(this).animate({opacity: 1.0}).css('border', options.selborderColor);		
						     $(this).addClass('jqueryActive');
						});
						
			    $("li img", obj).mouseover(function()
						{			    		
						       if ( ! $(this).hasClass('jqueryActive') )	     			    
						         $(this).css('opacity', 1.0).css('border', options.overborderColor);
						});
						
			    $("li img", obj).mouseout(function()
						{			   			     	
						     if ( ! $(this).hasClass('jqueryActive') )	    
						       $(this).css('opacity', options.opacity).css('border', options.borderColor);			    
						   
						});
			}
												
			//$("."+options.prevClass, obj).hide();
			//$("."+options.nextClass, obj).hide();
			
			Play(); //--- merge singura
			
			$("."+options.nextClass, obj).click(function()
			{
			    options.autoRun = false;				  
				animate("next");
				//if (t>=ts) $(this).fadeOut();
				//$("."+options.prevClass, obj).fadeIn();
			});
			
			$("."+options.prevClass, obj).click(function()
			{		
			    options.autoRun = false;
				animate("prev");
				//if (t<=0) $(this).fadeOut();
				//$("."+options.nextClass, obj).fadeIn();
			});	
			
			if (options.prevImgOver)
			{
			  $("."+options.prevClass, obj).mouseover(function()
			  {		
				  $(this).attr("src", options.prevImgOver);
			  });
			  $("."+options.prevClass, obj).mouseout(function()
			  {		
				  $(this).attr("src", options.prevImg);
			  });
			}
			
			if (options.nextImgOver)
			{
			  $("."+options.nextClass, obj).mouseover(function()
			  {		
				  $(this).attr("src", options.nextImgOver);
			  });
			  $("."+options.nextClass, obj).mouseout(function()
			  {		
				  $(this).attr("src", options.nextImg);
			  });
			}
			
			$("."+options.pageClass, obj).click(function()
			{ 		  
			  options.autoRun = false;
			  page = getHashFromString( $(this).attr("href") );	
			  animate("page");				  
			  if (page>=ts) 
			  {			   
			   // $("."+options.nextClass, obj).fadeOut();	
			  //  $("."+options.prevClass, obj).fadeIn();
			  }
			  
			  if (page<=0) 
			  {
			   // $("."+options.prevClass, obj).fadeOut();
			  //  $("."+options.nextClass, obj).fadeIn();	  				
			  }
			  
			});	
			
			function Play ()
			{  
			   if (options.autoRun) 
			   {
			    if (t >= ts) t = -1;
			    setTimeout(function() { animate("next"); Play (); }, options.delay);
			   }			   		
			}
			
			function animate(dir)
			{			
				if(dir == "next")				
					t = (t>=ts) ? ts : t+1;					
				else if(dir == "prev")					
					t = (t<=0)  ? 0 : t-1;
				else 
				    t = page;
				
				if ( $("."+options.pageClass,obj) )
				{ 
					if ( options.gallery )
					{
						$("."+options.pageClass,obj).children("img").css('opacity', options.pagingOpacity).css('border', options.borderColor);
						
						var index = t+1;
						$('.'+options.pageClass+':nth-child('+index+')', obj).children("img").animate({opacity: 1.0}).css('border', options.selborderColor);

					}
					else
					{
				       // Deselectam toate imaginele 
				       $("."+options.pageClass,obj).children("img").attr("src", '/img/site/btn_sl_i.png');
				       var index = t+1;
				       $('.'+options.pageClass+':nth-child('+index+')', obj).children("img").attr("src", '/img/site/btn_sl_a.png');
					}
				}   
             					  
				if(!vertical) 
				{				  
					p = (t*w*-1);										
					$("ul."+options.sliderULClass,obj).animate( { marginLeft: p },  options.speed );				
				} 
				else 
				{				   
					p = (t*h*-1);
					$("ul."+options.sliderULClass,obj).animate( { marginTop: p }, options.speed );					
				}
				
			};
			
			if(s>1) $("."+options.nextClass, obj).fadeIn();	
						
			function getHashFromString(hash) 
			{			
		     if (!hash) return -1;
		     hash = hash.replace(/^.*#/, '');		    		    
		     if (isNaN(hash)) return -1;
		     return (+hash);
	        }
	        	        
	    function getHash() 
	    {
		    var hash = location.hash;
		    return getHashFromString(hash);
	    }
			
		});
	  
	};

})(jQuery);
