/*
Table Sorting
Liran Oz - 27.12.2008
*/

function TableSort(_tarObject, _objName)
{
	var tarObj = _tarObject;
	var objName = _objName;
	var data = null;
	var trClass = null;
	var idx = -1;
	var topData = null;
	var bottomData = null;
	var dtBorder = false;		//date border between months
	this.addRow = function(trc)
	{
		if (data == null) {
			data = new Array();
			trClass = new Array();
		}
		idx++;
		data[idx] = new Array();
		trClass[idx] = trc;
	}

	this.addCol = function(cmpVal, renderVal, tdData)
	{
		var len = data[idx].length;
		data[idx][len] = new Array(cmpVal, renderVal, tdData);
	}

	this.orderBy = function(colNum, asc, asNumber, _border)
	{
		if (_border)
			dtBorder = true;
		else
			dtBorder = false;

		if (!asNumber)
			asNumber = false;

		if (data == null)
			return;
		if (colNum >= data[0].length)
			return;

		for (var i=0; i<data.length; i++) {
			for (var j=0; j<data.length-i-1; j++) {
				if (asc == true) {
					if ((asNumber == false && data[j][colNum][0] > data[j+1][colNum][0]) || (asNumber == true && parseInt(data[j][colNum][0]) > parseInt(data[j+1][colNum][0]))) {
						var t = data[j];
						data[j] = data[j+1];
						data[j+1] = t;

						var k = trClass[j];
						trClass[j] = trClass[j+1];
						trClass[j+1] = k;
					}
				}
				else {
					if ((asNumber == false && data[j][colNum][0] < data[j+1][colNum][0]) || (asNumber == true && parseInt(data[j][colNum][0]) < parseInt(data[j+1][colNum][0]))) {
						var t = data[j];
						data[j] = data[j+1];
						data[j+1] = t;

						var k = trClass[j];
						trClass[j] = trClass[j+1];
						trClass[j+1] = k;
					}
				}
			}
		}

		this.writeTable();
	}

	this.writeTable = function()
	{
		var tar = document.getElementById(tarObj);
		if (!tar)
			return;
		var html = topData;

		for (var i=0; i<data.length; i++) {
			//draw the border
			if (dtBorder && i > 0) {
				//get month

				var t = data[i-1][1][0].split('-');
				var pMonth = t[1];
				var t = data[i][1][0].split('-');
				var cMonth = t[1];

				if (pMonth != cMonth) {
					var totTD = data[i].length;
					html += '<tr><td colspan="' + totTD+ '" style="height: 2px;padding:0px; background-color:#e0e5e9;background-image: none !important; border: 0px;"></td></tr>';
				}

			}

			//class="' + trClass[i] + '"
			html += '<tr>';
			for (var j=0; j<data[i].length; j++) {
				html += '<td ' + data[i][j][2] + '>';
				html += data[i][j][1];
				html += '</td>';
			}
			html += '</tr><tr><td colspan="17" class="cruise_dots_hor"></td></tr>';

		}
		html += bottomData;

		tar.innerHTML = html;
	}

	this.addTopData = function(top)
	{
		topData = top;
	}

	this.addBottomData = function(bottom)
	{
		bottomData = bottom;
	}


}
