﻿
function createXMLHttpRequest() {
	var xmlHttp = false;
	try {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e2) {
			xmlHttp = false;
		}
	}

	if (!xmlHttp && typeof XMLHttpRequest != "undefined") {
		xmlHttp = new XMLHttpRequest();
	}
	return xmlHttp;
}

function startRequest(path,n1,n2,n3,v1,v2,v3,style,select_default) {

	if(select_default==null || select_default=="")
	{
		select_default="-- --";
	}
	var divname = document.getElementById("div_"+n1);
		var xmlHttp1 = createXMLHttpRequest();
		var s1 =v2=="" ? "this.options[this.selectedIndex].value" : (v2 && v1 ? "this.options[this.selectedIndex].value" : v1);
		if(!document.getElementById(n1)){
			divname.innerHTML += "\n<select id="+n1+" name="+n1+" "+style+" onchange=\"startRequest('"+path+"','"+n1+"','"+n2+"','"+n3+"',"+s1+",this.options[this.selectedIndex].value,'','"+style+"','"+select_default+"')\"></select>\n";
		}else{
			document.getElementById(n1).length = 0;
		}
		xmlHttp1.onreadystatechange = function(){handleStateChange(xmlHttp1,n1,v1,select_default)};
		var url = path;
		xmlHttp1.open("GET", url, true);
		xmlHttp1.send(null);
		if(v1==0) {
			document.getElementById(n2).style.display="none";
		}

	if(v2){
		if(v2 ==0) return ;
		var xmlHttp2 = createXMLHttpRequest();
		var nn1 = document.getElementById(n1);
		for(var i=0;i<nn1.options.length;i++)
		{
			if(nn1.selectedIndex == i){
				nn1.options[i] = new Option(nn1.options[i].text,nn1.options[i].value,true);
				nn1.value=nn1.options[i].value;
			}else{
				nn1.options[i] = new Option(nn1.options[i].text,nn1.options[i].value);
			}
		}
		if(!document.getElementById(n2)){
			divname.innerHTML += "\n<select id="+n2+" name="+n2+" "+style+style+"','"+select_default+"')\"></select>\n";
			//divname.innerHTML += "\n<select id="+n2+" name="+n2+" "+style+" onchange=\"startRequest('"+path+"','"+n1+"','"+n2+"','"+n3+"','"+v1+"','',this.options[this.selectedIndex].value,'"+style+"','"+select_default+"')\"></select>\n";
			//xmlHttp2.onreadystatechange = function(){handleStateChange(xmlHttp2,n2,v2)};
		}else{
			document.getElementById(n2).length = 0;
		}
		var s =v2 ? v1 : v2;
		xmlHttp2.onreadystatechange = function(){handleStateChange(xmlHttp2,n2,v2,select_default)};
		//var url = path+"&pid="+v1;
		
		var url = path+"/pid/"+s;
		xmlHttp2.open("GET", url, true);
		xmlHttp2.send(null);
	}else{
		v1n = document.getElementById(n1).options[document.getElementById(n1).selectedIndex].value;
		if(document.getElementById(n2) && !v1n){
			document.getElementById(n2).length = 0;
			document.getElementById(n2).style.display="none";
		}
	}
	
	
	if(v3){
		var nn2 = document.getElementById(n2);
		for(var i=0;i<nn2.options.length;i++)
		{
			if(nn2.selectedIndex == i){
				nn2.options[i] = new Option(nn2.options[i].text,nn2.options[i].value,true);
				nn2.value = nn2.options[i].value;
			}else{
				nn2.options[i] = new Option(nn2.options[i].text,nn2.options[i].value);
			}
		}

		var xmlHttp3 = createXMLHttpRequest();
		if(!document.getElementById(n3)){
			divname.innerHTML += "\n<select id="+n3+" name="+n3+" "+style+" style='display:none'></select>\n";
		}else{
			document.getElementById(n3).length = 0;
		}
		xmlHttp3.onreadystatechange = function(){handleStateChange(xmlHttp3,n3,v3,select_default)};
		var url = path+"/pid/"+v3;
		xmlHttp3.open("GET", url, true);
		xmlHttp3.send(null);
	}else{
		if(document.getElementById(n3)){
			document.getElementById(n3).style.display="none";
		}
	}
}
function handleStateChange(xmlHttp,menu,num,select_default) {
	
	var obj = document.getElementById(menu);
	obj.options[0] = new Option('Loading...','');
	if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {
			//alert(xmlHttp.responseText);
			//document.write(xmlHttp.responseText);
			var json =  eval('('+xmlHttp.responseText+')');
			if(json.length){
				document.getElementById(menu).style.display="";
				obj.options[0] = new Option(select_default,'0');
				for(var i=0;i<json.length;i++){
					if(json[i].id == num){
						obj.options[i+1] = new Option(json[i].name,json[i].id,true);
						obj.value=json[i].id;
					}else{
						obj.options[i+1] = new Option(json[i].name,json[i].id);
					}
				}
			}else{
				document.getElementById(menu).style.display="none";
			}
		} else {
			obj.options[0] = new Option('Error...','');
		}
	}
}
