var oData=new Array();
var iSort=null;
function InitData(){
	var aTbls=document.getElementsByTagName("table");
	for(var i=0;i<aTbls.length;i++){if((aTbls[i].className).indexOf("dataGrid")!= -1){oData[oData.length]=new DataTable(aTbls[i],oData.length);}}
}
function DataTable(oTable, table_id){
	this.TableID = table_id;
	this.Table	= oTable;
	this.Rows	= new Array();
	this.Cols	= new Array();
	this.Extract = ExtractTableData;
	this.Sort	= SortData;
	this.Redraw	= RedrawTable;
	this.Extract();
	this.Redraw();
}
function ExtractTableData(){
	var oRows=this.Table.getElementsByTagName("tr");
	var oCols;
	for(var i=0;i<oRows.length;i++){
		if(i==0){
			oCols=oRows[i].getElementsByTagName("th");
			if(oCols.length==0){oCols=oRows[i].getElementsByTagName("td");}
			for(var j=0;j<oCols.length;j++){this.Cols[j]=oCols[j].innerHTML;}
		}else{
			oCols=oRows[i].getElementsByTagName("td");
			this.Rows[i-1]=new Array();
			for(var j=0;j<oCols.length;j++){this.Rows[i-1][j]=oCols[j].innerHTML; this.Rows[i-1][j+this.Cols.length]=(oCols[j].innerHTML).replace(/<\/?[^>]+(>|$)/g,"").toLowerCase();}
		}
	}
}	
function SortData(column){
	iSort=column+this.Cols.length;
	this.Rows.sort(SortByColumn);
	this.Redraw();
}
function SortByColumn(a,b){
	var x=a[iSort];
	var y=b[iSort];
	if(x-x==0){x=x-0;}
	if(y-y==0){y=y-0;}
	return ((x<y)?-1:((x>y)?1:0));
}
function RedrawTable(){
	var tx="<tbody>";var c;
	tx+="<tr>";
	for(var i=0;i<this.Cols.length;i++){tx+="<th><a href=\"javascript:oData["+this.TableID+"].Sort("+i+");\" title=\"Sort by "+this.Cols[i].replace(/<\/?[^>]+(>|$)/g,"")+"\">"+this.Cols[i]+"</a></th>";}
	tx+="</tr>";
	for(var j=0;j<this.Rows.length;j++){
		c=(j%2==0)?"even":"odd";
		tx+="<tr class=\""+c+"\">";
		for(var k=0;k<this.Cols.length;k++){tx+="<td>"+this.Rows[j][k]+"</td>";}
		tx+="</tr>\n";
	}
	tx+="</tbody>";
	this.Table.innerHTML=tx;
}
if(window.addEventListener){window.addEventListener("load",InitData,false);} else if(window.attachEvent){window.attachEvent("onload",InitData);}
