/*
Author: mg12
Update: 2008/11/13
Author URI: http://www.neoease.com/
changes by Xu.hel
*/
// <a href="#" onclick="goTop();return false;">Go Top</a>
(function(){
function $(id){
	return document.getElementById(id);
}
function setStyleDisplay(id, status){
	$(id).style.display = status;
}
function goTop(acceleration, time){
	acceleration = acceleration || 0.1;
	time = time || 16;
	var dx = 0;
	var dy = 0;
	var bx = 0;
	var by = 0;
	var wx = 0;
	var wy = 0;
	if (document.documentElement){
		dx = document.documentElement.scrollLeft || 0;
		dy = document.documentElement.scrollTop || 0;
	}
	if (document.body){
		bx = document.body.scrollLeft || 0;
		by = document.body.scrollTop || 0;
	}
	var wx = window.scrollX || 0;
	var wy = window.scrollY || 0;
	var x = Math.max(wx, Math.max(bx, dx));
	var y = Math.max(wy, Math.max(by, dy));
	var speed = 1 + acceleration;
	window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
	if(x > 0 || y > 0){
		var invokeFunction = "Studio.goTop(" + acceleration + ", " + time + ")"
		window.setTimeout(invokeFunction, time);
	}
}
function switchTab(showPanels, hidePanels, activeTab, activeClass, fadeTab, fadeClass){
	$(activeTab).className = activeClass;
	$(fadeTab).className = fadeClass;
	var panel, panelList;
	panelList = showPanels.split(',');
	for (var i = 0; i < panelList.length; i++){
		var panel = panelList[i];
		if ($(panel)){
			setStyleDisplay(panel, 'block');
		}
	}
	panelList = hidePanels.split(',');
	for (var i = 0; i < panelList.length; i++){
		panel = panelList[i];
		if ($(panel)){
			setStyleDisplay(panel, 'none');
		}
	}
}
function loadCommentShortcut(){
	$('comment').onkeydown = function(moz_ev){
		var ev = null;
		if (window.event){
			ev = window.event;
		} else {
			ev = moz_ev;
		}
		if (ev != null && ev.ctrlKey && ev.keyCode == 13){
			$('submit').click();
		}
	}
}
function getElementsByClassName(className, tag, parent){
	parent = parent || document;
	var allTags = (tag == '*' && parent.all) ? parent.all : parent.getElementsByTagName(tag);
	var matchingElements = new Array();
	className = className.replace(/\-/g, '\\-');
	var regex = new RegExp('(^|\\s)' + className + '(\\s|$)');
	var element;
	for (var i = 0; i < allTags.length; i++){
		element = allTags[i];
		if (regex.test(element.className)){
			matchingElements.push(element);
		}
	}
	return matchingElements;
}
window['JStudio'] = {};
window['JStudio']['$'] = $;
window['JStudio']['setStyleDisplay'] = setStyleDisplay;
window['JStudio']['goTop'] = goTop;
window['JStudio']['switchTab'] = switchTab;
window['JStudio']['loadCommentShortcut'] = loadCommentShortcut;
window['JStudio']['getElementsByClassName'] = getElementsByClassName;
})();