var first_caller;
var updated_count;

function update_combo(caller, rootdir, controlname, targetname, table, valuefieldname, displayfieldname) {
	//alert(valuefieldname+' , '+displayfieldname);
	var t=caller.disabled;
  var dctarget = document.getElementsByName(targetname)[0];
	dctarget.disabled = true;	//itt tiltom le a köv. combo-t
	
	if (first_caller==undefined){	//
		if (caller.selectedIndex > 0) dctarget.disabled = false;
	}
	else if (caller == first_caller
      && caller.selectedIndex > 0) {	
		caller.disabled=true;
		dctarget.disabled=true;
		//alert(caller.options[caller.selectedIndex].value);
    getComboContents(caller, controlname, rootdir, caller.options[caller.selectedIndex].value, targetname, table, valuefieldname, displayfieldname);
    
  } else {
    dctarget.selectedIndex=0;
  }

	//e miatt megy végig ez a fv az összes combo-n, melyiknek az OnChange-en ez a fv van
  if (dctarget.onchange != null) dctarget.onchange();
}


function setTargetValues(sourceobj, result, targetname){
	options=eval(result); //az uj opciok
	var dctarget=document.getElementsByName(targetname)[0]; //ebbe a komboba pakoljuk bele
	dctarget.options.length=0;
	// alert(options[0][1]+' , '+options[0][0]);
	// var meddig=options.length;
	// alert(meddig);
	// meddig=options.length+1;
	// alert(meddig);
	
	setTimeout("", 50);
	dctarget.options[0]=new Option('----', '0');
	for (i=0; i<options.length; i++){
		dctarget.options[i+1]=new Option(options[i][1], options[i][0]);
	}
	dctarget.disabled = false;
	sourceobj.disabled=false;
}

function getComboContents(sourceobj, controlname, rootdir, value, targetname, table, valuefieldname, displayfieldname) {
  try {
    // Moz supports XMLHttpRequest. IE uses ActiveX. 
    // browser detction is bad. object detection works for any browser
    xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');
		//alert(rootdir + '_application/provider/dynamiccombo/index.php?controlname=' + controlname + '&value=' + value + '&table=' + table + '&valuefieldname=' + valuefieldname + '&displayfieldname=' + displayfieldname);
    xmlhttp.open('GET', rootdir + '_application/provider/dynamiccombo/index.php?controlname=' + controlname + '&value=' + value + '&table=' + table + '&valuefieldname=' + valuefieldname + '&displayfieldname=' + displayfieldname, true);
		xmlhttp.onreadystatechange=function(){
			if (xmlhttp.readyState == 4){	//value 4 - meaning the load is complete
				if (xmlhttp.status==200){	//200 means success, 404 means failure
					//alert('sourceobj:  '+sourceobj+', unescape(xmlhttp.responseText):  '+unescape(xmlhttp.responseText)+', targetname:  '+targetname);
					setTargetValues(sourceobj, unescape(xmlhttp.responseText), targetname);
				}
				else {
					//alert('xmlhttp.readyState:  '+xmlhttp.readyState);
					//alert('xmlhttp.status:  '+xmlhttp.status);
					sourceobj.disabled=false;
					sourceobj.selectedIndex=0;
				}
			}
		}
		xmlhttp.send(null);
  } catch (e) {
    alert(e.name+' '+e.message);
    // alert('no ajax available');
    // browser doesn't support ajax. handle however you want
  }
}

