// DSI_JQUERY.JS V2.1.0

function DSI_GetTextValue(object, name) {
	return unescape($(object).find(name).text());
}

function DSI_AjaxError(obj, status, exc) {
	alert("An error occured connecting to the server : " + status);
//	alert("Obj = " + obj);
//	alert("exc = " + exc);
}

function DSI_ClearTable(tableName) {
	var tableBody	= document.getElementById(tableName);
	while (tableBody.childNodes.length > 0) {
		tableBody.removeChild(tableBody.childNodes[0]);
	}
}

// Add a table row with zero or one "Click to select" column
// Note: only the first two arguments are directly referenced by name
// all other arguments are in the argument array
function DSI_AddTableRow(tableName, idx) {
	var row	= document.createElement("tr");
	for (var i = 2; i < arguments.length; i++) {
		var cell	= DSI_CreateCellWithText(arguments[i]);
		row.appendChild(cell);
	}
	if (idx != "") {
		var parts	= idx.split(":");
		var selText	= "Select";
		if (parts.length != 1) {
			selText	= parts[0];
			idx	= parts[1];
		}
		var textNode	= document.createTextNode(selText);
		var boldNode	= document.createElement("b");
		var sb		= document.createElement("span");
		sb.name		= idx;
		sb.onmouseup	= DSI_TableSel;
		sb.className	= "select";
		sb.width	= "100";
		var cell	= document.createElement("td");
		cell.align	= "center";
		boldNode.appendChild(textNode);
		sb.appendChild(boldNode);
		cell.appendChild(sb);
		row.appendChild(cell);
	}
	document.getElementById(tableName).appendChild(row);
}

// Add a table row with two "Click to select" columns
// Note: only the first three arguments are directly referenced by name
// all other arguments are in the argument array
function DSI_AddTableRow2(tableName, idx1, idx2) {
	var row	= document.createElement("tr");
	for (var i = 3; i < arguments.length; i++) {
		var cell	= DSI_CreateCellWithText(arguments[i]);
		row.appendChild(cell);
	}

	var parts	= idx1.split(":");
	var selText	= "Select";
	if (parts.length != 1) {
		selText	= parts[0];
		idx1	= parts[1];
	}
	var textNode	= document.createTextNode(selText);
	var boldNode	= document.createElement("b");
	var sb		= document.createElement("span");
	sb.name		= idx1;
	sb.onmouseup	= DSI_TableSel;
	sb.className	= "select";
	var cell	= document.createElement("td");
	cell.align	= "center";
	boldNode.appendChild(textNode);
	sb.appendChild(boldNode);
	cell.appendChild(sb);
	row.appendChild(cell);
	document.getElementById(tableName).appendChild(row);

	var parts	= idx2.split(":");
	var selText	= "Select";
	if (parts.length != 1) {
		selText	= parts[0];
		idx2	= parts[1];
	}
	var textNode	= document.createTextNode(selText);
	var boldNode	= document.createElement("b");
	var sb		= document.createElement("span");
	sb.name		= idx2;
	sb.onmouseup	= DSI_TableSel;
	sb.className	= "select";
	var cell	= document.createElement("td");
	cell.align	= "center";
	boldNode.appendChild(textNode);
	sb.appendChild(boldNode);
	cell.appendChild(sb);
	row.appendChild(cell);
	document.getElementById(tableName).appendChild(row);
}

function DSI_CreateCellWithText(text) {
	var cell	= document.createElement("td");
	var textNode	= document.createTextNode(text);
	cell.appendChild(textNode);
	return cell;
}

function DSI_LoadSelect(selectName, url, pars) {
	$.ajax({
		type:	"POST",
		url:	url, 
		data:	pars,
		success: function(xml) {DSI_LoadSelectResponse(xml, selectName)},
		error:	function(req, status, err) {DSI_AjaxError(req, status, err)}
	});
}

function DSI_LoadSelectResponse(xml, selectName) {
	var sel	= document.getElementById(selectName);
	while (sel.childNodes.length > 0) {
		sel.removeChild(sel.childNodes[0]);
	}

	var options	= $("option", xml);
	for (var i = 0; i < options.length; i++) {
		opt	= options[i];
		var newOpt	= document.createElement('option');
		newOpt.text 	= opt.getElementsByTagName("name")[0].firstChild.nodeValue;
		newOpt.value	= opt.getElementsByTagName("value")[0].firstChild.nodeValue;
		try {
			sel.add(newOpt, null); // all standard browsers
		}
		catch(ex) {
			sel.add(newOpt); // IE only
		}
	}
}

function DSI_XMLSelect(xml, selectName, selectValue) {
	var sel	= document.getElementById(selectName);
	while (sel.childNodes.length > 0) {
		sel.removeChild(sel.childNodes[0]);
	}

	var options	= $("option", xml);
	for (var i = 0; i < options.length; i++) {
		opt	= options[i];
		var textV 	= opt.getElementsByTagName("name")[0].firstChild.nodeValue;
		var valueV	= opt.getElementsByTagName("value")[0].firstChild.nodeValue;
		textV		= decodeURIComponent(textV);
		valueV		= decodeURIComponent(valueV);
		var selB	= false;
		if (valueV == selectValue) {
			selB = true;
		}
		var newOpt	= new Option(textV, valueV, selB, selB);

		try {
			sel.add(newOpt, null); // all standard browsers
		}
		catch(ex) {
			sel.add(newOpt); // IE only
		}
	}
}


