  var http_request = false;	// global object
  var obj_box = '';				//string variable to store which listbox is working with
  var obj_idx = 0;              //numeric index for store listbox to work with code logic instead of string
  var obj_key = 0;              //numeric key is used to store which slectedIndex is selected
  var user_sel = false;        //flag that hold if user making selection, default is false so application get correct selection in onLoad event
  var tmp_cat_1 = 0;            //default local variables for dynamic selections
  var tmp_cat_2 = 0;
  var tmp_cat_3 = 0;
  var tmp_prod = 0;
  var not_ie = false;			//keep to know that current browser is IE or others
	switch (useLang) {
		case 1:		var seltxt ="-- Please select --" ;
		case 2:		var seltxt ="-- ½Ð¿ï¾Ü --";
		case 3:		var seltxt ="-- Please select --";
	}
  //var seltxt = (useLang==1) ? "-- Please select --" : "-- ½Ð¿ï¾Ü --";
  function makeRequest(url, box, key, idx) {
    obj_box = box;  obj_idx = idx;  obj_key=key;   
    handle_input();                           //set the value to correct variables
    if (key == 0 && user_sel==true) {return false;}             //if selection is zero, then reset other variables, and exit function  
    if (window.XMLHttpRequest) {            // browser: Mozilla, Safari, ...
		not_ie=true;
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); }
    } else if (window.ActiveXObject) {      // browser: IE
      try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
          http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
      }
    }
    if (!http_request) { return false; }      //Giving up, cannot create an XMLHTTP instance, EXIT here !
    
    if (obj_idx==2) {key=document.getElementById('cat1').value+','+key;}
//alert( url+'&key='+key );
    //fine, object for connection created, management stuff
    http_request.onreadystatechange = function() { showContents(); };   //setup receiver to handle incoming events
    http_request.open('POST', url+'&key='+key, true);              //combine url here, using get method and asycn type connection
    http_request.send(null);
  }

  function showContents() {
    if (http_request.readyState == 4) {
      if (http_request.status == 200) {
        switch (obj_idx) {
          case 0:   handle_combo1();  break;
          case 1:   try{handle_combo2();}catch(e){};  break;
          case 2:   try{handle_combo3();}catch(e){};  break;
              //write_data();
        }
      } else {
              //alert('There was a problem with the request.');
      }
    }
  }

function handle_input() {
  switch (obj_idx) {
    case 1:      tmp_cat_1 = obj_key;   try{clearOther(2)}catch(e){};    try{clearOther(3)}catch(e){};      break;
    case 2:      tmp_cat_2 = obj_key;   try{clearOther(3)}catch(e){};      break;
    case 3:      tmp_cat_3 = obj_key;      break;
  }
}

function clearOther(n) {
  switch (n) {
  case 2:
    try {var cb2 = document.getElementById("cat2");
      cb2.options.length = 0;
      tmp_cat_2 = 0;
    } catch(e) {};    break;
  case 3:
    try {var cb3 = document.getElementById("cat3");
      cb3.options.length = 0;
      tmp_cat_3 = 0;
    } catch(e) {};    break;
  }
}



function handle_combo1() {
  var xmlDoc = http_request.responseXML;
  var cell = (not_ie) ? xmlDoc.getElementsByTagName('elements') : xmlDoc.selectNodes('/xml/data/elements') ;
  var cb = document.getElementById("cat1");
  var t_id = 0; 
  var t_sel = 0;
  try {  clearOther(2); } catch (e) {}
  try {  clearOther(3); } catch (e) {}
  cb.options.length = 0;
  cb.options[0] = new Option(seltxt, 0);
  for (var i=0; i < cell.length; i++) {
    t_id = cell[i].getAttribute('id');
    try {if (t_id == cat_1_sel && user_sel == false) t_sel = i + 1;} catch(e){}
    cb.options[i+1] = new Option(unescape(cell[i].getAttribute('name')), t_id);
  }
  cb.options[t_sel].selected=true;
  try {
    if (cat_1_sel != 0 && user_sel == false) makeRequest("get_xml.asp?qry=2&any=0","cat2", cat_1_sel, 1); //this should only happen in onload event
  } catch (e) {}
}

function handle_combo2() {
  var xmlDoc = http_request.responseXML;
  var cell = (not_ie) ? xmlDoc.getElementsByTagName('elements') : xmlDoc.selectNodes('/xml/data/elements') ;
  var cb = document.getElementById("cat2");
  var t_id = 0; 
  var t_sel = 0;
  try {clearOther(3);} catch (e){}
  cb.options.length = 0;
  cb.options[0] = new Option(seltxt, 0);
  for (var i=0; i < cell.length; i++) {
    t_id =  cell[i].getAttribute('id');
    try {if (t_id==cat_2_sel && user_sel == false) t_sel=i+1;} catch(e) {}
      cb.options[i+1] = new Option(unescape(cell[i].getAttribute('name')), t_id);
    }
  cb.options[t_sel].selected=true;
  try {
  if (cat_2_sel != 0 && user_sel == false) makeRequest("get_xml.asp?qry=3&any=0","cat3", cat_2_sel, 2); //this should only happen in onload event
  } catch (e) {}
}

function handle_combo3() {
  var xmlDoc = http_request.responseXML;//.responseXML
  var cell = (not_ie) ? xmlDoc.getElementsByTagName('elements') : xmlDoc.selectNodes('/xml/data/elements') ;
  var cb = document.getElementById("cat3");
  var t_id = 0;
  var t_sel = 0;
  //clearOther();
  cb.options.length = 0;
  cb.options[0] = new Option(seltxt, 0);
  for (var i=0; i < cell.length; i++) {
    t_id =  cell[i].getAttribute('id');
    try {if (t_id==cat_3_sel && user_sel==false) t_sel=i+1;} catch(e){}
      cb.options[i+1] = new Option(unescape(cell[i].getAttribute('name')), t_id);//cat_3_arr[j][1], t_id);
    }
  cb.options[t_sel].selected=true;
  //if (cat_3_sel != 0 && user_sel==false) makeRequest("get_xml.asp?qry=3&any=0","cat3", cat_3_sel, 3);
}



function Reset_Combo() {
  var cb = document.getElementById("cat1");
  cb.options[0].selected=true;
  cb = document.getElementById("cat2");
  cb.options[0].selected=true;
  cb = document.getElementById("cat3");
  cb.options[0].selected=true;
  tmp_cat_1=0;    tmp_cat_2=0;  tmp_cat_3=0
}

function Reset_Combo_1() {
  var cb = document.getElementById("cat1");
  cb.options[0].selected=true;
  clearOther(2);    clearOther(3);
  var bx = document.getElementById("keyword");
  bx.value='';
  tmp_cat_1=0;    tmp_cat_2=0;  tmp_cat_3=0;  keyword='';
}

function Reset_Combo_2() {
  var cb = document.getElementById("cat1");
  cb.options[0].selected=true;
  clearOther(2);    clearOther(3);
  var cx = document.getElementById("prod");
  cx.options.length = 0;
  tmp_cat_1=0;    tmp_cat_2=0;  tmp_cat_3=0;  keyword='';
}




