var http_request  = false;
var url           = false;
var cmd           = false;
var category      = false;
var cat_fieldname = false;
var allowed       = 0;

function addEvent(objRef, eventType, functionToCall, captureSwitch) {
	if (objRef.addEventListener) {
		objRef.addEventListener(eventType, functionToCall, captureSwitch);
		return true;
	} else if (objRef.attachEvent) {
		return objRef.attachEvent("on"+eventType, functionToCall);
	} else {
		// error handling
		return false;
	}
}

function ControlCategorySelect(TXT){
      if(allowed == "true"){
         return true;
      }else{
         alert(TXT);
         return false;
      }
}
function UpdateCategorySelect(){
      var thisDiv = document.getElementById("nested_div");
      var Oldnode = document.getElementById("nested_cat");
      category   = Oldnode.options[Oldnode.selectedIndex].getAttribute('value');
      thisDiv.removeChild(Oldnode);
      MyEnginesAjaxCategorySelect(url, cmd, cat_fieldname, category);
      return false;
}

function MyEnginesAjaxCategorySelect(this_url, this_cmd, this_cat_fieldname, this_category){
   http_request  = false;
   url           = this_url;
   cmd           = this_cmd;
   category      = this_category;
   cat_fieldname = this_cat_fieldname;
   if(window.XMLHttpRequest){
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
         http_request.overrideMimeType('text/xml');
      }
   } else if (window.ActiveXObject) {
      try {
	 http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
	  try {
	     http_request = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (e) {}
      }
   }

   if(!http_request){
      // error handling
      return false;
   }
   http_request.onreadystatechange = function(){
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
	    var thisDiv     = document.getElementById("nested_div");	   
	    var thisSelect  = document.createElement("select");
	    thisSelect.id   = "nested_cat";
	    thisSelect.name = cat_fieldname;
	    var xmldoc      = http_request.responseXML;
	    var root_node   = xmldoc.documentElement;
	    var iChildren   = root_node.childNodes.length;
	    var iAttributes = root_node.attributes.length;

	    var cat_nodes       = new Array;
	    var node_attributes = new Array;

	    var cat_nodes  = root_node.getElementsByTagName('SelOpt');
	    var $i         = 0; 
	    var cat_node   = false;
	    var opt_value  = false;
	    var opt_name   = false;
	    var opt_select = false;
	    var res_nodes  = root_node.getElementsByTagName('Result');
	    allowed        = res_nodes[0].getElementsByTagName('EntryAllowed')[0].firstChild.nodeValue;
	    for($i = 0; $i < cat_nodes.length; $i++){
		   cat_node = cat_nodes[$i];
		   opt_value   = cat_node.getElementsByTagName('OptVal')[0].firstChild.nodeValue;
		   opt_name    = cat_node.getElementsByTagName('OptName')[0].firstChild.nodeValue;
		   opt_select  = cat_node.getElementsByTagName('OptSelStat')[0].firstChild.nodeValue;
		   thisSelect.options[$i] = new Option(opt_name, opt_value);
		   if(opt_select == "true"){
		      thisSelect.options[$i].selected = true;
		   }   
	    }
	    addEvent(thisSelect, "change", UpdateCategorySelect);
	    thisDiv.appendChild(thisSelect);
         }else{
	    // error handling
         }
      }
   };
   http_request.open('GET', url + "?cmd=" + cmd + "&act=cat_select&" + cat_fieldname + "=" +  category, true);
   http_request.send(null);
}

