// JavaScript Document

function trace (output) {
	msgbox = document.getElementById('debugMessage');
	msgbox.innerHTML += '<br />&gt;&nbsp;'+output;
	msgbox.style.display = 'block';
}
function getChildElements (element, tagName, className) {
	var output = [];
	if (tagName != null) {
		tagName = tagName.toUpperCase();
	}
	if (className != null) {
		var classNameRegExp = new RegExp('(^|\\s)'+className.replace(/\-/g,'\\-')+'(\\s|$)');
	}
	for (var i=0; i<element.childNodes.length; i++) {
		var child = element.childNodes[i];
		if (child.nodeType==1) {
			if (tagName!=null && tagName.length && tagName!='*' && child.tagName!=tagName) {
				continue;
			}
			if (className!=null && className.length && !classNameRegExp.test(child.className)) {
				continue;
			}
			output[output.length] = child;
		}
	}
	return output;
}
function getElementsByClassName (oElm, strTagName, strClassName) {
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

// -----

var current = {};
function changeContent (container_id, index, hash) {
	if (index == null) {
		index = 0;
	}
	var current = window.current[container_id];
	var container = document.getElementById(container_id);
	var contents = getChildElements(container,'div');
	if (contents[current] != null) {
		contents[current].style.display = 'none';
	}
	if (contents[index] != null) {
		contents[index].style.display = 'block';
	}
	var menu = document.getElementById('menu_'+container_id);
	var buttons = getChildElements(menu,'a');
	if (buttons[current] != null) {
		buttons[current].className = "button";
	}
	if (buttons[index] != null) {
		buttons[index].className = "button_current";
	}
	window.current[container_id] = index;
	/*if (hash!=false) {
		var hash = '#'+container_id+':'+index;
		if (location.hash.length) {
			location.replace(location.href.replace(location.hash,hash));
		}
		else {
			location.replace(location.href+hash);
		}
	}*/
}
var hash = location.hash;
function initContent (container_id, index, force) {
	var hash = window.hash.substring(1).split(':');
	if (force!=true && hash.length >= 2 && hash[0]==container_id && !isNaN(parseInt(hash[1]))) {
		changeContent(container_id,parseInt(hash[1]),false);
	}
	else {
		changeContent(container_id,index,false);
	}
}

function initButton (button, pressClassName) {
	button.pressClassName = pressClassName;
	button.prevClassName = null;
	button.onmousedown = function() {
		this.prevClassName = this.className;
		this.className = this.pressClassName;
	}
	button.onmouseup = button.onmouseout = function() {
		if (this.prevClassName != null) {
			this.className = this.prevClassName;
			this.prevClassName = null;
		}
	}
}
function initButtons (className, pressClassName) {
	var buttons = document.getElementsByClassName?document.getElementsByClassName(className):getElementsByClassName(document,'a',className);
	for  (var i=0; i<buttons.length; i++) {
		initButton(buttons[i],pressClassName);
	}
}
function initMenu (id, pressClassName) {
	var menu = document.getElementById(id);
	var buttons = menu.getElementsByTagName('a');
	for  (var i=0; i<buttons.length; i++) {
		initButton(buttons[i],pressClassName);
	}
}


var customizerCookie = 'customizer';

function initCustomizerSave (className) {
	//var className = 'savecustom';
	var links = document.getElementsByClassName?document.getElementsByClassName(className):getElementsByClassName(document,'a',className);
	for  (var i=0; i<links.length; i++) {
		var link = links[i];
		link.onclick = function() {
			saveCustomizer();
			return true;
		}
	}
}
function saveCustomizer() {
	if (document.forms.customizer) {
		//alert(123);
		var form = document.forms.customizer;
		var cookie = [];
		for (var i=0; i<form.elements.length; i++) {
			var element = form.elements[i];
			if (!element.name.match(/^\w{3}Custom(FromC|ToC|FromF|ToF)?\d{1,2}/)) {
				continue;
			}
			switch (element.type) {
				case 'select':
				case 'select-one':
					var value = element.selectedIndex;
					break;
				default:
					var value = element.value;
					break;
			}
			cookie[cookie.length] = element.name + '=' + value;
		}
		cookieValue = cookie.join('&');
		$.cookie(customizerCookie,cookieValue);
	}
}
function restoreCustomizer() {
	if (document.forms.customizer) {
		var form = document.forms.customizer;
		var cookieValue = $.cookie(customizerCookie);
		if (cookieValue) {
			var cookie = cookieValue.split('&');
			for (var i=0; i<cookie.length; i++) {
				var field = cookie[i].split('=');
				var fieldName = field[0];
				var fieldValue = field[1];
				var element = form.elements[fieldName];
				if (element) {
					switch (element.type) {
						case 'select':
						case 'select-one':
							element.selectedIndex = fieldValue;
							break;
						default:
							element.value = fieldValue;
							break;
					}
				}
			}
			Refresh(form);
			$.cookie(customizerCookie,null);
		}
	}
}