// DSI_JQUERY.JS V2.3.0

function DSI_CheckStatus(xml) {
        var status      = decodeURIComponent($("status", xml).text())
        if (status != 'OK') {
                alert(decodeURIComponent($("message", xml).text()));
		if (typeof(dsi$timeouturl) != "undefined") {
        	        document.location       = dsi$timeouturl;
		} else {
			return;
		}
        }
}

function DSI_GetTextValue(object, name) {
	return unescape($(object).find(name).text());
}

// Get object in format and return formatted 
function DSI_GetPhoneValue(object, name) {
	var dsi$ph	= unescape($(object).find(name).text());
	if (dsi$ph == "") {
		return "";
	}
	return dsi$ph.slice(0,3) + "-" + dsi$ph.slice(3,6) 
		+ "-" + dsi$ph.slice(6,10)
}

function DSI_NumbersOnly(dsi$ph) {
	var dsi$ph1	= ""
	for (var i = 0; i < dsi$ph.length; i++) {
		var dsi$ch	= dsi$ph.substr(i,1);
		if (dsi$ch >= "0" && dsi$ch <= "9") {
			dsi$ph1	= dsi$ph1 + dsi$ch;
		}
	}
	return dsi$ph1;
}

// Get object in ccyymmdd format and return formatted mm/dd/ccyy
function DSI_GetDateValue(object, name) {
	var dsi$dt	= unescape($(object).find(name).text());
	if (dsi$dt == "") {
		return "";
	}
	return dsi$dt.slice(4,6) + "/" + dsi$dt.slice(6,8) 
		+ "/" + dsi$dt.slice(0,4)
}

// Strip formatting and return ccyymmdd
function DSI_DateEncode(dsi$dt) {
	if (dsi$dt == "") {
		return "";
	}
	dsi$wrk	= dsi$dt.split("/");
	dsi$mo	= dsi$wrk[0];
	dsi$day	= dsi$wrk[1];
	dsi$yr	= dsi$wrk[2] - 0;

	while (dsi$mo.length < 2) {dsi$mo	= "0" + dsi$mo;}
	while (dsi$day.length < 2) {dsi$day	= "0" + dsi$day;}
	if (dsi$yr < 1900) {
		var dsi$now	= new Date();
		var dsi$cy	= dsi$now.getFullYear() - 2000;
		if (dsi$yr > dsi$cy) {
			dsi$yr	= dsi$yr + 1900;
		} else {
			dsi$yr	= dsi$yr + 2000;
		}
	}

	return dsi$yr + dsi$mo + dsi$day
}

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 cell	= document.createElement("td");
		cell.align	= "center";
		var sb;
		if (typeof(dsi$selectbutton) != "undefined") {
			sb		= document.createElement("img");
			sb.src		= dsi$selectbutton;
		} else {
			var textNode	= document.createTextNode(selText);
			sb		= document.createElement("span");
			sb.width	= "100";
			sb.className	= "select";
			var boldNode	= document.createElement("b");
			boldNode.appendChild(textNode);
			sb.appendChild(boldNode);
		}
		sb.name		= idx;
		sb.onmouseup	= DSI_TableSel;
		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);
}

// 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
		}
	}
}

function DSI_LoadSelect7(selectName, url, pars, tag, name, value, o1, v1) {
	$.ajax({
		type:	"POST",
		url:	url, 
		data:	pars,
		success: function(xml) {
			DSI_LoadSelectResponse7(xml, selectName,
				tag, name, value, o1, v1)},
		error:	function(req, status, err) {DSI_AjaxError(req, status, err)}
	});
}

function DSI_LoadSelectResponse7(xml, selectName, tag, name, value, o1, v1) {
	if (typeof(dsi$timeouturl) != "undefined") {
		DSI_CheckStatus(xml);
	}
	var sel	= document.getElementById(selectName);
	while (sel.childNodes.length > 0) {
		sel.removeChild(sel.childNodes[0]);
	}

	if (o1 != "") {
		var newOpt	= document.createElement('option');
		newOpt.text 	= o1;
		newOpt.value	= v1;
		try {
			sel.add(newOpt, null); // all standard browsers
		}
		catch(ex) {
			sel.add(newOpt); // IE only
		}
	}

	var options	= $(tag, xml);
	for (var i = 0; i < options.length; i++) {
		opt	= options[i];
		var newOpt	= document.createElement('option');
		newOpt.text 	= unescape(opt.getElementsByTagName(name)[0].firstChild.nodeValue);
		newOpt.value	= unescape(opt.getElementsByTagName(value)[0].firstChild.nodeValue);
		try {
			sel.add(newOpt, null); // all standard browsers
		}
		catch(ex) {
			sel.add(newOpt); // IE only
		}
	}
}

