﻿/*
####################################################################################################
# Default JavaScript (Common Function Libraries)
# JavaScript coding: curious epicurean; vincent.
# Copyright (c) 2007 Art Studio Vincent All rights reserved.
####################################################################################################
*/

// box height synchronized
var agent = navigator.userAgent.toLowerCase();
var ns = ((agent.indexOf('netscape') != -1) && (agent.indexOf('firefox') == -1));
var maxHeight = null;
function syncBoxHeight() {
	if (document.getElementById) {	
		var args = syncBoxHeight.arguments;
		// get max-height
		for (var i=0; i<args.length; i++) {
			var objNode = document.getElementById(args[i]);
			if (objNode && objNode.offsetHeight > maxHeight) {
				maxHeight = objNode.offsetHeight;
			}
			//alert('#'+objNode.id+'.offsetHeight: '+objNode.offsetHeight+' px;');
		}
		// height synchronized
		for(var i=0; i<args.length; i++) {
			var objNode = document.getElementById(args[i]);
			if (objNode) {
				objNode.style.height = maxHeight+'px';
			}
			//alert('#'+objNode.id+'.style.height: '+objNode.style.height);
		}
		return true;
	}
	return false;
}


/* ################################################## */

// user-defined object check
// NS4=1, IE4=2, IE5+=3, NS6=4, others=0
var checkObj = document.all?(document.getElementById?3:2):(document.getElementById?4:(document.layers?1:0));

function getWindowXOffset() {
	if (checkObj == 2 || checkObj == 3) {
		return document.body.scrollLeft;
	} else if (checkObj == 1 || checkObj == 4) {
		return window.pageXOffset;
	} else {
		return 0;
	}
}

function getWindowYOffset() {
	if (checkObj == 2 || checkObj == 3) {
		return document.body.scrollTop;
	} else if (checkObj == 1 || checkObj == 4) {
		return window.pageYOffset;
	} else {
		return 0;
	}
}

// Page Scroller
var pageScrollTimer;
function pageScroll(toX,toY,frms,cuX,cuY) {
	if (pageScrollTimer) clearTimeout(pageScrollTimer);
	if (!toX || toX < 0) toX = 0;
	if (!toY || toY < 0) toY = 0;
	if (!cuX) cuX = 0 + getWindowXOffset();
	if (!cuY) cuY = 0 + getWindowYOffset();
	if (!frms) frms = 6;

	cuX += (toX - getWindowXOffset()) / frms;
	if (cuX < 0) cuX = 0;
	cuY += (toY - getWindowYOffset()) / frms;
	if (cuY < 0) cuY = 0;
	posX = Math.floor(cuX);
	posY = Math.floor(cuY);
	window.scrollTo(posX, posY);
	if (posY < 1) {
		window.scroll(0,0);
	} else if (posX != toX || posY != toY) {
		pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+cuX+","+cuY+")",16);
	} else {
		clearTimeout(pageScrollTimer);
	}
}

function toAnchor(idName) {
	if (checkObj == 1 || checkObj == 2 || checkObj == 3 || checkObj == 4) {
		if (!!idName) {
			anchorX = 0;
			anchorY = getTagTop(idName);
			mouseX = getWindowXOffset();
			mouseY = getWindowYOffset();
			endY = endPositionY();
			if (anchorY < 1) {
				location.hash = idName;
			} else if (anchorY > endY) {
				pageScroll(anchorX,endY,6,mouseX,mouseY);
			} else {
				pageScroll(anchorX,anchorY,6,mouseX,mouseY);
			}
		} else {
			pageScroll(0,0,6);
		}
	} else {
		if (!!idName) {
			location.hash = idName;
		} else {
			location.hash = "top";
		}
	}
}

/* ################################################## */
