/*
*	Created by Bernard Frangoulis, last updated on 2011-03-28.
*	Copyright (c) 2011 Bernard Frangoulis. All rights reserved.
*/

var hasDHTML = (document.getElementById || document.all);
var w3CDOM = (document.createElement && document.getElementsByTagName);

var gNbPics = 0;

// Initialize a home page

function init_home()
{
	if(!w3CDOM) return;
	PreventFocusBoxes();
	
	//shuffle_pics(1000);
	
	// Count pics (set gNbPics)
	for(var i=0;i<pics.length;i++) {
		if(pics[i] != "") gNbPics++;
		else return;
	}
	if(gNbPics==0) return;

	var slideshow = document.getElementById('slideshow');
	var s="";
	var path="";
	
	// Assign the thumbnail images to the <a> elements with id="thumb<i>"
	for(var i=0;i<gNbPics;i++)
	{
		path = pics[i];
		if(i==0) s = s + "<a id='thumb1' href='img/slides/" + path + ".jpg'  onclick='return hs.expand(this, { autoplay:true })'></a>";
		else s = s + "<a href='img/slides/" + path + ".jpg'  onclick='return hs.expand(this, { autoplay:true })'></a>";		
	}
	
	if(s!="") {
		s = "<div class='hidden'>" + s + "</div>";
		slideshow.innerHTML = s;
	}
}

// ================================================================================

function MouseOverFlower()
{
	var idx = this.parentNode.id;
	if(idx.substr(7)=="l" || idx.substr(7)=="r") {
		var obj = GetObj(idx+"_txt");
		if(obj) {
			var aa = obj.getElementsByTagName('a');
			if(aa[0]) {
				aa[0].className = "ahover";
			}
		}
	}
	return true;
}

function MouseOutOfFlower()
{
	var idx = this.parentNode.id;
	if(idx.substr(7,1)=="l" || idx.substr(7,1)=="r") {
		var obj = GetObj(idx+"_txt");
		if(obj) {
			var aa = obj.getElementsByTagName('a');
			if(aa[0]) {
				aa[0].className = "alink";
			}
		}
	}
	return true;
}

function MouseOverLink()
{
	var idx = this.parentNode.id;
	if(idx.substr(7,1)=="l" || idx.substr(7,1)=="r") {
		var obj = GetObj(idx.substr(0,8));
		if(obj) {
			var aa = obj.getElementsByTagName('a');
			if(aa[0]) {
				aa[0].className = "ahover";
			}
		}
	}
	return true;
}

function MouseOutOfLink()
{
	var idx = this.parentNode.id;
	if(idx.substr(7,1)=="l" || idx.substr(7,1)=="r") {
		var obj = GetObj(idx.substr(0,8));
		if(obj) {
			var aa = obj.getElementsByTagName('a');
			if(aa[0]) {
				aa[0].className = "alink";
			}
		}
	}
	return true;
}

function init()
{
	var obj = GetObj("flower_l"); 
	
	var aa = obj.getElementsByTagName('a');
	if(aa[0]) {
		aa[0].onmouseover = MouseOverFlower;
		aa[0].onmouseout = MouseOutOfFlower;
	}
	
	var obj = GetObj('flower_r');
	var aa = obj.getElementsByTagName('a');
	if(aa[0]) {
		aa[0].onmouseover = MouseOverFlower;
		aa[0].onmouseout = MouseOutOfFlower;
	}
	
	var obj = GetObj('flower_l_txt');
	var aa = obj.getElementsByTagName('a');
	if(aa[0]) {
		aa[0].onmouseover = MouseOverLink;
		aa[0].onmouseout = MouseOutOfLink;
	}
	
	var obj = GetObj('flower_r_txt');
	var aa = obj.getElementsByTagName('a');
	if(aa[0]) {
		aa[0].onmouseover = MouseOverLink;
		aa[0].onmouseout = MouseOutOfLink;
	}
}

function GetObj(name)
{
	if (document.getElementById) {
		return document.getElementById(name);
  	}
  	else if (document.all) {
        return  document.all[name];
  	}
}

// ================================================================================
// UTILITIES
// ================================================================================

// Hide dotted focus boxes in IE

function PreventFocusBoxes()
{
	var as = document.getElementsByTagName('a');
	if(!as) return;
	for(var i=0;i<as.length;i++)
	{
		as[i].onfocus = function() { this.hideFocus = true; }
	}
}

// ================================================================================

function shuffle_pics(max_pics) {
	var i, i2, pics_copy, pics_randomized;
	
	// Create a copy of the array containing the pics in sequential order
	pics_copy = new Array();
	for(i=0; i<pics.length; i++) {
		pics_copy[i] = pics[i];
	}
	
	// Create a new array to contain the pics in random order
	pics_randomized = new Array();
	
	do {
		// Pick a random thumb from those that remain
		i = Math.floor(Math.random()*pics_copy.length);
		
		// Add the thumb to the end of the randomized array
		pics_randomized[ pics_randomized.length ] = pics_copy[i];
		
		// Remove the thumb from the sequential array,
		// so it cannot be chosen again
		for(i2 = i + 1; i2 < pics_copy.length; i2++) {
			pics_copy[i2 - 1] = pics_copy[i2];
		}
		pics_copy.length--;
		
		// Keep going until we have removed all the pics
	} while(pics_copy.length && pics_randomized.length<max_pics);
	
	// Now set the pics to the randomized array
	pics = pics_randomized;
}
