var SCHEME_PREFIX = 'css/nbt.';
var SCHEME_SUFFIX = '.css';

function $(id) {
	var element = document.getElementById(id);
	if (element) {
		if (!element.show) {
			element.show = function () {
				this.style.visibility = 'visible';
				this.style.display = 'block';
			}
			
			element.hide = function () {
				this.style.visibility = 'hidden';
				this.style.display = 'none';
			}
			
			element.offset = function () {
				var left=0;
				var top=0;
				var obj = this;
				if (this.offsetParent) {
					while (obj) {
						left += obj.offsetLeft;
						top += obj.offsetTop;
						obj=obj.offsetParent;
					}
				}
				this.xOffset = left;
				this.yOffset = top;
			}
			
			element.vScrollTo = function (a) {
				var obj = $(a);
				if (obj) {
					this.offset();
					obj.offset();
					this.scrollTop = obj.yOffset-this.yOffset;
				}
			}
			
			element.vScrollToMiddle = function (a) {
				var obj = $(a);
				if (obj) {
					this.offset();
					obj.offset();
					this.scrollTop = obj.yOffset-this.yOffset-Math.floor((this.clientHeight+obj.clientHeight)/2);
				}
			}
			
			element.hScrollTo = function (a) {
				var obj = $(a);
				if (obj) {
					this.offset();
					obj.offset();
					this.scrollLeft = obj.xOffset-this.xOffset;
				}
			}
		}
	}
	return element;
}

var tab = {
	id: new Array(),
	
	register: function (prefix, new_id) {
		this.id[prefix] = new_id;
	},
	
	show: function (prefix, new_id) {
		var obj;
		$(prefix+this.id[prefix]).hide(); 
		obj = $(this.id[prefix]);
		if (obj && obj.stopPlayback) obj.stopPlayback();
		
		this.id[prefix] = new_id;
		$(prefix+this.id[prefix]).show(); 
		obj = $(this.id[prefix]);
		if (obj && obj.showControls) obj.showControls();
	}
}

var video = {
	id: -1,
	
	playback: function(new_id) {
		if (this.id > 0) {
			var obj = $(this.id);
			if (obj) {
				if (obj.stopPlayback) {
					obj.stopPlayback();
				} else {
					var embed = obj.getElementsByTagName('embed');
					if (embed[0].stopPlayback) embed[0].stopPlayback();
				}
			}
		}
		this.id = new_id;
	},
	
	stop: function(new_id) {
		if (this.id == new_id) {
			this.id = -1;
		}
	}
}

var scheme = {
	apply: function (obj, id) {
		while (obj.parentNode) {
			obj = obj.parentNode;
			if (obj.className) {
				document.cookie='design='+obj.className;
				$(id).href = SCHEME_PREFIX+obj.className+SCHEME_SUFFIX;
				break;
			}
		}
	}
}

function getCSSRules(s) {
	if (document.styleSheets[s].cssRules) {
		return document.styleSheets[s].cssRules;
	} else if (document.styleSheets[s].rules) {
		return document.styleSheets[s].rules;	
	}
	return new Array();
}

function toggleClass(className) {
	var state='';
	for (var s=0; s<document.styleSheets.length; s++) { 
		var theRules = getCSSRules(s);
		for (var r=0; r<theRules.length; r++) { 
			if (theRules[r].selectorText == className) { 
				if (theRules[r].style.display == 'none') {
					theRules[r].style.visibility = 'visible';
					theRules[r].style.display = 'block';
					state = 'visible';
				}  else{
					theRules[r].style.visibility = 'hidden';
					theRules[r].style.display = 'none';
					state = 'hidden';
				}
			}
		}
	}
	return state;
}


function mouseOver(e) {
    if (e) {
		e.oldClassName=e.className;
		e.className+='-over';
	}
}

function mouseOut(e) {
    if (e && e.oldClassName) e.className=e.oldClassName;
}

var mouseClick_CLICKED = false;
function mouseClick(e, event) {
	var i;
	if (mouseClick_CLICKED) return;
	mouseClick_CLICKED = true;
	setTimeout('mouseClick_CLICKED = false;', 300);

	if (e && e.hasChildNodes) {
		var a = e.getElementsByTagName('a');
		if (a.length > 0) document.location=a[0].href;
	}
}

