function DSI_GetTextValue(object, name) {
	return unescape($(object).find(name).text());
}

function DSI_AjaxError(obj, status, exc) {
	var message = "Ajax Error - " + status;
	if (arguments.length > 3) {
		message = messsage + "\nurl : " + arguments[3];
	}
	message	= message + "\nObj : " + obj + "\nexc : " + exc;
	alert(message);
}

function DSI_ClearTable(tableName) {
	var tableBody	= document.getElementById(tableName);
	while (tableBody.childNodes.length > 0) {
		tableBody.removeChild(tableBody.childNodes[0]);
	}
}

// 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);
	}
	var sb		= document.createElement("img");
	sb.src		= "images/btn_select.jpg";
	sb.name		= idx;
	sb.onmouseup	= DSI_TableSel;
	var cell	= document.createElement("td");
	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) {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
		}
	}
}

