/*
nfcbanner.js
Functions for getting the banner to zoom in and display random images.
*/

/************************************************
Global Variables
************************************************/
// If any other photos are added to the banner then update this number NOTE: All images should be named banner1.jpg, banner2.jpg etc 
// No numbers can be missed ie. DO NOT go banner1.jpg, banner2.jpg, banner4.jpg as this will fail.
var totalImagesForBanner = 32;

// Starting location for all animations (should not change)
var startingpoint = 800;

// Total Items - Total items on the banner (should not change)
var totalitems = 4;

// Item Width - The width of each item on the banner (should not change)
var itemwidth = 190;

// Gets the current image numbers so we don't have duplicates 
var currentimages=new Array(totalitems);

/************************************************
Functions
************************************************/

// Entry function for the banner
function startbanner() {
	bannerTimer(1);
}

// bannerTimer is used to time delay between animations
function bannerTimer(itemnumber){

	// Put this here as the first item takes too long otherwise
	animateitem(itemnumber);
	itemnumber++;
	play = setInterval(function(){
		if (itemnumber > totalitems) {
			itemnumber = 1;
			//remove all images
			removeimages();
			
			// Put this here as the first item takes too long otherwise
			animateitem(itemnumber);
			itemnumber++;
		} else {
			animateitem(itemnumber);
			itemnumber++;
		}
	}, 5000);
}

function animateitem(itemnumber) {
	addimagetobanneritem('bannerdiv' + itemnumber, 'bannerimg' + itemnumber, getimage(itemnumber));
	
	moveimage('bannerimg' + itemnumber, (itemnumber*itemwidth)-itemwidth);
}

function getimage(itemnumber)
{
	randomNumber = Math.round(Math.random()*(totalImagesForBanner-1))+1;
	var alreadyused = true;
	
	while (alreadyused) {
		alreadyused = false;
		for ( var i=0, len=currentimages.length; i<len; ++i ){
			if (currentimages[i] == randomNumber) {
				randomNumber = Math.round(Math.random()*(totalImagesForBanner-1))+1;
				alreadyused = true;
			}
		}
	}
	
	currentimages[itemnumber] = randomNumber;
	
	// Returns the path of the image to use
	return ('images/bannerimages/banner'+randomNumber+'.jpg');
}

function addimagetobanneritem(itemid, imageid, imgPath) {
	$('#' + itemid).prepend('<img id="' + imageid + '" src="' + imgPath + '" style="left: ' + startingpoint + 'px" />');
}

function moveimage(imageid, endpoint) {
	movementlength = startingpoint - endpoint;
	
	$('#'+ imageid).animate({
		left: '-=' + movementlength + 'px'
	}, 2000, function() {
		  $('#'+ imageid).animate({
			opacity: 0
		  }, 8000, function() {
			// Animation complete.
		  });
	});
}

function removeimages() {
	var i=0;
	while (i<=totalitems)
	{
		$('#bannerimg' + i).remove();
		i++;
	}	
}
