/***** bxSlider: Content slider / fade / ticker using the jQuery javascript library.** Author: Steven Wanderski* Email: wandoledzep@gmail.com* URL: http://bxslider.com* ***/jQuery.fn.bxSlider = function(options){		/////////////////////////////////////////////////////////////////////////////////////////////////////////////	// Declare variables and functions	/////////////////////////////////////////////////////////////////////////////////////////////////////////////	var defaults = {		mode: 'slide',		speed: 500,		auto: false,		auto_direction: 'left',		pause: 2500,		controls: true,		prev_text: 'prev',		next_text: 'next',		width: $(this).children().width(),		prev_img: '',		next_img: '',		ticker_direction: 'left',		wrapper_class: 'container'	};		options = $.extend(defaults, options);		if(options.mode == 'ticker'){		options.auto = true;	}		var $this = $(this);	var $parent_width = options.width;		var current = 0;	var is_working = false;	var child_count = $this.children().size();	var i = 0;	var j = 0;	var k = 0;			function animate_next(){				is_working = true;				$this.animate({'left':'-' + $parent_width * 2 + 'px'}, options.speed, function(){						$this.css({'left':'-' + $parent_width + 'px'}).children(':first').appendTo($this);						is_working = false;					});					}		function animate_prev(){				is_working = true;				$this.animate({'left': 0}, options.speed, function(){						$this.css({'left':'-' + $parent_width + 'px'}).children(':last').insertBefore($this.children(':first'));						is_working = false;					});							}		function fade(direction){						if(direction == 'next'){					var last_before_switch = child_count - 1;			var start_over = 0;			var incr = k + 1;					}else if(direction == 'prev'){						var last_before_switch = 0;			var start_over = child_count -1;			var incr = k - 1;					}						is_working = true;				if(k == last_before_switch){						$this.children().eq(k).fadeTo(options.speed, 0, function(){$(this).hide();});			//$this.children().eq(k).css({'left':'-9999px'});			$this.children().eq(start_over).show().fadeTo(options.speed, 1, function(){							is_working = false;				k = start_over;						});					}else{					$this.children().eq(k).fadeTo(options.speed, 0, function(){$(this).hide();});			//$this.children().eq(k).css({'left':'-9999px'});			$this.children().eq(incr).show().fadeTo(options.speed, 1, function(){						is_working = false;						k = incr;						});						}					}		function add_controls(){				/////////////////////////////////////////////////////////////////////////////////////////////////////////////		// Check if user selected images to use for next / prev		/////////////////////////////////////////////////////////////////////////////////////////////////////////////			if(options.prev_img != '' || options.next_img != ''){						$this.parent().append('<a class="slider_prev" href=""><img src="' + options.prev_img + '" alt=""/></a><a class="slider_next" href=""><img src="' + options.next_img + '" alt="" /></a>');					}else{					$this.parent().append('<a class="slider_prev" href="">' + options.prev_text + '</a><a class="slider_next" href="">' + options.next_text + '</a>');				}				$this.parent().find('.slider_prev').css({'float':'left', 'outline':'0'});		$this.parent().find('.slider_next').css({'float':'right', 'outline':'0'});						/////////////////////////////////////////////////////////////////////////////////////////////////////////////		// Accomodate padding-top for controls when elements are absolutely positioned (only in fade mode)		/////////////////////////////////////////////////////////////////////////////////////////////////////////////				if(options.mode == 'fade'){						$this.parent().find('.slider_prev').css({'paddingTop' : $this.children().height()})			$this.parent().find('.slider_next').css({'paddingTop' : $this.children().height()})					}				                                                       		/////////////////////////////////////////////////////////////////////////////////////////////////////////////		// Actions when user clicks next / prev buttons        		/////////////////////////////////////////////////////////////////////////////////////////////////////////////		                                                       		$this.parent().find('.slider_next').click(function(){								if(!is_working){								if(options.mode == 'slide'){										 					animate_next();										if(options.auto){												clearInterval($.t);												$.t = setInterval(function(){animate_next();}, options.pause);											}								}else if(options.mode == 'fade'){										fade('next');										if(options.auto){												clearInterval($.t);												$.t = setInterval(function(){fade('next');}, options.pause);											}									}							}											return false;							});					$this.parent().find('.slider_prev').click(function(){							if(!is_working){								if(options.mode == 'slide'){										 					animate_prev();										if(options.auto){												clearInterval($.t);												$.t = setInterval(function(){animate_prev();}, options.pause);											}										}else if(options.mode == 'fade'){										fade('prev');										if(options.auto){											clearInterval($.t);											$.t = setInterval(function(){fade('prev');}, options.pause);										}									}							}								return false;							});			}			function ticker() {				if(options.ticker_direction == 'left'){							$this.animate({'left':'-' + $parent_width * 2 + 'px'}, options.speed, 'linear', function(){							$this.css({'left':'-' + $parent_width + 'px'}).children(':first').appendTo($this);							ticker();						});						}else if(options.ticker_direction == 'right'){						$this.animate({'left': 0}, options.speed, 'linear', function(){				$this.css({'left':'-' + $parent_width + 'px'}).children(':last').insertBefore($this.children(':first'));				ticker();			});									}					}					/////////////////////////////////////////////////////////////////////////////////////////////////////////////	// Create content wrapper and set CSS	/////////////////////////////////////////////////////////////////////////////////////////////////////////////		$this.wrap('<div class="' + options.wrapper_class + '"></div>');		//console.log($this.parent().css('paddingTop'));				if(options.mode == 'slide' || options.mode == 'ticker'){				$this.parent().css({			'overflow' : 'hidden',			'position' : 'relative',			'width' : options.width + 'px'		});					$this.css({					'width' : '999999px',			'position' : 'relative',			'left' : '-' + $parent_width + 'px'				});					$this.children().css({					'float' : 'left',			'width' : $parent_width		});		 			$this.children(':last').insertBefore($this.children(':first'));		}else if(options.mode == 'fade'){				$this.parent().css({			'overflow' : 'hidden',			'position' : 'relative',			'width' : options.width + 'px'			//'height' : $this.children().height()		});				if(!options.controls){					$this.parent().css({'height' : $this.children().height()});				}				$this.children().css({					'position' : 'absolute',			'width' : $parent_width,			'listStyle' : 'none',			'opacity' : 0,			'display' : 'none'			});				$this.children(':first').css({			'opacity' : 1,			'display' : 'block'		});					}		/////////////////////////////////////////////////////////////////////////////////////////////////////////////	// Check if user selected "auto"	/////////////////////////////////////////////////////////////////////////////////////////////////////////////			if(!options.auto){						add_controls();					}else{				if(options.mode == 'ticker'){						ticker();					}else{					/////////////////////////////////////////////////////////////////////////////////////////////////////////////			// Set a timed interval 			/////////////////////////////////////////////////////////////////////////////////////////////////////////////						if(options.mode == 'slide'){								if(options.auto_direction == 'left'){												$.t = setInterval(function(){animate_next();}, options.pause);										}else if(options.auto_direction == 'right'){									$.t = setInterval(function(){animate_prev();}, options.pause);								}					}else if(options.mode == 'fade'){								if(options.auto_direction == 'left'){								$.t = setInterval(function(){fade('next');}, options.pause);								}else if(options.auto_direction == 'right'){									$.t = setInterval(function(){fade('prev');}, options.pause);								}						}						if(options.controls){							add_controls();						}				}		}		}
