var origRows = 6;
var origCols = 3;
var origFieldSize = 5;

// create copy of oColOrder Java array in Javascript
var fieldNames = new Array();
var collection = new Array();

fieldNames[0] = "node_from";
fieldNames[1] = "node_to";
fieldNames[2] = "distance";

function changeVisibility(obj)
{
	var currStyle = document.getElementById(obj).style;
	currStyle.visibility = (currStyle.visibility == "hidden") ? "visible" : "hidden";
}

function changeDisplay(obj)
{
	var currStyle = document.getElementById(obj).style;
	currStyle.display = (currStyle.display == "none") ? "block" : "none";
}

function changeClass(obj,objClass)
{
	var currObj = document.getElementById(obj);
	currObj.className = ((objClass != "") && (objClass != null)) ? objClass : "";
}

function changeBackgroundColor(obj,objBgColor)
{
	var currObj = document.getElementById(obj).style;
	currObj.backgroundColor = objBgColor;
}

// CLEARS FORM ELEMENTS
function clearForm(formName)
{
	var obj = null;
	var field_options_cnt = 0;
	var field = "";
	var field_cnt = 0;
	
	obj = document.forms[0];
	field_cnt = obj.elements.length;
	
	//alert("Fields: " + field_cnt);
	for (var i=0; i<field_cnt; i++)
	{
		field = "";
		field = obj.elements[i];
			
		//alert("Element: " + field.type);
		switch (field.type)
		{
			case "text" : 
				field.value = "";
			break;
			case "select-one" : 
				//alert("Options: " + field.options.length);
				field.options[0].selected = true;
			break;
			case "select-multiple" : 
				//alert("Options: " + field.options.length);
				field.options[0].selected = true;
				field_options_cnt = field.options.length;
				for (var j=1; j<field_options_cnt; j++)
				{
					field.options[j].selected = false;
				}
			break;
			case "radio" :
				field.checked = false;
			break;
			case "checkbox" :
				field.checked = false;
			break;
		}
	}
	
	return;
}

// Returns form data to previous size
// if new rows were added/removed data would be returned
function resetForm()
{
	var tbody = document.getElementById("dataRows");
	
	if (tbody.rows.length > origRows)
	{
		while (tbody.rows.length > origRows)
		{
			removeRow();
		}
	}
	else if (tbody.rows.length < origRows)
	{
		while (tbody.rows.length < origRows)
		{
			 addRow();
		}
	}
}

function addRow()
{
	var tbody = document.getElementById("dataRows");
	// Get row number
	var nextNum = tbody.rows.length + 1;
	var fieldSize = 0;
	var field_name = ""
	var field_value = "";
	var field_focus = "";
	
	// Insert new row
	tr = tbody.insertRow(tbody.rows.length);
	
	// Append data to the end of dataRows
	td = tr.insertCell(tr.cells.length);
	td.setAttribute("align", "right");
	//td.setAttribute("class", "index");
	td.innerHTML = nextNum + ".";
	
	// Build text boxes for node assigments
	for (i=0; i<origCols; i++)
	{
		//fieldArray[i];
		// build input size based on value of array[i]
		td = tr.insertCell(tr.cells.length);
		td.setAttribute("align", "center");
		field_name = fieldNames[i] + "_" + (nextNum-1);
		
		//alert( "collection[" + (nextNum-1) + "][" + i + "]" );
		
		if ( nextNum-1 < collection.length ) {
			field_value = collection[nextNum-1][i];
		} else {
			field_value = "";
		}
		
       			td.innerHTML = '<input type="text" name="' + field_name + '" size="' + origFieldSize + '" value="' + field_value + '" />';
		//alert(field_name);
	}
	field_focus = fieldNames[0] + "_" + (nextNum-1);
	if (eval("document.forms[0]." + field_focus + ".value") == "")
	{
		eval("document.forms[0]." + field_focus + ".focus()");
	}
}
	
// Removes a row of form fields from a dynamic form
function removeRow()
{
	var tbody = document.getElementById("dataRows");
	//alert(tbody.rows.length);
	if (tbody.rows.length > 0)
	{
		tbody.deleteRow(tbody.rows.length-1);
	}
}

