// JavaScript Document


var gall = {
	
	imgs : [],
	currentIndex : 0,
	arrows : {next:'next_arrow', previous:'previous_arrow'},
	photoFadeOptions : {duration:1500},
	arrowFadeOptions : {duration:500},
	containerId: 'header_img',
	
	adjustIndex: function(amount){
		gall.currentIndex += amount;
		//gall.showArrows();
	},
	
	getImageByTitle: function(txt){
		var ret = false;
		for(var i=0; i<gall.imgs.length; i++){
			if(gall.imgs[i].title.test(txt, 'i') ){
				ret = i;
				//alert(gall.imgs[i].title + ' = ' + txt);
				break;
			}
		}
//		alert('returning ' + ret);
		return ret;
	},
	
	showImage: function(ev){
		var el = $(new Event(ev).target);
		var img = gall.getImageByTitle(el.get('text') );
		if(img === false) return;
		gall.gotoImage(img);
	},
	
	gotoImage: function(index){
		if(index == gall.currentIndex) return;
		var oldImg = gall.imgs[gall.currentIndex];
		var newIndex = index;
		var newImg = gall.imgs[newIndex];
		try{oldImg.tween('opacity', 0);}catch(e){
			oldImg.setStyle('visibility', 'hidden');
			}
		try{newImg.tween('opacity', 1);}catch(e){
			newImg.setStyle('visibility', 'visible');
			}
		gall.hideArrows();
		gall.currentIndex = index;
		gall.adjustIndex(0);
	},
		
	gotoNext: function(){
		var oldImg = gall.imgs[gall.currentIndex];
		var newIndex = gall.currentIndex + 1;
		if(newIndex >= gall.imgs.length) newIndex = 0;
		var newImg = gall.imgs[newIndex];
		try{oldImg.fade('out');}catch(e){}
		try{newImg.fade('in');}catch(e){}
		gall.hideArrows();
		gall.adjustIndex(1);
	},
	
	gotoPrevious: function(){
		var oldImg = gall.imgs[gall.currentIndex];
		var newIndex = gall.currentIndex - 1;
		if(newIndex < 0) newIndex = gall.imgs.length - 1;
		var newImg = gall.imgs[newIndex];
		try{oldImg.fade('out');}catch(e){}
		try{newImg.fade('in');}catch(e){}
		gall.hideArrows();
		
		gall.adjustIndex(-1);
	},
	
	showArrows: function(){
		if(gall.currentIndex < gall.imgs.length - 1){
			try{
				gall.arrows.next.fade('in');
			}catch(e){
				gall.arrows.next.setStyle('visibility', 'visible');
			}
		}
		if(gall.currentIndex > 0){
			try{
				gall.arrows.previous.fade('in');
			}catch(e){
				gall.arrows.previous.setStyle('visibility', 'visible');
			}
		}
	},
	
	hideArrows: function(){
		try{
			gall.arrows.previous.fade('out');
		}catch(e){
			gall.arrows.previous.setStyle('visibility', 'hidden');
		}
		try{
			gall.arrows.next.fade('out');
		}catch(e){
			gall.arrows.next.setStyle('visibility', 'hidden');
		}
	},
	
	init: function(){
		//get pics
		$$('#' + gall.containerId + ' img').each(function(img, i){
			gall.imgs.push(img);
			if(i != 0){
				try{
					img.setOpacity(0);
				}catch(e){
					img.setStyle('visibility', 'hidden');
				}
			}
			img.set('fade', gall.photoFadeOptions);
		});
		//get arrows
		for(prop in gall.arrows){
			gall.arrows[prop] = $(gall.arrows[prop]);
			gall.arrows[prop].set('fade', gall.arrowFadeOptions);
			gall.arrows[prop].setStyles({'cursor':'pointer'});
		}
		gall.hideArrows();
		gall.arrows.next.addEvent('click', gall.gotoNext);
		gall.arrows.previous.addEvent('click', gall.gotoPrevious);
		var container = $(gall.containerId);
		//container.addEvent('mouseenter', gall.showArrows);
		container.addEvent('mouseleave', gall.hideArrows);
		$('header_img').getElement('ul').addEvent('mouseover', gall.showImage);
	}
}
window.addEvent('domready', function(){
	// IE bug fix								 
	$$('#header_img img').each(function(img){img.setStyles({'height':280,'width':610, 'position':'absolute', 'display':'block'}); });
	gall.init();
	randomImg.init();
 });

var randomImg = {
	
	init: function(){
		if(Browser.Engine.trident && Browser.Engine.version < 5) return;
		var valuesImgs = $$('#homepage_values_box img');
		var valuesText = $('homepage_values_box').getElement('p');
		var caseImgs = $$('#homepage_case_studies_box img');
		var caseText = $('homepage_case_studies_box').getElement('p');
		valuesImgs.each(function(img){ img.setStyle('display', 'none'); });
		caseImgs.each(function(img){ img.setStyle('display', 'none'); });
		vImg = valuesImgs.getRandom()
		vImg.setStyle('display', 'block');
		valuesText.set('text', vImg.title);
		caseImg = caseImgs.getRandom()
		caseImg.setStyle('display', 'block');
		caseText.set('text', caseImg.title);
	}
}
/*
 * Function to initialise the menu by setting the class of all li's to empty.
 */
function initialiseMenu() {
	var menuLevel1 = document.getElementById("menuLevel1");
	if (menuLevel1 == null)
		return;
	var liTags = menuLevel1.getElementsByTagName("li");
	if (liTags != null) {
		for (var i = 0; i < liTags.length; i++) {
			if (liTags[i].getAttribute("class") == "selected")
				liTags[i].setAttribute("class", "");
		}
	}
}

/*
 * Extracts the menu id from the uri and then hilights the menu item.
 */
function selectMenuItem(menuItemId) {
	initialiseMenu();
	if (menuItemId == null)
		return;
	var menuItem = document.getElementById(menuItemId);
	if (menuItem != null)
		menuItem.className = "selected";
}

/*
 * Find the parent menu tag
 */
function findParentLi(obj) {
    var testObj = obj.parentNode;
    while(testObj != null && testObj.nodeName.toLowerCase() != "li") {
        testObj = testObj.parentNode;
    }
    return testObj;
}
