// JavaScript Document
	function isNumber(s)
	{
		return s.replace(' ', '').search('^[0-9]+([\.][0-9]*)?$') == 0;
	}
	
	function createPriceTable(categoryXml, bShowHeading)
	{
		var k=0, j;
		var quant = $('Heading', categoryXml);
		var table  = '<table class="partsTable">';
		var headers = '<tr><th class="leftHeading"><span class="partName">' /*+ categoryXml.attr('name')*/ + '</span></th>';
		var headerMap = new Array();
		var parts;
		var line;
		
		if (bShowHeading == undefined) bShowHeading = true;
		
		if (bShowHeading)
			table += '<caption>' + categoryXml.attr('name') + '</caption>';
		
		for (k=0; k < quant.length; k++)
		{
			var sHdr = quant.eq(k).attr('name');
			headers += '<th>' + sHdr + '</th>';
			headerMap[sHdr] = k;
		}
		headers += '</tr>';
		table += headers;
		
		parts = $('Part', categoryXml);
		for (k=0; k < parts.length; k++)
		{
			var part = parts.eq(k);
			var items = $('Item', part);
			var cols = new Array();
			cols.length = quant.length;
			line = '<tr><th  class="leftHeading">' + part.attr('name') + '</th>';
			
			for (j =0; j < items.length; j++)
			{
				var item = items.eq(j);
				index = headerMap[item.attr('heading')];
				if (index !== undefined)
				{
					cols[index] = new Array();
					cols[index][0] = item.attr('price');
					cols[index][1] = item.attr('heading');
				}
			}
			for (j=0; j < cols.length; j++)
			{
				var idName;
				if (cols[j] === undefined) 
					line += '<td>-</td>';
				else if (!isNumber(cols[j][0]))
				{
					idName  = part.attr('id') + '_' + cols[j][1];
					line += '<td><span class="price" id="' + idName + '" name="' + idName + '" >' + cols[j][0] + '</span></td>';
				}
				else
				{
					idName  = part.attr('id') + '_' + cols[j][1];
					line += '<td><span class="price" id="' + idName + '" name="' + idName + '" >' + '$' + cols[j][0] + '</span></td>';
				}
			
				line += '</td>';
			}
			line += '</tr>';
			table += line;
		}
		
		table += '</table>';
		return table;
	}

	function createGenericTable(genericTable)
	{
		var k=0, j;
		var aHeadings = $('Heading', genericTable);
		var table  = '<table class="genericTable partsTable">';
		var headers = '<tr>';
		var aRows;
		var line;
		
		table += '<caption>' + genericTable.attr('name') + '</caption>';
		
		for (k=0; k < aHeadings.length; k++)
		{
			var sHdr = aHeadings.eq(k).attr('name');
			headers += '<th>' + sHdr + '</th>';
		}
		headers += '</tr>';
		table += headers;
		
		aRows = $('Row', genericTable);
		for (k=0; k < aRows.length; k++)
		{
			var row = aRows.eq(k);
			
			line = '<tr>';
			for (j=0; j < aHeadings.length; j++)
			{
				var sAttr = aHeadings.eq(j).attr('name').toLowerCase().replace(' ', '_');
				if (sAttr == 'price_each')
					line += '<td><span class="price"';
				else
					line += '<td><span ';
				
				line += ' id="' + row.attr('id') + '_' + sAttr  + '" >';
				
				if (sAttr == 'price_each')
					line += '$';
				line += row.attr(sAttr) 
				line += '</span></td>';
			}
			line += '</tr>';
			
			table += line;
		}
		
		table += '</table>';
		return table;
	}