/* 	written on 2/12/2011
	written by Zhongxing Guo
	Version 1.0
*/

/* global variables */
var sliders;
var sliderArray = [];
var sliderBtnsArray = [];
var lastSlider = null;
var numOfSliders;
var index = 0;
var isRunning = false;

/* function of getting sliders and number of sliders*/
function getSliders() {
	sliders = $("#sliderContent").find('img');
	numOfSliders = sliders.size();
	sliders.each(function() {
		sliderArray.push($(this));
	});
}

/* function of displaying first slider */
function showSliders(sliderNum) {
	var direc;
	if(index < sliderNum)
		direc = 'right'
	else
		direc = 'left';
	sliderArray[sliderNum].show('slide', {direction: direc}, 'slow', function() {
		index = sliderNum;
		$('.sliderButtons').each(function() {
			$(this).prop('src', 'images/btnSlider.png');
		});
		sliderBtnsArray[index].prop('src', 'images/btnSlider_hover.png');
		lastSlider = sliderArray[sliderNum];
		if(lastSlider.prop('title') != '#') {
			$("#btnSliderFindOutMore").show();
			$("#btnSliderFindOutMore").animate({opacity : 100}, 500, function() {
				$("#btnSliderFindOutMore").prop("href", lastSlider.prop('title'));					
			});
		}
		else {				
			$("#btnSliderFindOutMore").animate({opacity : 0}, 500,function() {
				$("#btnSliderFindOutMore").hide();
			});
		}
		
		isRunning = false;
	});
	
}

function displayPrev() {
	var prev = index - 1;
	switchSlider(prev);
}

function displayNext() {
	var next = index + 1;	
	switchSlider(next);
}
/* function of switching sliders */

function switchSlider(sliderNum) {
	if(lastSlider !== null) {
		//Detect if the programme is running
		if(!isRunning) {
			if(index != sliderNum) {
				isRunning = true;
		
				if(sliderNum == 0) {
					$('#btnPrev').hide();
				} else {
					$('#btnPrev').show();			
				}
				
				if(sliderNum == (numOfSliders -1)) {
					$('#btnNext').hide();
					$('#buttonsDiv').css('padding-right', '25px');
				} else {
					$('#btnNext').show();
					$('#buttonsDiv').css('padding-right', '0px');
				}
				
				if(index < sliderNum)
					lastSlider.stop().hide('slide', {direction : 'left'}, 'slow');
				else
					lastSlider.stop().hide('slide', {direction : 'right'}, 'slow');
				
				showSliders(sliderNum);
			}
		}	
	}
}

//add slider buttons
function appendSliderButtons() {
	if(numOfSliders > 1) {
		$("#buttonsDiv").append('<img id="btnPrev" class="btnArrows" src="images/btnSlider_Left.png" alt="Previous" />');
		$('#btnPrev').hide();
	}
	for(var counter = 0; counter < numOfSliders; counter++) {
		$("#buttonsDiv").append('<img class="sliderButtons" src="images/btnSlider.png" alt="slider 1" onclick="switchSlider('+counter+')"/>');
	}
	if(numOfSliders > 1) {
		$("#buttonsDiv").append('<img id="btnNext" class="btnArrows" src="images/btnSlider_Right.png" alt="Previous" />');
	}
	$('.sliderButtons').each(function() {
		sliderBtnsArray.push($(this));
	});
}

//bind slider buttons
function bindSliderButtons() {
	$('.sliderButtons').bind('mouseover', function() {
		if($('.sliderButtons').index($(this)) != index)
			$(this).prop('src', 'images/btnSlider_hover.png');
	});
	$('.sliderButtons').bind('mouseleave', function() {
		if($('.sliderButtons').index($(this)) != index)
			$(this).prop('src', 'images/btnSlider.png');
	});
	if(numOfSliders > 1) {
		$('#btnPrev').bind('mouseover', function() {
			$(this).prop('src', 'images/btnSlider_Left_Hover.png');	
		});
		$('#btnPrev').bind('mouseleave', function() {
			$(this).prop('src', 'images/btnSlider_Left.png');	
		});
		$('#btnNext').bind('mouseover', function() {
			$(this).prop('src', 'images/btnSlider_Right_Hover.png');	
		});
		$('#btnNext').bind('mouseleave', function() {
			$(this).prop('src', 'images/btnSlider_Right.png');	
		});
		
		$('#btnPrev').bind('click', displayPrev);
		$('#btnNext').bind('click', displayNext);
	}
}

//unbind slider buttons
function unBindSliderButtons() {
	$('.sliderButtons').unbind('mouseover');
	$('.sliderButtons').unbind('mouseleave');
}


//initialising sliders
function initialiseSliders() {
	//hide all images
	$("#sliderContent").find('img').css('opacity', 0);
	$("#sliderContent").find('img').hide('slide', {}, 0,function () {
		$("#sliderContent").find('img').css('opacity', 100);
	});
	
	//initialise slider related arrays
	getSliders();
	
	//show the first slide
	sliderArray[0].stop().show('slide', {}, 0);
	
	//set up index and lastSlider variable
	index = 0;
	lastSlider = sliderArray[0];
	
	//add slider buttons
	appendSliderButtons();
	
	//bind slider buttons
	bindSliderButtons();
	
	//highlight the first slider button
	sliderBtnsArray[0].prop('src', 'images/btnSlider_hover.png');
	
	if(lastSlider.prop('title') != '#') {
		$("#btnSliderFindOutMore").animate({opacity : 100}, 500, function() {
			$("#btnSliderFindOutMore").prop("href", lastSlider.prop('title'));					
		});
	}
	else {				
		$("#btnSliderFindOutMore").animate({opacity : 0}, 500);
	}	
}
