
var sc;

function allDigits(str) {
	return /^\d*$/.test(str);
}


function changeStyle(title) {
	var lnks = document.getElementsByTagName('link');
	for (var i = lnks.length - 1; i >= 0; i--) {
		if (lnks[i].getAttribute('rel').indexOf('style')> -1 && lnks[i].getAttribute('title')) {
			lnks[i].disabled = true;
			if (lnks[i].getAttribute('title') == title) lnks[i].disabled = false;
		}
	}
	return;
} 


function getTarget(e) {
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	return targ;
}



function ClassSearch() {
	var cs = this;
	cs.currentClassList = new Array();
	var classSearchRecursive = function(pTag, cn) {
		var tag;
		for (tag = pTag.firstChild; tag != undefined; tag = tag.nextSibling) {
			if (tag.className && tag.className.indexOf(cn) > -1) cs.currentClassList.push(tag);
			classSearchRecursive(tag, cn);
		}

		return;
	};
	this.classSearch = function(pTag, className) {
		cs.currentClassList = new Array();
		classSearchRecursive(pTag, className);
		return cs.currentClassList;
	}
}

function centerTag(classname, hoffs, voffs, hor, ver) {
	var cs = new ClassSearch();
	
	var tag_list = cs.classSearch(document.body, classname);

	var itr;
	for (itr = 0; itr < tag_list.length; itr++) {
	
		if (hor) {
			var cw = tag_list[itr].clientWidth;
			tag_list[itr].style.marginLeft = "-" + ((cw / 2) + hoffs).toString() + "px";
		}
		if (ver) {
			var ch = tag_list[itr].clientHeight;
			tag_list[itr].style.marginTop = "-" + ((ch / 2) + voffs).toString() + "px";
		}
	}

	return;
}

function unsetHoverOn(evt) {
	var targ = getTarget(evt);	

	var tagclass = targ.className;

	var num = 0;

	var ind = 0;
	while (ind < 25 && !allDigits(tagclass.slice(ind, ind + 1))) ind++;

	if (ind < 25) num = tagclass.slice(ind, ind + 1);

	var cs = new ClassSearch();
	
	var tag_list = cs.classSearch(document.body, "hoveron" + num);

	var itr;
	for (itr = 0; itr < tag_list.length; itr++) {
		tag_list[itr].style.display = "";
	}	


	if (targ.detachEvent) {
		targ.detachEvent("onmouseover", unsetHoverOn);
	}
	else if (targ.removeEventListener) {
		targ.removeEventListener("mouseover", unsetHoverOn, false);
	}

	return;
}

function setHoverOn(evt) {
	var targ = getTarget(evt);	

	var tagclass = targ.className;

	var num = 0;

	var ind = 0;
	while (ind < 25 && !allDigits(tagclass.slice(ind, ind + 1))) ind++;

	if (ind < 25) num = tagclass.slice(ind, ind + 1);

	var cs = new ClassSearch();
	
	var tag_list = cs.classSearch(document.body, "hoveron" + num);

	var itr;
	for (itr = 0; itr < tag_list.length; itr++) {
		tag_list[itr].style.display = "block";
	}

	if (targ.attachEvent) {
		targ.attachEvent("onmouseout", unsetHoverOn);
	}
	else if (targ.addEventListener) {
		targ.addEventListener("mouseout", unsetHoverOn, false);
	}
	

	return;
}



function addEvent(classname, func) {
	var cs = new ClassSearch();
	
	var tag_list = cs.classSearch(document.body, classname);	

	var itr;
	for (itr = 0; itr < tag_list.length; itr++) {
		if (tag_list[itr].attachEvent) {
			tag_list[itr].attachEvent("onmouseover", func);
		}
		else if (tag_list[itr].addEventListener) {
			tag_list[itr].addEventListener("mouseover", func, false);
		}
	}


	return;
}


function Scroller() {

	var sc = this;

	var cs = new ClassSearch();
	sc.con_list = cs.classSearch(document.body, "page_content");

	cs = new ClassSearch();
	sc.dot_list = cs.classSearch(document.body, "scroll_dot");

	var scroll = function(quan) {
		var curp = parseInt(sc.con_list[0].style['backgroundPositionY'].replace("px",""));
		var curh = parseInt(sc.con_list[0].style['height'].replace("px",""));

		curp += quan;

		if (curp <= -1 * curh + 300) curp -= quan;
		if (curp > 0) curp -= quan;


		sc.con_list[0].style['backgroundPositionY'] = curp.toString() + 'px';

		var dotp = (curp * -234.0) / (curh - 300.0);
	
		sc.dot_list[0].style['top'] = dotp.toString() + 'px';			

		return;
	};



	this.scrollUp = function(evt) {
		scroll(25.0);

		return;
	};


	this.scrollDown = function(evt) {

		scroll(-25.0);

		return;
	};


	sc.ly = 0;

	var scrollMove = function(evt) {
		if (!evt) evt = window.event;
		var my = evt.clientY;
	
		var cy = (sc.ly - my);

		var curh = parseInt(sc.con_list[0].style['height'].replace("px",""));

		var quan = (cy * (curh - 300)) / 234.0;

		scroll(quan);

		sc.ly = my;

		return;
	};

	var scrollEnd = function(evt) {
		if (document.body.detachEvent) {
			document.body.detachEvent("onmousemove", scrollMove);
		}
		else if (document.body.removeEventListener) {
			document.body.removeEventListener("mousemove", scrollMove, false);
		}	

		if (document.body.detachEvent) {
			document.body.detachEvent("onmouseup", scrollEnd);
		}
		else if (document.body.removeEventListener) {
			document.body.removeEventListener("mouseup", scrollEnd, false);
		}
	

		return;
	};




	this.scrollLock = function(evt) {
		if (!evt) evt = window.event;

		sc.ly = evt.clientY;

		if (document.body.attachEvent) {
			document.body.attachEvent("onmousemove", scrollMove);
		}
		else if (document.body.addEventListener) {
			document.body.addEventListener("mousemove", scrollMove, false);
		}	

		if (document.body.attachEvent) {
			document.body.attachEvent("onmouseup", scrollEnd);
		}
		else if (document.body.addEventListener) {
			document.body.addEventListener("mouseup", scrollEnd, false);
		}

		return;
	};


	this.scrollWheel = function(evt) {
		if (!evt) evt = window.event;

		var delta;
		if (event.wheelDelta) delta = (event.wheelDelta / 120.0) * 25.0;
		if (event.detail) delta = (event.detail / -3.0) * 25.0;

		if (delta) scroll(delta);


		return;
	};

	return;
}





function onBodyLoad() {
	

	centerTag("background_top", 0, -130, 0, 1);
	centerTag("container", 0, 0, 1, 1);

	addEvent("line1", setHoverOn);
	addEvent("line2", setHoverOn);
	addEvent("line3", setHoverOn);
	addEvent("line4", setHoverOn);
	addEvent("line5", setHoverOn);
	addEvent("line6", setHoverOn);


	addEvent("dot1", setHoverOn);
	addEvent("dot2", setHoverOn);
	addEvent("dot3", setHoverOn);
	addEvent("dot4", setHoverOn);
	addEvent("dot5", setHoverOn);
	addEvent("dot6", setHoverOn);

	changeStyle('alt1');

/*

	var cs = new ClassSearch();
	var down_list = cs.classSearch(document.body, "scroll_down");



	sc = new Scroller();


	if (down_list[0].attachEvent) {
		down_list[0].attachEvent("onclick", sc.scrollDown);

	}
	else if (down_list[0].addEventListener) {
		down_list[0].addEventListener("click", sc.scrollDown, false);
	}	

	cs = new ClassSearch();
	var up_list = cs.classSearch(document.body, "scroll_up");

	if (up_list[0].attachEvent) {
		up_list[0].attachEvent("onclick", sc.scrollUp);
	}
	else if (up_list[0].addEventListener) {
		up_list[0].addEventListener("click", sc.scrollUp, false);
	}

	cs = new ClassSearch();
	var dot_list = cs.classSearch(document.body, "scroll_dot");

	if (dot_list[0].attachEvent) {
		dot_list[0].attachEvent("onmousedown", sc.scrollLock);
	}
	else if (dot_list[0].addEventListener) {
		dot_list[0].addEventListener("mousedown", sc.scrollLock, false);
	}

	cs = new ClassSearch();
	var con_list = cs.classSearch(document.body, "page_content");


	var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel";



	if (con_list[0].attachEvent) {
		con_list[0].attachEvent("on" + mousewheelevt, sc.scrollWheel);
	}
	else if (con_list[0].addEventListener) {
		con_list[0].addEventListener(mousewheelevt, sc.scrollWheel, false);
	}
*/

	return;
}
