/* liamski.co.uk | javascript goodness */

var scrolling;

window.onload = function init() {
	initHandlers();
	var slogan = new Array();
	slogan[0] = "so edgy you could cut yourself";
	slogan[1] = "trying too hard to be trendy since '02";
	slogan[2] = "<em>not</em> actually a Russian";
	slogan[3] = "drop shadows not bombs";
	slogan[4] = "fresher than febreeze";
	slogan[5] = "I <em>can</em> believe it's not butter";
	slogan[6] = "flashier than a light house on crack";
	slogan[7] = "shinier than a penny soaked in cillit bang";
	slogan[8] = "jazz hands, jazz hands!";
	slogan[9] = "(web / graphic) (designer / developer)";
	slogan[10] = "10x more bite than Jeremy Kyle, FACT";
	slogan[11] = "only one mode: awesome";
	var i = Math.round((slogan.length-1)*Math.random())
	document.getElementById("HeaderSlogan").innerHTML = slogan[i];
}

function initHandlers(){
	var elements = document.getElementsByTagName("a");
	for (var i=0; i < elements.length; i++) {
		if (!elements[i].name.match("slimbox") && !elements[i].name.match("regular")) {
			if (elements[i].name) {
				elements[i].onclick = showContent;
				elements[i].onmouseover = mouseOver;
				elements[i].onmouseout = mouseOut;
			}
			if (elements[i].rel) {
				elements[i].onmouseover = mouseOver;
				elements[i].onmouseout = mouseOut;
				elements[i].style.borderBottom = "0";
				setOpacity(0.7, elements[i]);
			}
		}else{
			//elements[i].style.borderBottom = "0";
		}
		if (elements[i].href.match("#c_contact") || elements[i].href.match("#c_recognition")) {
			elements[i].onclick = scrollBottom;
		}
	}
	elements = document.getElementsByTagName("img");
	for (var i=0; i < elements.length; i++) {
		if (elements[i].className == "Arrow") {
			elements[i].onclick = scrollUp;
			elements[i].onmouseover = mouseOver;
			elements[i].onmouseout = mouseOut;
			elements[i].style.cursor = "pointer";
			elements[i].title = "go to top";
			setOpacity(0.7, elements[i]);
		}
		if (elements[i].alt && elements[i].title && !this.className) {
			elements[i].onmouseover = mouseOver;
			elements[i].onmouseout = mouseOut;
			setOpacity(0.7, elements[i]);
			elements[i].style.borderBottom = "0";
		}else if (elements[i].alt) {
			setOpacity(1, elements[i]);
		}
	}
	elements = document.getElementsByTagName("div");
	for (var i=0; i < elements.length; i++) {
		if (elements[i].className.match("GalleryBox")) {
			elements[i].onmouseover = mouseOver;
			elements[i].onmouseout = mouseOut;
		}
	}
}

function mouseOver() {
	if (this.className == "GalleryBox"){
		this.style.background = "#9B2020";
	}else{
		if (this.rel) {
			setOpacity(1, this);
		}
		if (this.className == "Arrow") {
			setOpacity(1, this);
			cursor = "hand";
		}
		if (this.alt && this.title && !this.className) {
			setOpacity(1, this);
			var elements = document.getElementsByTagName("a");
			for (var i=0; i < elements.length; i++) {
				if (elements[i].name == this.alt && !elements[i].firstChild.alt) {
					elements[i].id = "Hover";
				}
			}
		}
		if (this.name) {
			var elements = document.getElementsByTagName("img");
			for (var i=0; i < elements.length; i++) {
				if (elements[i].alt.match(this.name) && elements[i].title) {
					setOpacity(1, elements[i]);
				}
			}
		}
	}
}

function mouseOut() {
	if (this.className == "GalleryBox"){
		this.style.background = "#AC2424";
	}else{
		if (this.rel) {
			setOpacity(0.7, this);
		}
		if (this.className == "Arrow") {
			setOpacity(0.7, this);
			cursor = "";
		}
		if (this.alt && this.title && !this.className) {
			setOpacity(1, this);
			var elements = document.getElementsByTagName("a");
			for (var i=0; i < elements.length; i++) {
				if (elements[i].name == this.alt && !elements[i].firstChild.alt) {
					elements[i].id = "NoHover";
				}
			}
		}
		if (this.name) {
			var elements = document.getElementsByTagName("img");
			for (var i=0; i < elements.length; i++) {
				if (elements[i].alt.match(this.name) && elements[i].title) {
					setOpacity(0.7, elements[i]);
				}
			}
		}
	}
}

function showContent() {
	var elements = document.getElementsByTagName("div");
	for (var i=0; i < elements.length; i++) {
		if (elements[i].className == "ContentBox") {
			if (!elements[i].id.match("c_about") && !elements[i].id.match("c_contact")) {
				elements[i].style.borderColor = "#BE2929";
				elements[i].style.borderWidth = "1px";
				elements[i].style.background = "#B12525"
			}
		}
	}
	document.getElementById("c_"+this.name).style.borderColor = "#A32222";
	document.getElementById("c_"+this.name).style.borderWidth = "5px 1px 1px 1px";
	document.getElementById("c_"+this.name).style.background = "#B12525 url(images/layout/dark.gif) repeat-x bottom"
	var elementY = document.getElementById("c_"+this.name).offsetTop;
	clearTimeout(scrolling);
	scrollDown(elementY-30);
	return false;
}

function setOpacity(opacity, obj) {
	obj.style.KHTMLOpacity = opacity;
	obj.style.MozOpacity = opacity;
	obj.style.opacity = opacity;
	opacity *= 100;
	opacity = (opacity == 100)?99.999:opacity;
	obj.style.filter = "alpha(opacity:"+opacity+")";
}

function scrollUp() {
	if (!getScroll() <= 0){
		var amount = getScroll()/20;
		window.scrollBy(0,-amount-1);
		scrolling = setTimeout("scrollUp()",10);
	}
	return false;
}

function scrollDown(elementY) {
	if (getScroll() < elementY && getScroll() < getDocHeight()-getWindowHeight()){
		var amount = (elementY-getScroll())/20;
		window.scrollBy(0,amount+1);
		scrolling = setTimeout("scrollDown("+elementY+")",10);
	}
	return false;
}

function scrollBottom() {
	if (getScroll() < getDocHeight()-getWindowHeight()-200){
		var amount = ((getDocHeight()-getWindowHeight()-200)-getScroll())/20;
		window.scrollBy(0,amount+1);
		scrolling = setTimeout("scrollBottom()",10);
	}
	return false;
}

function getScroll() {
	var scrollY = 0;
	if(typeof(window.pageYOffset) == "number") {
		scrollY = window.pageYOffset;
	}else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		scrollY = document.body.scrollTop;
	}else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		scrollY = document.documentElement.scrollTop;
	}
	return scrollY;
}

function getDocHeight() {
	var docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
	return docHeight;
}

function getWindowHeight() {
	var windowHeight;
	if(typeof(window.innerWidth) == 'number') {
		windowHeight = window.innerHeight;
	}else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		windowHeight = document.documentElement.clientHeight;
	}else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
		windowHeight = document.body.clientHeight;
	}
	return windowHeight;
}