/* www.liamski.co.uk/gmtoolbox */
var divobject;
var timer;
var usingIE = false;
var usingOpera = false;

window.onload = function initcheapfx() {	
	initautosearch();
	timer = false;
	if (navigator.userAgent.match("MSIE")){
		usingIE = true;
	}
	if (window.opera){
		usingOpera = true;
	}
	var elements = document.getElementsByTagName("h3");
	for (var i=0; i < elements.length; i++) {
		var div = document.getElementById("C" + elements[i].firstChild.title);
		div.style.height = 0;
		div.style.overflow = "hidden";
		div.display = "none";
		elements[i].onmousedown = toggle;
		elements[i].onmouseover = high;
		elements[i].onmouseout = low;
		elements[i].divname = "C" + elements[i].firstChild.title;
	}
	var elements = document.getElementsByTagName("a");
	for (var i=0; i < elements.length; i++) {
		if (elements[i].title.match("gotop")){
			elements[i].onclick = scrollUp;
		}
		if (elements[i].title.match("expand")){
			elements[i].onclick = expandAll;
		}
	}
	var elements = document.getElementsByTagName("img");
	for (var i=0; i < elements.length; i++) {
		if (elements[i].id.match("DLL") || elements[i].id.match("Extensions")){
			elements[i].onclick = scrollto;
		}
	}
	var element = document.getElementById("search");
	element.focus();
}

function expandAll(){
	var elements = document.getElementsByTagName("div");
	for (var i=0; i < elements.length; i++) {
		if (elements[i].id !== "searchresults" && elements[i].id !== "header" && elements[i].id !== "searchcontainer" && elements[i].id !== "searcharea" && elements[i].id !== "searchinput"){
			elements[i].style.height = "auto";
			elements[i].display = "block";
			setOpacity(1, elements[i]);
		}
	}
	return false;
}

function collapseAll(){
	var elements = document.getElementsByTagName("h3");
	for (var i=0; i < elements.length; i++) {
		var div = document.getElementById("C" + elements[i].firstChild.title);
		div.style.height = 0;
		div.style.overflow = "hidden";
		div.display = "none";
		elements[i].onmousedown = toggle;
		elements[i].onmouseover = high;
		elements[i].onmouseout = low;
		elements[i].divname = "C" + elements[i].firstChild.title;
	}
}


function navscroll(){
	divobject = document.getElementById(this.divname);
	var elementY = document.getElementById("L"+this.className).offsetTop;
	scrollDown(elementY-20);
	var normalheight = divGetFullHeight(divobject);
	expandBox(0,normalheight,0);
	return false;
}

function scrollto(){
	var elementY = document.getElementById("L"+this.id).offsetTop;
	scrollDown(elementY-20);
	return false;
}

function high(){
	this.className = "h3High";
	this.firstChild.style.color = "#f23535";
}

function low(){
	this.className = "h3Low";
	this.firstChild.style.color = "#71b4aa";
}

function toggle(){
	if (timer == false){
		divobject = document.getElementById(this.divname);
		var normalheight = divGetFullHeight(divobject);
		if (divobject.display == "none"){
			expandBox(0,normalheight,0);
		}else{
			collapseBox(divobject.offsetHeight,normalheight,1);
		}
	}
}

function divGetFullHeight(div){
	var oldheight = div.offsetHeight;
	div.style.height = "auto";
	var normalheight = div.offsetHeight;
	div.style.height = oldheight + "px";
	return normalheight;
}

function expandBox(newheight,oldheight,opacity) {
	if (divobject.offsetHeight > oldheight){
		divobject.style.height = oldheight;
		divobject.display = "block";
		setOpacity(1, divobject);
		timer = false;
	}else{
		divobject.style.height = newheight + "px";
		setOpacity(opacity, divobject);
		newheight += 30;
		opacity += (1/oldheight)*30;
		timer = setTimeout("expandBox("+newheight+","+oldheight+","+opacity+")",1);
	}
}

function collapseBox(newheight,oldheight,opacity) {
	if (divobject.offsetHeight < 50){
		divobject.style.height = 0;
		divobject.display = "none";
		setOpacity(0, divobject);
		timer = false;
	}else{
		divobject.style.height = newheight + "px";
		setOpacity(opacity, divobject);
		newheight -= 30;
		opacity -= (1/oldheight)*30;
		timer = setTimeout("collapseBox("+newheight+","+oldheight+","+opacity+")",1);
	}
}

function setOpacity(opacity, obj) {
	if (!usingIE && !usingOpera){
		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()/25;
		window.scrollBy(0,-amount-1);
		setTimeout("scrollUp()",10);
	}
	return false;
}

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

function scrollBottom() {
	if (getScroll() < getDocHeight()-getWindowHeight()){
		var amount = ((getDocHeight()-getWindowHeight())-getScroll())/25;
		window.scrollBy(0,amount+1);
		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;
}