var j = jQuery.noConflict();

j(document).ready(function(){

	// HOME PAGE BANNER Slider ------------------------------------------
	var bannerPause = 5000;
	var bannerTimer;
	
	var bannerIsSliding;
	var bannerNumber;
	var bannerWidth = 729;
	var bannerHolderLength = j(".bannerSlider .banner");
	var bannerHolderHeight = 200 * bannerHolderLength;
	var animationSpeed = 600;
	var currentBanner, currentBannerLink;

	// init
	j(".bannerSlider .banner").css({"display":"none", "position":"absolute", "width":"729"});
	j(".bannerSlider .banner:first").css({"display":"block"}).addClass("active");
	j(".bannerNum ul a:first").addClass("active");
	j(".bannerNum ul a:last").addClass("last");

	// initialise
	if (j(".bannerSlider .banner").length > 0) {
		startTimer();
	}
	
	function stopTimer() {
		clearTimeout(bannerTimer);
	}
	
	function startTimer() {
		bannerTimer = setTimeout(function() {
			autoBannerSlide();
		},bannerPause);
	}

	function startTimerSooner() {
		var bannerPauseShort = bannerPause/2;
		bannerTimer = setTimeout(function() {
			autoBannerSlide();
		},bannerPauseShort);
	}

	// auto select the next button
	function autoBannerSlide() {
		var button;
		if (j(".bannerSlider .banner:animated").length == 0) {
			if ( j(".bannerNum ul a.active").hasClass("last") ) {
				button = j(".bannerNum ul a:first");
			} else {
				button = j(".bannerNum ul a.active").parent().next().find("a");
			}
			doBannerSlide(button);
		}
	}

	// do on click
	j(".bannerNum ul a").bind("click", function() {
		var button;
		if (j(".bannerSlider .banner:animated").length == 0) {
			if ( j(".bannerNum ul a.active").hasClass("last") ) {
				button = j(".bannerNum ul a:first");
			} else {
				button = j(".bannerNum ul a.active").parent().next().find("a");
			}
		doBannerSlide(j(this));	
		}
	});
	
	// on mouseover, pause timer, on mouseout start
	j(".bannerSlider").hover(function() {
			stopTimer();
		},function(){
			startTimerSooner();
	});
	
	// main function - slides and reset slider
	function doBannerSlide(clickedButton) {
			stopTimer();
			
			var previousBanner = j(".bannerSlider .active");
			bannerNumber = clickedButton.attr("rel");
			currentBanner = j(".bannerSlider #banner"+bannerNumber);
			currentBannerLink = clickedButton;
			// if it's not current item
			if ( !currentBanner.hasClass("active") && j(".bannerSlider .banner:animated").length==0) {
				// clear all buttons
				j(".bannerNum ul a").removeClass("active");
				
				// fade previous slide out
				previousBanner.css({"display":"block"})
					.animate({
						left: '-'+bannerWidth
					},animationSpeed, 'easeInExpo', function(){
						previousBanner.css("display","none").removeClass("active");
						
						
				});

				// fade current slide in
				currentBannerLink.addClass("active");
				currentBanner.css({"left":bannerWidth+"px", "top":"0px", "display":"block"})
					.animate({
						left: '0'
					},animationSpeed, 'easeInExpo', function(){
						currentBanner.addClass("active");

						// reset timer
						startTimer();
				});
					
			}
	}
	
});
