// JavaScript Document

	var sAjaxModul_IdPrefix = "";
	var AjaxModul_waitingObjectState = new Array();
	var AjaxModul_iMsieVersion = 0;
	
	ua = window.navigator.userAgent;
	msie = ua.indexOf("MSIE ");
	if(msie>0) AjaxModul_iMsieVersion = parseInt (ua.substring (msie+5, ua.indexOf (".", msie )));
	else AjaxModul_iMsieVersion = 0;

//---------------------------------------------------------------------------------------
	function AjaxModul_init(sReceiverFunctionName) {
		var oAjax = null;
		try { oAjax = new XMLHttpRequest(); }
		catch(e) { 
  		try { oAjax = new ActiveXObject("Msxml2.XMLHTTP"); }
  		catch(e) {
    		try { oAjax = new ActiveXObject("Microsoft.XMLHTTP"); }
    		catch(e) {
      		alert("Your browser does not support AJAX!");
      		return false;
      	}
    	}
  	}
  	
  	var bFunctionExists = false;
  	
  	eval("var bFunctionExistsInWindowObject = window." + sReceiverFunctionName + " ? true : false;");
  	if(bFunctionExistsInWindowObject) {
  		eval("var sTypeofFunction = typeof window." + sReceiverFunctionName + ";");
  		if(sTypeofFunction=="function") bFunctionExists = true; 
  	}
  	
  	if(bFunctionExists) {
			oAjax.onreadystatechange = function() {
				if(oAjax.readyState==4) {
					var sText = oAjax.responseText;
					eval(sReceiverFunctionName + "(sText);");
				}
			}
		}
  	else {
  		alert("Ajax error: can't attach function '"+sReceiverFunctionName+"' to Ajax object.\nFunction '"+sReceiverFunctionName+"' not exists.");
  		return false;
    }
  	
  	return oAjax;
  }
//---------------------------------------------------------------------------------------
  function AjaxModul_call(sUrl, sReceiverFunctionName, sIdPrefix) {
  	if(!sUrl) {
  		alert("No URL defined during the calling the AjaxModul_call() function.");
  		return false;
  	}
  	sAjaxModul_IdPrefix = sIdPrefix;
  	var sInter = "&";
  	if(sUrl.search(/\?/)==-1) sInter = "?"; 
  	sUrl += sInter + "ajaxCounter=" + Math.random();
  	var oAjax = AjaxModul_init(sReceiverFunctionName);
  	if(!oAjax) {
  		alert("Error in function AjaxModul_call().\nVariable \"oAjax\" is not set.\nreceiver function's name is: " + sReceiverFunctionName);
			return false;
		}
  	oAjax.open("GET", sUrl, true);
  	oAjax.send(null);
  	return true;
  }
//---------------------------------------------------------------------------------------
  function AjaxModul_receiverForSelectBox(sReturnValue) {
  	var sSeparator0 = "¨˙¨";
  	var sSeparator1 = "˘§˘";
  	var sSeparator2 = "´¨`";
  	var sSeparator3 = "˙°˙";
  	var sSeparator4 = "`°´";
		var sSeparator5 = "^˘^";
		var sSeparator6beg = "xVoooIIIxxxIIIoooVx";
		var sSeparator6end = "°^°";

		var aX = sReturnValue.split(sSeparator0);
		var sItemID = sAjaxModul_IdPrefix + aX[0];
		var aY = aX[1].split(sSeparator1);
		var bSaveNullOption = parseInt(aY[0]);
		var aZ = aY[1].split(sSeparator2);
		var bSelectNull = parseInt(aZ[0]);
		var aV = aZ[1].split(sSeparator3);
		var sNullText = aV[0];
		sReturnValue = aV[1];

  	oChangeInput = document.getElementById(sItemID);
  	if(!oChangeInput) { alert("OCMS JavaScript error\n\n   oChangeInput==null if id = '" + sItemID + "'"); return false; }

		for(i=oChangeInput.childNodes.length-1; i>1; i--) oChangeInput.removeChild(oChangeInput.childNodes[i]);
		if(!bSaveNullOption && oChangeInput.childNodes[1]) oChangeInput.removeChild(oChangeInput.childNodes[1]);
		if(bSelectNull) {
			oChangeInput.options[0].text = sNullText;
			oChangeInput.selectedIndex = 0;
		}

		eval("var bGrouped = sReturnValue.search(/" + sSeparator6beg+ "/);");
		if(bGrouped>-1) {
			var aOptGroups = sReturnValue.split(sSeparator6beg);
			if(aOptGroups && aOptGroups.length) for(j=0; j<aOptGroups.length; j++) {
				if(!aOptGroups[j]) continue;
				a = aOptGroups[j].split(sSeparator6end);
				oGroup = document.createElement("OPTGROUP");
				oGroup.label = a[0];
				oGroup.style.fontWeight = "bold";
				oGroup.style.color = "black";
				oGroup.style.fontStyle = "normal";
				aOptions = a[1].split(sSeparator4);
				AjaxModul_constructSelect(oGroup, aOptions, sSeparator5);
				oChangeInput.appendChild(oGroup);
			}
		}
		else {
  		var aOptions = sReturnValue.split(sSeparator4);
  		AjaxModul_constructSelect(oChangeInput, aOptions, sSeparator5);
  	}
  	
		if(AjaxModul_waitingObjectState && AjaxModul_waitingObjectState[sItemID]) {
			AjaxModul_waitingObjectState[sItemID] = "finished";
  	}
  }
//---------------------------------------------------------------------------------------
	function AjaxModul_constructSelect(oSelectBox, aOptions, sSeparator) {
		var bIsOptGroup = false;
  	var bDoLeftIndent = false;
		if(aOptions && aOptions.length) for(i=0; i<aOptions.length; i++) {
			if(!aOptions[i]) continue;
  		aOption = aOptions[i].split(sSeparator);
  		if(aOption[1]==undefined || aOption[1]==null) continue;
  		
			bIsOptGroup = false;
  		bDoLeftIndent = false;
  		if(aOption[1].search(/^\#/)!=-1) { // optgroup (selectable)
				bIsOptGroup = true;
				aOption[1] = aOption[1].replace(/^#/, "");
			}
			else if(aOption[1].search(/^\=/)!=-1) { // option inter optgroup
				bDoLeftIndent = true;
				aOption[1] = aOption[1].replace(/^=/, "");
			}
			
  		if(document.all) {
  			oNewOption = document.createElement("OPTION");
	  		oNewOption.setAttribute("value", aOption[0]);
	  		if(AjaxModul_iMsieVersion<=6 && bDoLeftIndent) aOption[1] = "    " + aOption[1];
	  		oNewOption.setAttribute("innerText", ""+aOption[1]);
	  		if(bIsOptGroup) oNewOption.style.fontWeight = "bold";
	  		if(bDoLeftIndent) oNewOption.style.paddingLeft = "20px";
	      oSelectBox.insertBefore(oNewOption);
  		}
  		else {
  			oNewOption = new Option(aOption[1], aOption[0]);
  			if(bIsOptGroup) oNewOption.style.fontWeight = "bolder";
	  		if(bDoLeftIndent) oNewOption.style.paddingLeft = "20px";
	      oSelectBox.appendChild(oNewOption);
	    }
  	}
	}
//---------------------------------------------------------------------------------------