onload = init;

//var state;
var result1;
var result2;
var result3;
var result4;
var db = new Array();

function init() {
//	state = $('state');
	result1 = $('result1');
	result2 = $('result2');
	result3 = $('result3');
	result4 = $('result4');
	loadDB(db, 0, "zairyou.xml");
	loadDB(db, 1, "jyuutennjyoukenn.xml");
	loadDB(db, 2, "youki.xml");
	loadDB(db, 3, "seihinn.xml");
}

function refresh() {
	dispSel(0, "zairyou", result1);
	dispSel(1, "jyuutennjyoukenn", result2);
	dispSel(2, "youki", result3);
	dispResult();
}

function loadDB (db, num, file) {
//	state.innerHTML = "Now searching... please wait...<br />\n";
	var url = file;
	var paramList = "";

	new Ajax.Request(url,
		{
			method: 'get',
			onSuccess: getData,
			onFailure: showErrMsg,
			parameters: paramList
	});

	function getData(data){
		var response = data.responseXML.getElementsByTagName('Response');
		db[num] = response[0].getElementsByTagName('Item');
		if (num == 3) {
			refresh();
		}
	}

	function showErrMsg(){
//		clearDisp();
//		state.innerHTML = "Nothing found<br />\n";
		window.alert("Nothing found");
	}
}

function dispSel(num, name, obj) {
	var item = db[num];
	var CurVal = "";
	var sel = obj.childNodes;
	if (sel.length >= 1) {
		CurVal = obj.childNodes.item(0).value;
		obj.removeChild(sel[0]);
	}

	//select作成
	var sel = document.createElement('select');
	sel.setAttribute('id', name);
	
	//1
	var opt = document.createElement('option');
	opt.setAttribute('value', 0);
	var text = document.createTextNode('Click to select');
	opt.appendChild(text);
	sel.appendChild(opt);
	
	//2
	for(var i=0; i<item.length; i++){
		var Cd = item[i].getElementsByTagName('CD');
		var CdValue = Cd[0].firstChild.nodeValue;
		var Name = item[i].getElementsByTagName('NAME');
		var NameValue = Name[0].firstChild.nodeValue;
		
		if (!existResult(obj.id, CdValue)) {
			continue;
		}
		
		var opt = document.createElement('option');
		opt.setAttribute('value', CdValue);
		var text = document.createTextNode(NameValue);
		opt.appendChild(text);
		if (CdValue == CurVal) {
			opt.selected = true;
		}
		sel.appendChild(opt);
	}
	//
	obj.appendChild(sel);
	$(name).onchange = function (){refresh();}
//	state.innerHTML = "";
}

function dispResult() {
	var item = db[3];
	var sel = result4.childNodes;
	if (sel.length >= 1) {
		result4.removeChild(sel[0]);
	}

	var tmpHtml = "";
	
	//1
	var tbl = document.createElement('table');
	var tbody = document.createElement('tbody');
	var row = document.createElement("tr");
	tbody.appendChild(row);
	var cell=document.createElement("th");
	cell.innerHTML = "&nbsp;Product name";
	row.appendChild(cell);
	cell=document.createElement("th");
//	cell.innerHTML = "File name";
//	row.appendChild(cell);
//	cell=document.createElement("th");
	cell.innerHTML = "&nbsp;Material";
	row.appendChild(cell);
	cell=document.createElement("th");
	cell.innerHTML = "&nbsp;Filling conditions";
	row.appendChild(cell);
	cell=document.createElement("th");
	cell.innerHTML = "&nbsp;Container";
	row.appendChild(cell);
//	cell=document.createElement("th");
//	cell.innerHTML = "&nbsp;Product image";
//	row.appendChild(cell);
//	cell=document.createElement("th");
//	cell.innerHTML = "&nbsp;Description";
//	row.appendChild(cell);

	for(var i=0; i<item.length; i++){
		var Name = item[i].getElementsByTagName('NAME');
		var NameValue = Name[0].firstChild.nodeValue;
		var File = item[i].getElementsByTagName('FILE');
		var FileValue = File[0].firstChild.nodeValue;
		var Zairyou = item[i].getElementsByTagName('ZAIRYOU');
		var ZairyouValue = Zairyou[0].firstChild.nodeValue;
		var Jyuutennjyoukenn = item[i].getElementsByTagName('JYUUTENNJYOUKENN');
		var JyuutennjyoukennValue = Jyuutennjyoukenn[0].firstChild.nodeValue;
		var Youki = item[i].getElementsByTagName('YOUKI');
		var YoukiValue = Youki[0].firstChild.nodeValue;
		var Link = item[i].getElementsByTagName('LINK');
		var LinkValue = Link[0].firstChild.nodeValue;
		var Setsumei = item[i].getElementsByTagName('SETSUMEI');
		var SetsumeiValue = Setsumei[0].firstChild.nodeValue;
		
		if (!isHit(ZairyouValue, result1.childNodes.item(0).value)) {
			continue;
		}
		if (!isHit(JyuutennjyoukennValue, result2.childNodes.item(0).value)) {
			continue;
		}
		if (!isHit(YoukiValue, result3.childNodes.item(0).value)) {
			continue;
		}

		
		row=document.createElement("TR");
		tbody.appendChild(row);
		cell=document.createElement("td");
		cell.innerHTML = "<a href='" + FileValue + "' target='_srh'>&nbsp;" + NameValue + "</a>&nbsp;";
		row.appendChild(cell);
//		cell=document.createElement("td");
//		cell.innerHTML = "<a href='" + FileValue + "'>" + FileValue + "</a>";
//		row.appendChild(cell);
		cell=document.createElement("td");
		cell.innerHTML = "&nbsp;" + numToName(db[0], ZairyouValue) + "&nbsp;";
		row.appendChild(cell);
		cell=document.createElement("td");
		cell.innerHTML = "&nbsp;" + numToName(db[1], JyuutennjyoukennValue);
		row.appendChild(cell);
		cell=document.createElement("td");
		cell.innerHTML = "&nbsp;" + numToName(db[2], YoukiValue);
		row.appendChild(cell);
//		cell=document.createElement("td");
//		cell.innerHTML = "<img src='./images/" + LinkValue + "' alt='" + NameValue + "'/>";
//		row.appendChild(cell);
//		cell=document.createElement("td");
//		cell.innerHTML = SetsumeiValue + "<br />";
//		row.appendChild(cell);

	}
	tbl.appendChild(tbody);
	result4.appendChild(tbl);
	tbl.setAttribute("border","1", 0);
	tbl.setAttribute("cellPadding","2");
	tbl.setAttribute("cellSpacing","0");
//	state.innerHTML = "";
}

function isHit(string, search) {
	if (search == 0) {
		return true;
	}
	var d = string.split(",");
	for (var i=0; i<d.length; i++) {
		if (d[i] == search) {
			return true;
		}
	}
	return false;
}

function numToName(item, num) {
	var n = num.split(",");
	var s = "";
	for (var i=0; i<n.length; i++) {
		for(var j=0; j<item.length; j++){
			var Cd = item[j].getElementsByTagName('CD');
			var CdValue = Cd[0].firstChild.nodeValue;
			if (n[i] == CdValue) {
				var Name = item[j].getElementsByTagName('NAME');
				var NameValue = Name[0].firstChild.nodeValue;
				if (s) {
					s += ",";
				}
				s += NameValue;
			}
		}
	}
	return s;
}

function existResult(id, key) {
	var item = db[3];
	for(var i = 0; i < item.length; i++){
		var Zairyou = item[i].getElementsByTagName('ZAIRYOU');
		var ZairyouValue = Zairyou[0].firstChild.nodeValue;
		var Jyuutennjyoukenn = item[i].getElementsByTagName('JYUUTENNJYOUKENN');
		var JyuutennjyoukennValue = Jyuutennjyoukenn[0].firstChild.nodeValue;
		var Youki = item[i].getElementsByTagName('YOUKI');
		var YoukiValue = Youki[0].firstChild.nodeValue;
		
		var chk1 =chk2 = chk3 = false; 
		if (id == "result1") {
			if (isHit(ZairyouValue, key)) {
				chk1 = true;
			}
			if (result2.childNodes.length >=1) { 
				if (isHit(JyuutennjyoukennValue, result2.childNodes.item(0).value)) {
					chk2 = true;
				}
			} else {
				chk2 = true;
			}
			if (result3.childNodes.length >=1) { 
				if (isHit(YoukiValue, result3.childNodes.item(0).value)) {
					chk3 = true;
				}
			} else {
				chk3 = true;
			}
		}
		if (id == "result2") {
			if (result1.childNodes.length >=1) { 
				if (isHit(ZairyouValue, result1.childNodes.item(0).value)) {
					chk1 = true;
				}
			} else {
				chk1 = true;
			}
			if (isHit(JyuutennjyoukennValue, key)) {
				chk2 = true;
			}
			if (result3.childNodes.length >=1) { 
				if (isHit(YoukiValue, result3.childNodes.item(0).value)) {
					chk3 = true;
				}
			} else {
				chk3 = true;
			}
		}
		if (id == "result3") {
			if (result1.childNodes.length >=1) { 
				if (isHit(ZairyouValue, result1.childNodes.item(0).value)) {
					chk1 = true;
				}
			} else {
				chk1 = true;
			}
			if (result2.childNodes.length >=1) { 
				if (isHit(JyuutennjyoukennValue, result2.childNodes.item(0).value)) {
					chk2 = true;
				}
			} else {
				chk2 = true;
			}
			if (isHit(YoukiValue, key)) {
				chk3 = true;
			}
		}
		
		if ((chk1) && (chk2) && (chk3)) {
			return true;
		}
	}
	return false;
}
