/* ------------------------------------------------------------------------
	s3Slider
	
	Developped By: Boban Karišik -> http://www.serie3.info/
        CSS Help: Mészáros Róbert -> http://www.perspectived.com/
	Version: 1.0
	
	Copyright: Feel free to redistribute the script/modify it, as
			   long as you leave my infos at the top.
------------------------------------------------------------------------- */

        
        var current     = null;
        var timeOutFn   = null;
        var faderStat   = true;
        var mOver       = false;
		var element = null;
		var paused = false;
		var timeOut;
		var items = null;
		
		var fadeElement;
		var makeSlider;
		var makeBackWardSlider;
		
		var changeBackWard;
		var changeFordWard;
		//var pauseSlider;
		
		var currentTimerId = null;
		var currNo = 0; 
		var	timing = false;	

(function($){  

    $.fn.s3Slider = function(vars) {       
        element     = this;
        timeOut     = (vars.timeOut != undefined) ? vars.timeOut : 4000;
        items       = $("#" + element[0].id + "Content ." + element[0].id + "Image");
        var itemsSpan   = $("#" + element[0].id + "Content ." + element[0].id + "Image span");
		
		showCurrentSlideElement = function (){
		
		  $(items[currNo]).fadeIn((timeOut/6), function() {
			   /* if($(itemsSpan[currNo]).css('bottom') == 0) {
					$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
						faderStat = false;
						current = items[currNo];
						if(!mOver) {
							fadeElement(false);
						}
					});
				} else*/ 
				{
					$(itemsSpan[currNo]).slideDown((timeOut/6), function() {
					
						//faderStat = false;
						current = items[currNo];
						//if(!mOver && !paused) {
						     waitSlider();
							 //fadeElement(false);
						//}
					});
				}
           });
		
		}
		
		waitSlider = function (){
		  if(!paused){
		  timing = true;
		  currentTimerId =  setTimeout(removeSlider, timeOut);
		  }
		}
		
		removeSlider = function(){
		  timing = false;
		  if(!paused){
			$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
			$(items[currNo]).fadeOut((timeOut/6), function() {
					//faderStat = true;
					 //current = items[(currNo+1)];
					 currNo = currNo +1;
					 if (currNo == items.length -1){
					  currNo = 0;
					 }
					 
					 current = items[currNo];
					 
					//if(!mOver && !paused) {
					     showCurrentSlideElement(currNo);
						//fadeElement(false);
					//}
				});
			});
		  }
		}
		
		removeAndBackWard = function(){
		  timing = false;
		  if(!paused){
			$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
			$(items[currNo]).fadeOut((timeOut/6), function() {
					currNo = currNo -1;
					 if (currNo < 0 ){
					  currNo = (items.length -2);
					 }				   
					//if(!mOver && !paused) {
					     showCurrentSlideElement(currNo);
						//fadeElement(false);
					//}
				});
			});
		  }
		}
		
		
		//these is fast
		changeBackWard = function(){
		
			$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
				$(items[currNo]).fadeOut((timeOut/6), function() {
						currNo = currNo -1;
						 if (currNo < 0 ){
						  currNo = (items.length -2);
						 }
						 
						$(items[currNo]).fadeIn((timeOut/6), function() {			  
							{
							$(itemsSpan[currNo]).slideDown((timeOut/6), function() {
							});
							}
						});

						 
				});
			});
		}
		
		changeFordWard = function(){
		
		$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
			$(items[currNo]).fadeOut((timeOut/6), function() {					
					 currNo = currNo +1;
					 if (currNo == items.length -1){
					  currNo = 0;
					 }					 
				
					 $(items[currNo]).fadeIn((timeOut/6), function() {			  
							{
							$(itemsSpan[currNo]).slideDown((timeOut/6), function() {
							});
							}
					 });
					
				});
			})
				
		}
		
		
		fordwardSlider = function(){
		  if(paused == false){
	       if(timing == true){
			 clearTimeout (currentTimerId);
			 removeSlider();			
			}
		 }
		 else
		  changeFordWard();
		}
		
		makeBackWardSlider = function(){
	      if(paused == false){
			if(timing == true){
			 clearTimeout (currentTimerId);
			 removeAndBackWard();			
			}
          }	
          else
		  changeBackWard();		  
		}
		
		pauseSlider = function (){
 
			if(paused == false){
				paused = true; 
				clearTimeout (currentTimerId); 
				$('#sliderPause').attr('src','../images/slidePlay.gif');		

			} else{
				paused = false;
				$('#sliderPause').attr('src','../images/slidePause.gif');				
				waitSlider(); 
			}     
		}
		
		
		
		
		
		
       /* items.each(function(i) {
    
            $(items[i]).mouseover(function() {
		        mOver = true;
            });
            
            $(items[i]).mouseout(function() {
			    mOver   = false;
                fadeElement(true);
	         });
            
        });*/
        
       /* fadeElement = function(isMouseOut) {
		
            var thisTimeOut = (isMouseOut) ? (timeOut/2) : timeOut;
            thisTimeOut = (faderStat) ? 10 : thisTimeOut;
            if(items.length > 0) {
			    timeOutFn = setTimeout(makeSlider, thisTimeOut);
            } else {
                console.log("Poof..");
            }	
		}*/
        
        makeSlider = function() {
		//alert(items.length);
	        
            current = (current != null) ? current : items[(items.length-1)];
            var currNo      = jQuery.inArray(current, items) + 1
            currNo = (currNo == items.length) ? 0 : (currNo - 1);
            var newMargin   = $(element).width() * currNo;
            if(faderStat == true) {
			   
                if(!mOver) {				     
                    showCurrentSlideElement(currNo);
                }
            } else {
               /* if(!mOver) {				   
				   
                    if($(itemsSpan[currNo]).css('bottom') == 0) {
					    $(itemsSpan[currNo]).slideDown((timeOut/6), function() {
                            $(items[currNo]).fadeOut((timeOut/6), function() {
                                faderStat = true;
                                current = items[(currNo+1)];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        });
                    } else {
					   
						if(!paused){
						$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
                        $(items[currNo]).fadeOut((timeOut/6), function() {
                                faderStat = true;
                                current = items[(currNo+1)];
                                if(!mOver && !paused) {
                                    fadeElement(false);
                                }
                            });
                        });
					  }
                    }
                }*/
            }
        }
		
		
		 
		
		/*makeBackWardSlider = function() {
	        
            current = (current != null) ? current : items[(items.length-1)];
            var currNo      = jQuery.inArray(current, items) + 1;
		    currNo = (currNo == items.length) ? 0 : (currNo - 1);
            var newMargin   = $(element).width() * currNo;
            if(faderStat == true) {
			   
                if(!mOver) {				     
                    $(items[currNo]).fadeIn((timeOut/6), function() {
                        if($(itemsSpan[currNo]).css('bottom') == 0) {
                            $(itemsSpan[currNo]).slideUp((timeOut/6), function() {
							    
                                faderStat = false;
                                current = items[currNo];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        } else {
                            $(itemsSpan[currNo]).slideDown((timeOut/6), function() {
							   
                                faderStat = false;
                                current = items[currNo];
                                if(!mOver && !paused) {
                                    fadeElement(false);
                                }
                            });
                        }
                    });
                }
            } else {
                if(!mOver) {
				   
				   
                    if($(itemsSpan[currNo]).css('bottom') == 0) {
					    $(itemsSpan[currNo]).slideDown((timeOut/6), function() {
                            $(items[currNo]).fadeOut((timeOut/6), function() {
                                faderStat = true;
                                current = items[(currNo+1)];
                                if(!mOver) {
                                    fadeElement(false);
                                }
                            });
                        });
                    } else {
					  
						if(!paused){
						$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
                        $(items[currNo]).fadeOut((timeOut/6), function() {
                                faderStat = true;
								if(currNo-1 >= 0)
                                 current = items[(currNo-1)];
								else{
								  current = items[items.length-2];  
								 }
								
                                if(!mOver && !paused) {
                                    fadeElement(false);
                                }
                            });
                        });
					  }
                    }
                }
            }
        }*/

       
        makeSlider();

    };  

})(jQuery);  
