var CS_arrow_width = 21;
var upped_Z = 20;
var downed_Z = 10;
var toToggleHolder = null;
var holderList = new Array();
function toggleHolder() {
	for (var i=0; i<holderList.length; i++) {
		holderList[i].style.display = "none";
		holderList[i].parentNode.style.zIndex = downed_Z;
	}
	if (toToggleHolder != null) {
		toToggleHolder.style.display = "block";
		toToggleHolder.parentNode.style.zIndex = upped_Z;
		upped_Z++;
		toToggleHolder = null;
	}
}

function changeSelect(obj) {
	var parent = obj.parentNode;
	var oW = obj.offsetWidth
	obj.style.display = "none";
	parent.className += " customselectbox";
	
	var currentOptionObj = document.createElement('div');
	currentOptionObj.className = "current";
	currentOptionObj.style.width = (oW - CS_arrow_width - 10) + "px";
	currentOptionObj.innerHTML = obj.options[obj.selectedIndex].text;
	parent.appendChild(currentOptionObj);
	
	var arrowObj = document.createElement('div');
	arrowObj.className = "arrow";
	parent.appendChild(arrowObj);
	
	var optionHolderObj = document.createElement('div');
	optionHolderObj.className = "optionholder";
	optionHolderObj.style.display = "none";
	optionHolderObj.style.width = (oW -2) + "px";
	
	optionHolderObj.linkedSelect = obj;
	optionHolderObj.linkedCurrent = currentOptionObj;
	
	var setToToggleHolder = function() {
		if (this.linkedHolder.style.display != "block") toToggleHolder = this.linkedHolder;
	}
	
	for (var i=0; i<obj.options.length; i++) {
		var optionObj = document.createElement('div');
		optionObj.className = "option";
		optionObj.innerHTML = obj.options[i].text;
		optionObj.onmouseover = function() { this.className = "option option_hover"; }
		optionObj.onmouseout = function() { this.className = "option"; }
		optionObj.linkedIndex = i;
		optionObj.linkedHolder = optionHolderObj;
		optionObj.onclick = function() { 
			if (this.linkedHolder.linkedSelect.selectedIndex != this.linkedIndex) {
				this.linkedHolder.linkedSelect.selectedIndex = this.linkedIndex;
				this.linkedHolder.linkedCurrent.innerHTML = this.linkedHolder.linkedSelect.options[this.linkedIndex].text;
				if (typeof this.linkedHolder.linkedSelect.onChangeEvent == "function") this.linkedHolder.linkedSelect.onChangeEvent();
			}
		}
		optionHolderObj.appendChild(optionObj);
	}
	parent.appendChild(optionHolderObj);
	
	currentOptionObj.linkedHolder = optionHolderObj;
	arrowObj.linkedHolder = optionHolderObj;
	
	currentOptionObj.onclick = setToToggleHolder;
	arrowObj.onclick = setToToggleHolder;
	
	holderList.push(optionHolderObj);
}

function prepareSelects() {
	var mySelects = document.getElementsByTagName("select");
	var obj;
	for (var i=0; i<mySelects.length; i++) {
		obj = mySelects[i];
		/*
		if (obj.className.indexOf('JS_NoCustomSelect') == -1) {
			changeSelect(obj);
		}
		*/
	}
}

if (window.addEventListener) {
	window.addEventListener("click",toggleHolder,false);
}
else if (window.attachEvent) {
	document.attachEvent("onclick",toggleHolder);
}