// -----------------------------------------------------------------------------
// mplot_driver.js --
// -----------------------------------------------------------------------------
var xmlDoc  = null;
var xmlFile = null;


function ImportXML(filename) {
	xmlFile = filename;
	ShowLoading();
	
	if (document.implementation && document.implementation.createDocument) {
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = PresetTable;
		xmlDoc.async  = false;
	} else if (window.ActiveXObject) {
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) PresetTable();
		}
 	} else {
		alert('Your browser can\'t handle this script');
		return;
	}
	xmlDoc.load(xmlFile);
	
	/*
	ShowLoading();
	
	try {
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.load(filename);
	   xmlDoc.onreadystatechange = PresetTable;
	}
	catch (Error) {
		try {
				xmlDoc = new ActiveXObject("MSXML2.XMLDOM");
				xmlDoc.load(filename);
	         xmlDoc.onreadystatechange = PresetTable;
			}
			catch (Error) {
			try {
					xmlDoc = document.implementation.createDocument("", "", null);
					xmlDoc.load(filename);
	            xmlDoc.onload = PresetTable;
		   }
		   catch (Error) {
				alert("Your browser can\'t handle this script");
				return;
			}
		}
	}
	*/
}

function PresetTable() {
	LoadModels(document.selection.producer.selectedIndex);
}

function ShowLoading() {
	document.getElementById("driver_div").innerHTML = "<div>Loading...</div>";
}

function HideLoading() {
	
}

function LoadModels(id) {
	var prod = xmlDoc.getElementsByTagName("Prod")[id];
	
	// Lade Datei im Mozilla nach
	if (prod == null) {
		xmlDoc.load(xmlFile);
		return;
	}
	
	// Wieviele Modelle sind vorhanden?
	for (var i = 0, models = 0; i < prod.childNodes.length; i++) {
	   node = prod.childNodes[i];
		if (node.nodeType == 3) continue;
		models++;
	}
	
	// Loesche bestehende Option-Liste
	for (var i = document.selection.model.options.length-1; i >= 0; i--) {
		document.selection.model.options[i] = null;
	}
	
	// Lšsche bestehende Option-Liste
	for (var i = 0, j = 0; i < prod.childNodes.length; i++) {
		node = prod.childNodes[i];
		
		if (node.nodeType == 3) continue;
		
		var label = node.getAttribute("lab");
		var emul  = node.getAttribute("emu");
		
		if (emul == "") {
			var text = label;
		} else {
			var text = label + "  (" + emul + ")";
		}
		document.selection.model.options[j] = new Option(text, j);
		j++;
	}
	ShowTable(0);
}

function ShowTable(id) {
	var prod_id = document.selection.producer.selectedIndex;
	var prod    = xmlDoc.getElementsByTagName("Prod")[prod_id];
	var model   = null;
	
	for (var i = 0, n = 0; i < prod.childNodes.length; i++) {
	   var node = prod.childNodes[i];
		if (node.nodeType == 3) continue;
		if (n++ != id)          continue;
		model = node; break;
	}
	
	if (model == null) {
		alert("Couldn\'t find model!");
		return;
	}
	
	var text = model.getAttribute("lab");
   var emul = model.getAttribute("emu");
	var str  = "";
	
	if (emul != "") {
		var driver = text + '  (' + emul + ')';
	} else {
		var driver = text;
	}
	var label1 = document.selection.parameter.value;
	var label2 = document.selection.options.value;
	var label3 = document.selection.index.value;
	
	str  = '<h3>' + driver + '</h3>';
	str += '<table class="rt-joomla-table" width="100%" border="0" cellpadding="3" cellspacing="0">';
	str += '<tr>';
	str += '<th align="left" width="150"><div>'+label1+'</div></td>';
	str += '<th align="left"><div>'+label2+'</div></td>';
	str += '<th align="left"><div>'+label3+'</div></td>';
	str += '</tr>';
	
	for (var j = 0; j < model.childNodes.length; j++) {
		var section = model.childNodes[j];
		
		if (section.nodeType == 3) continue;
			
		var id1 = section.getAttribute("id");
		var def = section.getAttribute("def");
		var lab = section.getAttribute("lab");
		var opt = "";
		var idx = "";
		
		str += '<tr class="odd">';
		str += '<td valign="top" nowrap="nowrap"><div>'+lab+'</div></td>';
		
		for (var k = 0; k < section.childNodes.length; k++) {
			var option = section.childNodes[k];
			
			if (option.nodeType == 3) continue;
				
			var id2 = option.getAttribute("id");
			var lab = option.getAttribute("lab");
			
			if (id2 == def) {
				opt += '<div class="driverdef">' + lab + '</div>';
				idx += '<div class="driverdef">' + id2 + '</div>';
			} else {
				opt += lab;
				idx += id2;
			}
			if (k < (section.childNodes.length-1) && id2 != def) {
				opt += '<br/>';
				idx += '<br/>';
			}
		}
		str += '<td valign="top"><div>'+opt+'</div></td>';
		str += '<td valign="top"><div>'+idx+'</div></td>';
		str += '</tr>';
	}
	str += '</table>';
	
	document.getElementById("driver_div").innerHTML = str;
}


