;(function($) {

	$.fn.htmlSlider = function(options)
	{
	  
		// default configuration properties
		var defaults = {
			stype      :  'slide',
			prevClass  :  'prevBtn',						
			nextClass  :  'nextBtn',
			pageClass  :  'sliderPage',
			sliderClass:  'sliders',
			
			orientation: '', //  'vertical' is optional;
			speed      : 800,
			autoRun	   : false,
			delay      : 5000,
			opacity    : false,
			borderColor     : ' 1px solid #FFFFFF ',
			selborderColor  : ' 1px solid #ff0000 ',
            overborderColor : ' 1px solid #0056A7 ',
            
            pageImg    : '/img/site/circle1.png',
            pageImgSel : '/img/site/circle1_sel.png',
            
            backgroundA: false
		}; 
		
		var options = $.extend(defaults, options);  
		
		return this.each(function() 
		{
			var obj = $(this); 				
			var s = $("li", obj).length;
			
			if (options.stype == 'fade')		  
			{		      
			      $("li", obj).css('position', 'relative'); 
				  
				  elements = $('ul', obj).children();
				  for ( var i = 0; i < s; i++ ) 
				  {
	                 $(elements[i]).css('z-index', String(s-i)).css('position', 'absolute');
	                 $(elements[i]).hide();
	              }; 
				  
				  setTimeout(function(){ next(elements, 1, 0, s); }, options.delay);
					
	              $(elements[0]).show(); 
				  
			}
			else
			{			
			  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", obj).css('width',s*w);			
			  if(!vertical) $("li", obj).css('float','left');
			}
			 
			if (options.opacity)
			{
			  $("li img", obj).css('opacity', options.opacity).css('border', options.borderColor);
			}
												
			$("."+options.prevClass, obj).hide();
			$("."+options.nextClass, obj).hide();
						
			if (options.stype == 'slide') { Play(); } //--- merge singura 
			
			$("li img", obj).click(function()
			{
			   if (options.opacity)
			   {
			     $("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 (options.opacity)
			   { 		
			       if ( ! $(this).hasClass('jqueryActive') )	     			    
			         $(this).css('opacity', 1.0).css('border', options.overborderColor);		    
			   }
			});
			
			$("li img", obj).mouseout(function()
			{
			   if (options.opacity)			    
			   {			     	
			     if ( ! $(this).hasClass('jqueryActive') )	    
			       $(this).css('opacity', options.opacity).css('border', options.borderColor);			    
			   }
			});
			
			$("."+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();
			});	
			
			$("."+options.pageClass, obj).click(function()
			{ 
			  page = getHashFromString( $(this).attr("href") );
			  options.autoRun = false;
			  if (options.stype == 'fade')
			  {
				 $("li", obj).fadeOut();				  
				 next(elements, page, 0, s);
			  }
			  else
			  {			   			   	
			   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 next (elements, current, last, count)
			{
			
			    $(elements[last]).fadeOut(options.speed);
		        $(elements[current]).fadeIn(options.speed);
		        
		        if ( $("."+options.pageClass,obj) )
				{ 
				  $("."+options.pageClass,obj).children("img").attr("src", options.pageImg);
				  var index = current+1;				  
				  $('.'+options.pageClass+':nth-child('+index+')', obj).children("img").attr("src", defaults.pageImgSel);
				}   
		        
			  
			   if ( ( current + 1 ) < count ) 
			   {
			     current = current + 1;
			     last = current - 1;
		       } 
			   else 
			   {
			     current = 0;
			     last = count - 1;				
		       };
			   
		       if (options.autoRun)		       
			     setTimeout((function(){next(elements, current, last, count);}), 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) )
				{ 
				  // Deselectam toate imaginele 
				  if (options.backgroundA)
					  $("."+options.pageClass,obj).css("background","url("+defaults.pageImg+") no-repeat top");
				  else
				    $("."+options.pageClass,obj).children("img").attr("src", defaults.pageImg);
				  var index = t+1;
				  if (options.backgroundA)
					  $('.'+options.pageClass+':nth-child('+index+')', obj).css("background","url("+defaults.pageImgSel+") no-repeat top"); 
				  else
				   $('.'+options.pageClass+':nth-child('+index+')', obj).children("img").attr("src", defaults.pageImgSel);
				}   
             					  
				if(!vertical) 
				{				  
					p = (t*w*-1);										
					$("ul",obj).animate( { marginLeft: p },  options.speed );				
				} 
				else 
				{				   
					p = (t*h*-1);
					$("ul",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);
