// JavaScript Document

function BrowserDetectXLite() {
	var ua = navigator.userAgent.toLowerCase(); 
	this.ua = ua;

	// browser name
	this.isIE        = ( (ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) ); 
	this.isSafari      = (ua.indexOf('safari') != - 1);

	// browser version
	this.versionMinor = parseFloat(navigator.appVersion); 
	
	// correct version number for IE4+ 
	if (this.isIE && this.versionMinor >= 4) {
		this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
	}
	
	this.isOpera = (navigator.userAgent.indexOf('Opera') != -1)
			
	this.versionMajor = parseInt(this.versionMinor); 
	
	// platform
	this.isWin   = (ua.indexOf('win') != -1);
	this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1) );
	this.isMac   = (ua.indexOf('mac') != -1);

	this.isIE4x = (this.isIE && this.versionMajor == 4);
	this.isIE4up = (this.isIE && this.versionMajor >= 4);
	this.isIE5x = (this.isIE && this.versionMajor == 5);
	this.isIE55 = (this.isIE && this.versionMinor == 5.5);
	this.isIE5up = (this.isIE && this.versionMajor >= 5);
	this.isIE6x = (this.isIE && this.versionMajor == 6);
	this.isIE6up = (this.isIE && this.versionMajor >= 6);
	
	this.isIE4xMac = (this.isIE4x && this.isMac);
}
var browser = new BrowserDetectXLite();

function browserCheck() {
	if (navigator.appVersion.indexOf('AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3') != -1) {
		var redirect = confirm('To view this site properly, please upgrade to the latest version of Safari by clicking ok');
		
		if (redirect == true) {
			//window.location.href="http://www.apple.com/safari/";
			window.open('http://www.apple.com/safari/','browserupdate');
		}
	}
}

//alert(navigator.appVersion);
//alert(navigator.buildID);
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function swapImage(that,downstateSrc,src,target_id,client_id) {
	
	var client_item_id = document.getElementById(client_id);
	
	resetThumbnails(client_item_id);
	
	that.src = downstateSrc;

	var target = document.getElementById(target_id);
	
	if (target) {
	
		target.src = src;
	}	
}

function resetThumbnails(id) {
	var thumbnails = getElementsByClassName('thumbnail','img',id);
	
	for(var i=0; i<thumbnails.length; i++) {
		thumbnails[i].src = thumbnails[i].alt;
	}
}

function getElementsByClassName(className, tag, elm){
	// function copyright by http://www.robertnyman.com
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function rollover(that,src) {
	that.src = src;	
}

function getOffset(id) {
	var client_item = document.getElementById(id);
	
	if (client_item) {
		
		var offset = client_item.offsetLeft - client_item.offsetLeft - client_item.offsetLeft;
		
		return offset;	
	}
	else return false;
}

function jump(hash) {
	//var offset = getOffset(client_item);
	//var container = document.getElementById('wide_container');

	var location = processHash(hash);
	
	
	
	window.location.href = location;
	if (browser.isOpera || navigator.appVersion.indexOf('AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3') != -1 ) window.location.reload();
	//container.style.left = offset + 'px';
	//return offset;
}

function slide(direction) {
	
	    
	var hash = document.location.hash; // horizontal and vertical scroll increments

	var location = processHash(hash,direction);
	window.location.href = location;
	//if (browser.isOpera && direction == 'left') window.location.reload();
	if (browser.isOpera && direction == 'left' ) window.location.reload();


	//return true;
	
	/*
	var container = document.getElementById('wide_container');
	var endOffset = getOffset('end_of_container');
	
	if (direction == 'right') var value = -906;	
	else var value = 906;
	
	var offset_start = container.offsetLeft;
	var offset_end = container.offsetLeft + value;
	       	
	var offset = offset_start;
	var i = 0;
	var finished = false;
	//alert(offset_start);
	
	//alert('target is ' + offset_end + 'end is ' + endOffset);
	
	while (offset != offset_end && finished == false) {
		
		i = i + 5;
		
		if (offset_end > offset_start) {
			offset = offset + i;
			if (offset > offset_end) offset = offset_end;
		}
		else {
			offset = offset - i;
			if (offset < offset_end) offset = offset_end;
		}
		
		if (offset > 0) {
			offset = 0;
			finished = true;
		}
		
		if (offset < endOffset) {
			offset = offset_start;
			finished = true;
			
		}
		
		//alert (offset);
		//container.style.left = offset + 'px';
		//alert(offset);
	}
	*/
	 
}

function processHash(hash,direction) {
 
 if (direction == 'right') {

	 switch(hash)
	 {
	  	case "#clients":
			 return "#altontowers";
			 break;
	  	case "#altontowers":
			 return "#booktokens";
			 break;
	  	case "#booktokens":
			 return "#carlsberg";
			 break;
	  	case "#carlsberg":
			 return "#londoneye";
			 break;
	  	case "#londoneye":
			 return "#techguys";
			 break;
	  	case "#techguys":
			 return "#pcworld";
			 break;
	  	case "#pcworld":
			 return "#nestle";
			 break;
	  	case "#nestle":
			 return "#merlin";
			 break;
	  	case "#merlin":
			 return "#woburn";
			 break;
	  	case "#woburn":
			 return "#cts";
			 break;
	  	case "#cts":
			 return "#cts";
			 break;
	  	default:
			 return "#altontowers";
	 }
 }
 else {
	 if (direction == 'left') {
		 switch(hash)
		 {
	  	case "#cts":
			 return "#woburn";
			 break;
	  	case "#woburn":
			 return "#merlin";
			 break;
	  	case "#merlin":
			 return "#nestle";
			 break;
	  	case "#nestle":
			 return "#pcworld";
			 break;
	  	case "#pcworld":
			 return "#techguys";
			 break;
	  	case "#techguys":
			 return "#londoneye";
			 break;
	  	case "#londoneye":
			 return "#carlsberg";
			 break;
	  	case "#carlsberg":
			 return "#booktokens";
			 break;
	  	case "#booktokens":
			 return "#altontowers";
			 break;
	  	case "#altontowers":
			 return "#clients";
			 break;
	  	case "#clients":
			 return "#clients";
			 break;
	  	default:
			 return "#woburn";
		 }
	 }
 }
 if (typeof(direction) == 'undefined') {
	return '#' + hash; 
 }
}
