/* 
dhtml ComboBoxes
created by : Maarten Dekker, Michael Sgaier 08-2006
 */

function cmb_closeAll() {
	 for(var i=0;i<arCombos.length;i++) 
	 {
	 	var obj = document.getElementById('cmb_popup_' + arCombos[i]);
	 	if (!obj) return;
		obj.className = obj.className.replace('_show', '_hide');
		obj.parentNode.style.zIndex = 2;
	}
}
function cmb_showPopup(combo, showMe) {
	// ! first check if its not allready open
	var obj = document.getElementById('cmb_popup_' + combo);
	var show = (showMe != false) && (obj) && (obj.className.search(/_hide$/i) >= 0);
	// now close all
	cmb_closeAll();
	// and open clicked when needed
	if (!obj) return;
	if (show) {
		obj.className = obj.className.replace('_hide', '_show');
		obj.parentNode.style.zIndex = 3;
	} else {
		obj.className = obj.className.replace('_show', '_hide');
		obj.parentNode.style.zIndex = 2;
	}
}
function cmb_setComboValue(combo,value) {
	var objVal = document.getElementById(combo);
	if (objVal) objVal.value = value;
}
function cmb_setComboLabel(combo,label) {
	var objLabel = document.getElementById('cmb_input_' + combo);
	if (objLabel) objLabel.innerHTML = label;
}
function cmb_selectOption(combo,value,label) {
	cmb_setComboValue(combo,value);
	cmb_setComboLabel(combo,label);
	cmb_showPopup(combo,false);
}
function cmb_escapeClick(e)
// clicks outside comboboxes
{	
	if (isInternetExplorer()) e = window.event;
	var target = (isInternetExplorer()) ? e.srcElement : e.target;	
	if (!target.id || !target.id.match(/^cmb_/i))
	{
		cmb_closeAll();
		e.cancelBubble = true;
	}
}
var arCombos = new Array();
document.onclick = cmb_escapeClick;

/*   
Write functions, not applicable for ajax driven site
as javascript is written but not executed on ajax-return


function cmb_writeHidden(id,defVal) {
	var hiddenField = "<input type='hidden' id='" + id + "' value='" + defVal + "'";
	hiddenField += ">";
	document.write(hiddenField);
}
function cmb_writeField(id,defVal,w,onchange) {
	var field = "<div class='cmb_comboField' id='cmb_field_" + id + "' onClick='cmb_showPopup(\"" + id + "\");'>";
	field += "<div id='cmb_input_" + id + "' class='cmb_input'>" + defVal + "</div>";
	field += "</div>";
	document.write(field);
}
function cmb_writePopup(id,ar,w,onchange) {
	var popup = "<div class='cmb_comboPopup_hide' id='cmb_popup_" + id + "'>";
	for (var i=0;i<ar.length;i++) {
		popup += "<div class='cmb_option' value='" + ar[i][0] + "'";
		popup += " onClick='cmb_selectOption(\"" + id + "\",\"" + ar[i][0] + "\",\"" + ar[i][1] + "\");";
		if (onchange) {
			popup += onchange + "();\'";
		} else {
			popup += "'";
		}
		popup += " onMouseOver='this.className=\"cmb_option hover\"'";
		popup += " onMouseOut='this.className=\"cmb_option\"'";
		popup += ">" + ar[i][1] + "</div>\n";
	}
	popup += "</div>";
	document.write(popup);
	arCombos[arCombos.length] = id;
} 
function createCombo(id,arOption,rowSel,width,onchange) {
// @ maarten check hier of id al in de array arCombos staat, zo ja, id renamen of gebruik UID/postfixen ahv currenttime msec oid
// weet alleen niet of dat andere code van je in de war schopt!
// evt onderstaande methode
if (_get(id))  // evt valInArray(arCombos, id) gebruiken
{
	createCombo(id+"_x",arOption,rowSel,width,onchange);
	return;
}
// end
//alert('createCombo '+ id); // als je deze line weghaalt werkt ie niet meer ???:/
	var w = width == null ? 185 : width;
	document.write("<div class='dhtmlCombo' style='width:" + w + "px;'>");
	cmb_writeHidden(id,arOption[rowSel][0]);
	cmb_writeField(id,arOption[rowSel][1],w);
	cmb_writePopup(id,arOption,w,onchange);
	document.write("</div>");
} */