var DHTML = new DHTML()

function DHTML() {
	this.preloadedImages = new Array()

	this.getObj = DHTML_getObj
	this.show = DHTML_show
	this.hide = DHTML_hide
	this.visibility = DHTML_visibility
	this.isVisible = DHTML_isVisible
	this.preloadImage = DHTML_preloadImage

	this.imgSwapOver = DHTML_imgSwapOver
	this.imgSwapOut = DHTML_imgSwapOut
	this.getImageName = DHTML_getImageName
	this.getFileEextension = DHTML_getFileEextension
	this.setEnabled = DHTML_setEnabled
	this.changeImageState = DHTML_changeImageState

	this.getCookie = DHTML_getCookie
	this.setCookie = DHTML_setCookie

	this.getQSVar = DHTML_getQSVar
}

function DHTML_getObj(obj) {

	if (typeof(obj) != "object") {
		return document.getElementById(obj)
	} else {
		return obj
	}
}

function DHTML_show(obj) {

	this.getObj(obj).style.visibility = 'visible';
}

function DHTML_hide(obj) {

	this.getObj(obj).style.visibility = 'hidden';
}

function DHTML_isVisible(obj) {

	return (this.getObj(obj).style.visibility == 'visible');
}

function DHTML_visibility(obj, value) {

	if (value) {
		this.show(obj)
	} else {
		this.hide(obj)
	}
}

function DHTML_preloadImage(imgSrc) {
	window.status = "Preloading image "+ imgSrc
	this.preloadedImages[imgSrc] = new Image()
	this.preloadedImages[imgSrc].src = imgSrc
	window.status = ""
}

function DHTML_imgSwapOver(obj) {

	obj = this.getObj(obj)
	if (!obj.disabled && !obj.parentElement.disabled) {
		this.changeImageState(obj, "_over")
	}
}

function DHTML_imgSwapOut(obj) {

	obj = this.getObj(obj)
	if (!obj.disabled && !obj.parentElement.disabled) {
		this.changeImageState(obj, "")
	}
}

function DHTML_getImageName(obj) {

	var fileName = obj.src
	var i = fileName.lastIndexOf('_over.')
	if (i > -1) return fileName.substring(0, i)

	var i = fileName.lastIndexOf('_disabled.')
	if (i > -1) return fileName.substring(0, i)

	var i = fileName.lastIndexOf('.')
	if (i > -1) return fileName.substring(0, i)
	return "ERROR"
}

function DHTML_changeImageState(obj, newState) {
	obj = this.getObj(obj)
	obj.src = this.getImageName(obj) + newState +"."+ this.getFileEextension(obj)
}

function DHTML_getFileEextension(obj) {

	var i = obj.src.lastIndexOf('.')
	return obj.src.substring(i + 1);
}

function DHTML_setEnabled(obj, val) {
	obj = this.getObj(obj)
	obj.disabled = !val
	obj.parentElement.disabled = !val

	var fileName = this.getImageName(obj)
	if (!val) fileName += "_disabled"
	obj.src = fileName +"."+ this.getFileEextension(obj)
}

function DHTML_getCookie(nameOfCookie) {

	if (document.cookie.length > 0) {
		var begin = document.cookie.indexOf(nameOfCookie + "=");
		if (begin != -1) {
			begin += nameOfCookie.length + 1;
			var end = document.cookie.indexOf(";", begin);
			if (end == -1) end = document.cookie.length;
			return unescape(document.cookie.substring(begin, end));
		}
	}
	return null;
}

function DHTML_setCookie(nameOfCookie, value, expiredays) {

	var expireDate = new Date ();
	expireDate.setTime(expireDate.getTime() + (expiredays * 24 * 3600 * 1000));
	a = nameOfCookie + "=" + escape(value) + ((expiredays == null) ? "; path=/" : "; path=/; expires=" + expireDate.toGMTString());
	document.cookie = nameOfCookie + "=" + escape(value) + ((expiredays == null) ? "; path=/" : "; path=/; expires=" + expireDate.toGMTString());
}

function DHTML_getQSVar(key) {

	var qs = unescape(location.search)
	var start = qs.indexOf(key)
	if (start > -1) {
		start = qs.indexOf('=', start) + 1
		var end = qs.indexOf("&", start)
		if (end == -1) end = qs.length

		return qs.substring(start, end)
	}
	return null;
}
