
// feature widget, kev.w

// GLOBALS
var MAX_ARRAY_SIZE = 5;
var IMAGE_SET = Array();
var image_set = Array();
var BASE_URL = "/common/images/features/";

function determineSeason() 
{
	/* Seasonal Date Cut-offs (dc) - kev.w */
	var current_date 	= new Date();									// Winter - Jan   -> Feb
	var dc_spring 		= new Date(current_date.getFullYear(),2,1);	// Spring - March -> May
	var dc_summer 		= new Date(current_date.getFullYear(),5,1);	// Summer - June  -> Aug
	var dc_autumn 		= new Date(current_date.getFullYear(),8,1); 	// Autumn - Sept  -> Oct
	var dc_winter 		= new Date(current_date.getFullYear(),10,1); 	// Winter - Nov	  -> Dec
/*
	var current_date 	= new Date();									// Winter - Jan 1	 -> March 19
	var dc_spring 		= new Date(current_date.getFullYear(),2,20);	// Spring - March 20 -> June 21
	var dc_summer 		= new Date(current_date.getFullYear(),5,22);	// Summer - June 22  -> Sept 22
	var dc_autumn 		= new Date(current_date.getFullYear(),8,23); 	// Autumn - Sept 23	 -> Dec 21
	var dc_winter 		= new Date(current_date.getFullYear(),11,21); 	// Winter - Dec 21	 -> Dec 31
*/

	if( current_date < dc_spring || current_date >= dc_winter ) {
		return "Winter";
	} else if( current_date >= dc_spring && current_date < dc_summer ) {
		return "Spring";
	} else if( current_date >= dc_summer && current_date < dc_autumn ) {
		return "Summer";
	} else {
		return "Autumn";
	}
}

function getRandom() 
{
	return Math.floor( Math.random() * MAX_ARRAY_SIZE );
}

function getImageHTML( image_name,BASE_URL ) {
	//alert(image_name);
	var html = '<img src="'+ BASE_URL + image_name + '" alt="Seasonal Image" />';	
	return html;
}

/*var init = function() {

	var season = determineSeason();
	
}*/

var windowHeight = 0;
var bodyHeight = 0;

function checkPageLength(active) {
	if( active )
	{
		var back_to_top = document.getElementById("back_to_top");

		back_to_top.style.display = 'block';
	}
	else
	{
		bodyHeight = document.body.scrollHeight;
		if( typeof( window.innerWidth ) == 'number' ) 
		{
			//Non-IE
			windowHeight = window.innerHeight;
		} 
		else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
		{
			//IE 6+ in 'standards compliant mode'
			windowHeight = document.documentElement.clientHeight;
		}
		
		var back_to_top = document.getElementById("back_to_top");
		
		if( bodyHeight > windowHeight )
			back_to_top.style.display = 'block';
		else
			back_to_top.style.display = 'none';
	}
}

/* BETA - photo gallery - kev.w */
function populateImageSet( season ) {
	
	switch( season ) {
		case "Winter":
			image_set[0] = "img__winterrunners.jpg";
			image_set[1] = "img__snowsoccer.jpg";
			image_set[2] = "img__snow_girl.jpg";
			image_set[3] = "homepage-header-12.jpg";
			image_set[4] = "homepage-header-09.jpg";
			image_set[5] = "homepage-header-10.jpg";
			break;
		case "Spring":
			image_set[0] = "img__dog_walkers.jpg";
			image_set[1] = "img__bicyclist.jpg";
			image_set[2] = "homepage-header-01.jpg";
			image_set[3] = "homepage-header-13.jpg";
			image_set[4] = "homepage-header-11.jpg";
			image_set[5] = "homepage-header-04.jpg";
				break;
		case "Summer":
			image_set[0] = "img__dancers.jpg";
			image_set[1] = "img__jogger.jpg";
			image_set[2] = "homepage-header-02.jpg";
			image_set[3] = "homepage-header-03.jpg";
			image_set[4] = "homepage-header-06.jpg";
			image_set[5] = "homepage-header-15.jpg";
			image_set[6] = "homepage-header-16.jpg";
				break;
		case "Autumn":
			image_set[0] = "img__older_men.jpg";
			image_set[1] = "img__wheelchair.jpg";
			image_set[2] = "homepage-header-08.jpg";
			image_set[3] = "homepage-header-05.jpg";
				break;
	}
	
}

function preloadImageSet() {
	for( var i = 0; i < image_set.length; i++ ) {
		image_pre[i] = new Image();
		image_pre[i].src = base_url + image_set[i];
	}
}

/* Variables */
var fader = null;
var index = 0;
var repeater = null;
var playing = true;
var locked = false;

var season = "";
var base_url = "/common/images/interface/homepage_rotation/";

var image_set = Array(); // filenames
var image_pre = Array(); // preload


/* Initialize fader */
var init = function() {
	
	//check what this page has (fader = homepage image rotator, featured_wrapper = footer season pic
	var faderId = document.getElementById("fader");
	var featureWrapper = document.getElementById("feature_wrapper");
	
	if(faderId != null)
	{
		fader = new YAHOO.util.Motion("fader"); 
		fader.method = YAHOO.util.Easing.easeOut; 
		
		// determine season
		season = determineSeason();
		
		// generate image set
		populateImageSet( season );
	
		// preload images
		preloadImageSet();
		
		// load initial image
		document.getElementById("fader").innerHTML = getImageHTML( image_set[index],base_url );
		
		// start
		start();
	}
	
	if(featureWrapper != null)
	{
		season = determineSeason();
		switch( season )
		{
			case "Autumn":
				IMAGE_SET[0] = 'shoes_hiking-boots.jpg';
				IMAGE_SET[1] = 'shoes_golf-shoes.jpg';
				IMAGE_SET[2] = 'shoes_cleats.jpg';
				IMAGE_SET[3] = 'shoes_runners.jpg';
				IMAGE_SET[4] = 'shoes_cleats.jpg';
				break;
			case "Winter":
				IMAGE_SET[0] = 'shoes_figure-skates.jpg';
				IMAGE_SET[1] = 'shoes_hockey-skates.jpg';
				IMAGE_SET[2] = 'shoes_snowshoes.jpg';
				IMAGE_SET[3] = 'shoes_winter-boots.jpg';
				IMAGE_SET[4] = 'shoes_hockey-skates.jpg';
					break;
			case "Spring":
			case "Summer":
				IMAGE_SET[0] = 'shoes_rollerblades.jpg';
				IMAGE_SET[1] = 'shoes_flippers.jpg';
				IMAGE_SET[2] = 'shoes_golf-shoes.jpg';
				IMAGE_SET[3] = 'shoes_rollerblades.jpg';
				IMAGE_SET[4] = 'shoes_runners.jpg';
				IMAGE_SET[5] = 'shoes_cleats.jpg';
					break;				
		}
	document.getElementById("feature_wrapper").innerHTML = getImageHTML( IMAGE_SET[ getRandom() ],BASE_URL );
	}

}

/* Start slideshow */
var start = function() {
	repeater = window.setInterval(play,6000);
}

/* Plays slideshow, called by start() */
var play = function() {
	next();
}								

/* Handles transition to next image */
var next = function() {
	index++;
	preload();
	fadeOut();
}

/* Image fadeout */
var fadeOut = function() {
	fader.duration = 0.6;
	fader.attributes.opacity = { from : 1, to : 0 };
	fader.onComplete.subscribe(swap);
	fader.animate(); 
}

/* Image fadein */
var fadeIn = function() {
	fader.duration = 1.3;
	fader.attributes.opacity = { from : 0, to : 1 };
	fader.onComplete.unsubscribe(swap);
	fader.animate(); 				
}

/* Swaps image after fadeout */
var swap = function() {	
	document.getElementById("fader").innerHTML = getImageHTML( image_set[index],base_url );
	fadeIn();
}			

/* Image preload for smooth transitions */
var preload = function() {
	if (index == image_set.length)
		index = 0;
	else if (index < 0)
		index = image_set.length - 1;
	
	document.getElementById("preload").innerHTML = getImageHTML( image_set[index],base_url );	
}			

