/************************************************************************************
 
jQuery Full Width Slider

Author: http://www.theninjaofweb.com/tools/

Free for personal use! 

For commercial use you need to purchase this script! For example if you sell it as a
part of a package or website, implement it for a client’s website, etc.

************************************************************************************/
 
//params: speed, sleep, fade duration, current index, number of sliders, movement direction, bg img position, is first slide moving, 
function fws_fade(fws_speed,fws_sleep,fws_fade_dur,curr_ind,num_of_slides,movement,ypos,first_slide_is_animating){			

	if(num_of_slides == '1'){
		jQuery('#fwslide_0').css('display','inline');
	}else{
		
		if(movement == 'up'){var ypos = '0';}
		if(movement == 'down'){var ypos = '100';}
		if(movement == 'mixed'){
			if(ypos){				
					if(ypos == '0'){
						ypos = '100';
					}
					else
					{
						ypos = '0';
					}
				
			}else{
				var ypos = '0';
			}
		}
		

		var last_ind = num_of_slides-1;	
		if(curr_ind != last_ind){		
			if(curr_ind == 0){ 
				//first element					
				jQuery('#fwslide_0').css('display','inline');
					//if movement is set
					if(movement){
						if(first_slide_is_animating != 'yes'){							
							jQuery('#fwslide_0').css('backgroundPosition','50% 50%').animate({backgroundPosition: '50% '+ypos+'%'}, {queue: false, duration: fws_speed});
						}			
					}

					curr_ind++;
						
					fws_fade(fws_speed,fws_sleep,fws_fade_dur,curr_ind,num_of_slides,movement,ypos);
				
			}else{				
				//if movement is set
				if(movement){			
					jQuery('#fwslide_'+curr_ind).delay(fws_sleep).css('backgroundPosition','50% 50%').animate({backgroundPosition: '50% '+ypos+'%'}, {queue: false, duration: fws_speed}).fadeIn(fws_fade_dur, function(){
										var prev_ind = curr_ind - 1;
										prevslidevar = jQuery('#fwslide_'+prev_ind);
										prevslidevar.css('backgroundPosition','50% 50%');
										prevslidevar.css('display','none'); //hide last div																
						
						curr_ind++;
						fws_fade(fws_speed,fws_sleep,fws_fade_dur,curr_ind,num_of_slides,movement,ypos);
					});					
				}else{
					jQuery('#fwslide_'+curr_ind).delay(fws_sleep).css('backgroundPosition','50% 50%').fadeIn(fws_fade_dur, function(){				
									var prev_ind = curr_ind - 1;
									jQuery('#fwslide_'+prev_ind).css('display','none'); //hide last div					
									
									
									curr_ind++;
									fws_fade(fws_speed,fws_sleep,fws_fade_dur,curr_ind,num_of_slides,movement,ypos);
								});
				}
			}
		}else{
			//last element		
						
			//if movement is set
				if(movement){	
					jQuery('#fwslide_'+curr_ind).delay(fws_sleep).css('backgroundPosition','50% 50%').animate({backgroundPosition: '50% '+ypos+'%'}, {queue: false, duration: fws_speed}).fadeIn(fws_fade_dur, function(){									
										var prev_ind = curr_ind - 1;
										prevslidevar = jQuery('#fwslide_'+prev_ind);
										prevslidevar.css('backgroundPosition','50% 50%');
										prevslidevar.css('display','none'); //hide last div													
															
									//start animate first
									var first_slide_is_animating = 'yes';
									
									if(movement == 'mixed'){if(ypos == '0'){nuypos = '100';}else{nuypos = '0';}}else{nuypos = ypos;}
									
									nullslidevar = jQuery('#fwslide_0');
									nullslidevar.css('display','inline');									
																		
									setTimeout(function() {
										nullslidevar.delay(fws_sleep).css('backgroundPosition','50% 50%').animate({backgroundPosition: '50% '+nuypos+'%'}, {queue: false, duration: fws_speed});
										jQuery('#fwslide_'+curr_ind).fadeOut(fws_fade_dur, function(){
											curr_ind = '0';															
											fws_fade(fws_speed,fws_sleep,fws_fade_dur,curr_ind,num_of_slides,movement,ypos,first_slide_is_animating);
										});			
									},fws_sleep);									
									
								});									
				}else{
								jQuery('#fwslide_'+curr_ind).delay(fws_sleep).css('backgroundPosition','50% 50%').fadeIn(fws_fade_dur, function(){									
										var prev_ind = curr_ind - 1;
										jQuery('#fwslide_'+prev_ind).css('display','none'); //hide last div
										lastslidevar = jQuery('#fwslide_0');
										lastslidevar.css('display','inline');
										lastslidevar.css('backgroundPosition','50% 50%');
																			
										jQuery('#fwslide_'+curr_ind).delay(fws_sleep).fadeOut(fws_fade_dur, function(){
											curr_ind = 0;
											fws_fade(fws_speed,fws_sleep,fws_fade_dur,curr_ind,num_of_slides,movement,ypos);
										});
									});		
				
				}
		}
	}
	
}



(function($){
    //cache needed for overagressive garbage collectors.
    var cache = [];
    //images can either be an array of paths to images or a  single image. 
    $.loadImages = function(images, callback){
    
        //convert to array if needed so rest of script works
        if (!(images instanceof Array)) {
            images = [images];
        }
        
        var imagesLength = images.length;
        var loadedCounter = 0;
        
        for (var i = imagesLength; i--;) {
			var cacheImage = document.createElement('img');
			//set the onload method before the src is called otherwise will fail to be called in IE
            cacheImage.onload = function(){
                loadedCounter++;
                if (loadedCounter >= imagesLength) {
                    if ($.isFunction(callback)) {
                        callback();
                    }
                }
            }
            cacheImage.src = images[i];
            cache.push(cacheImage);
        }
    }
})(jQuery)

 
 
 
jQuery.fn.fullwidthSlider = function() {		
	//get arguments	
	var args = arguments[0] || {};    
	var loading_gif = args.loading_gif;
	var fws_speed = args.speed;
	var fws_sleep = args.sleep;
	var fws_fade_dur = args.fade;
	var fws_direction = args.direction;
	
	var movement = '';
		
	if(!fws_speed){fws_speed = '6000';}
	if(!fws_sleep){fws_sleep = '2000';}
	if(!fws_fade_dur){fws_fade_dur = '1000';}
	if(fws_direction){movement = fws_direction;}
	
	fws_speed = Number(fws_speed);
	fws_sleep = Number(fws_sleep);
	fws_fade_dur = Number(fws_fade_dur);
	
	//reduce cpu usage	
	jQuery.fx.interval = 50;
	
		
	//hide all images in slider div
	jQuery('img',this).hide();
	
	
	//get all img src and preload them
	var slideImgs=new Array();	
	jQuery('img',this).each(function(){
		slideImgs.push(jQuery(this).attr('src'));				
	});
	
	
	
	//get all href
	var slideLinks=new Array();
	jQuery('a',this).each(function(){
		slideLinks.push(jQuery(this).attr('href'));
	});
	
		
	//remove all images in slider div
	jQuery('a',this).remove();
	jQuery('img',this).remove();
	
	
	//display loading gif while loading
	jQuery(this).append('<div id="loadgif" style="width: 100%; height: 334px; text-align: center;"><img src="'+loading_gif+'" style="margin-top: 150px;" /></div>');
	
	//add slides
	var num_of_slides = slideImgs.length;
	
	var i=0;	
	for (i=0; i<slideImgs.length; i++)
	{		
		
		if(slideLinks[i]){
			jQuery(this).append('<a href="'+slideLinks[i]+'"><div id="fwslide_' + i + '"></div></a>');
		}else{
			jQuery(this).append('<div id="fwslide_' + i + '"></div>');
		}
		
		//set background image for divs
		jQuery('#fwslide_'+i).css('backgroundImage','url('+slideImgs[i]+')');			
		jQuery('#fwslide_'+i).css('display','none');	
		
	}
	
	
	
	
	
	
	jQuery.loadImages(slideImgs, function(){
		//when images loaded			
			//hide loading gif
			jQuery('#loadgif').remove();
		
			
		
			//start animations	
			fws_fade(fws_speed,fws_sleep,fws_fade_dur,0,num_of_slides,movement);
	});	
}
