/**
 * Generates a random number from 1 to the defined number
 */
function rnd(min, max) {
	var rand = min+(Math.random()*(max-min));
  return Math.round(rand);			
}

/**
 * Generates an array of random numbers with the ability to 
 * include duplicates or not
 */
function rndArray(size, min, max, duplicatesOk, otherArrays) {
	
	var numArr = Array();
	
	
	for(var i=0; i<size; i++) {
		
		// If not wanting duplicates
		if(!duplicatesOk) {

			var added = false;
			var num = null;
			
			// Loop until a unique number is added
			while(!added) {
				
				// Get a random number
				num = rnd(min, max);
				var exists = false;
			
				// Find this number in other arrays
				for(var j=0; j<otherArrays.length; j++) {
					for(var k=0; k<otherArrays[j].length; k++) {

						// If number is found, set a flag and break
						if(otherArrays[j][k] == num) {
							exists = true;
							break; }
					}
				}
			
				// Find this number in the array (if not already found)
				if(!exists) {
					for(var j=0; j<numArr.length; j++) {
			
						// If number is found, set a flag and break
						if(numArr[j] == num) {
							exists = true;
							break; }
					}
				}
			
				if(!exists) {
					numArr.push(num);
					added = true; }
			}
		}	
		
		// Else, duplicates don't matter so just add random number
		else {
			numArr.push(rnd(min, max)); }
	}
	
	return numArr;
}

/**
 * Run javascript/JQuery code once the DOM has loaded
 */
$(document).ready(function() {

	switch(jQuery("body").attr("id")){
			case "index":
				frontPage();
				break;
			case "searchaction":
				// resultsPage();
				break;
			case "renderitem":
				// itemPage();
				break;
		}
});

function frontPage() {

	/*******************************/
	/*     IMAGE MARQUEE SCRIPT    */
	/*******************************/
				
	// Picture Marquee Settings
	var DUPLICATES_OK				= false;
	var NUM_PIC_BLOCKS 			= 9;
	var NUM_PICS_PER_BLOCK	= 2;	// DO NOT set higher than (highest_pic_file * num_pic_blocks)

	var HIGHEST_PIC_FILE		= 21;	// i.e. pic-1.jpg, pic-2.jpg

	var MIN_TIME_DELAY			= 4; 	// seconds
	var MAX_TIME_DELAY			= 14;	// seconds

				
	// Check for valid settings
	if(!DUPLICATES_OK && ((NUM_PIC_BLOCKS*NUM_PICS_PER_BLOCK) > HIGHEST_PIC_FILE)) {
		alert('Image Marquee setting error\nNot enough picture files to ensure no duplicates');
	}
	
	// If settings are ok, continue
	else {
		// Define an array of random picture numbers
		var picArray = Array();
		for(var i=0; i<NUM_PIC_BLOCKS; i++) {
			picArray[i] = rndArray(NUM_PICS_PER_BLOCK, 1, HIGHEST_PIC_FILE, DUPLICATES_OK, picArray); }
		
		// Define an array of random times to fade=in pictures
		var picTimers = rndArray(NUM_PIC_BLOCKS, MIN_TIME_DELAY, MAX_TIME_DELAY, true);
	
		// Instantiate the image marquee using JQuery
		for(var i=0; i<NUM_PIC_BLOCKS; i++) {
		
			var	imageArr = Array();
		
			for(var j=0; j<NUM_PICS_PER_BLOCK; j++) {
			
				imageArr.push(
				  { src: 'assets/-/marquee/images/pic-'+ picArray[i][j] +'.jpg' }
				);
			}
		
			$('.pic-'+(i+1)).crossSlide(
				{
			  	sleep: picTimers[i],
			  	fade: 2
				}, imageArr);
		}
	}
};
