
var hfShape; //global variable for HF model
//var xmlDoc;
var xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = false;
var diameter;

//xmlDoc= document.implementation.createDocument("","",null);
//xmlDoc.onload = doStuff;
//xmlDoc.load("hyperfun_sphere.xml");

importXML("hyperfun_sphere.xml");

function importXML(xml_file)
{
	if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = doStuff;
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) createTable()
		};
 	}
	else
	{
		alert('Your browser can\'t handle this script');
		return;
	}
	xmlDoc.load(xml_file);
}


function polygonizeButton(dropdown)
{
	var string = hfShape;
	var front = string.slice(0,string.search(/---param/i)+8);
	var back = string.slice(string.search(/---end param/i),string.length);
	var paramValues = "";
	
	var params = xmlDoc.getElementsByTagName("param");
	//NEED TO CHANGE NOT BY PARAM LENGHT BUT BY FORM LENGTH
		for (var i=0; i<params.length; i++){
		
		if (params[i].firstChild.nodeValue.match("dropdown")){
			var varName = params[i].getElementsByTagName("variable")[0].firstChild.nodeValue;
			var selectBox = document.forms[varName].selectname;
			var pulldownValue = selectBox.options[selectBox.selectedIndex].value;
			//alert(pulldownValue);
	        //var pulldownValue = document.form[i].selectname.options[document.form[i].selectname.selectedIndex].value;
	        paramValues += varName + "=" + pulldownValue + ";"+ "\n";
			//alert(paramValues);
		}
	}
	
	
	var all = front + "\n" + paramValues + "\n" + back;
	//alert(all);
	var embed = document.embeds[0];
	embed.setSource(all);
}


function polygonize(shape){
	//alert(shape);
	var embed = document.embeds[0];
	embed.setGrid(50,50,50);
	embed.setBoundingBox(-10.1,10.1,-10.1,10.1,-10.1,10.1);
	embed.setSource(shape);
}

function doStuff(){
	document.getElementById("paramater").innerHTML = '';
	//var xhf = xmlDoc.getElementsByTagName("xhf")[0].firstChild.nodeValue;
	hfShape = xmlDoc.getElementsByTagName("shape")[0].firstChild.nodeValue;
	polygonize(hfShape);

	var params = xmlDoc.getElementsByTagName("param");
	for (var i=0; i<params.length; i++){
		
		if (params[i].firstChild.nodeValue.match("xyz")){
			var name= params[i].getElementsByTagName("name")[0].firstChild.nodeValue;
			var minX= params[i].getElementsByTagName("minX")[0].firstChild.nodeValue;
			var maxX= params[i].getElementsByTagName("maxX")[0].firstChild.nodeValue;		
			var minY= params[i].getElementsByTagName("minY")[0].firstChild.nodeValue;
			var maxY= params[i].getElementsByTagName("maxY")[0].firstChild.nodeValue;
			var minZ= params[i].getElementsByTagName("minZ")[0].firstChild.nodeValue;
			var maxZ= params[i].getElementsByTagName("maxZ")[0].firstChild.nodeValue;
			
			//TEXTBOXES
			textboxes="<form name=\"xyzTextBox\"<input type=\"text\" name=\"box1\" value=\"\" size=\"15\"><br /><input type=\"text\" name=\"box2\" value=\"\" size=\"15\"><br /><input type=\"text\" name=\"box3\" value=\"\" size=\"15\"></form>";
			document.getElementById("textbox").innerHTML += textboxes;
			
		}
		
		if (params[i].firstChild.nodeValue.match("dropdown")){
			var paramName = params[i].getElementsByTagName("name")[0].firstChild.nodeValue;
			var varName = params[i].getElementsByTagName("variable")[0].firstChild.nodeValue;
			var defaultValue = params[i].getElementsByTagName("default")[0].firstChild.nodeValue;
			var min = params[i].getElementsByTagName("min")[0].firstChild.nodeValue;
			var max = params[i].getElementsByTagName("max")[0].firstChild.nodeValue;			
			var increm = params[i].getElementsByTagName("increm")[0].firstChild.nodeValue;
			
			//DROPDOWN
			var parahtml = "<div style=\"float:left; width:auto; margin-left:5px; margin-left:5px; margin-right:5px;\">";
			parahtml += paramName;
			parahtml += "<form style=\"align:right;\" name=\""+varName+"\"><select name=\"selectname\" SIZE=\"1\">";
			var dropValue = parseFloat(min);
			while (dropValue <= parseFloat(max)){
				if (dropValue == defaultValue){
					parahtml += "<option selected>" + dropValue +"</option>";
				}
				else{
					parahtml += "<option>" + dropValue +"</option>";
				}
				dropValue += parseFloat(increm);
			}
			parahtml += "</select></form></div>";

			//document.getElementById("paramater").innerHTML += paramName;
			document.getElementById("paramater").innerHTML += parahtml;
			
		}

	}
}



