//Created 2/2007 - 5/2007 by Michael Croft for LDW Software
//Original portions Copyright (c) 2007, LDW Software
//This notice may not be removed.

function firstRealChild(parent) {
	var child = parent.firstChild;
	while (child && child.nodeType != 1) child = child.nextSibling;

	return child;
}

function nextRealSibling(el) {
	do el = el.nextSibling
	while (el && el.nodeType != 1);
	return el;
}

function assignTRValues(tbody, colnum) {

	var tr = firstRealChild(tbody);
	while (tr) {
		var td = firstRealChild(tr);
		var value, i;
		for(var i = 0; i < colnum; i++) {
			td = nextRealSibling(td);
			}
		tr.value = td.firstChild.data;
		tr = nextRealSibling(tr);
	}
}

function CheckNiceness(suspectword) {
try {
wordlist="fuck piss a$$ asshole bastard bitch boobs cocksucker crap cunt dammit damn dumbass f-ing goddam nigger pecker porn screw shithead bullshit slut slvt turd whore";
wordarray=wordlist.split(" ");
suspectword=suspectword.toLowerCase()
j=0;
Niceness=true
while (j< wordarray.length) {
if (suspectword.indexOf(wordarray[j]) != -1) {
	return false
	}
	j++;
}
}
catch (e) {
//window.alert ("Error:"+ e.description)
}
return true
}


function setup (table, maxDisplay) {

myTBody = document.getElementById(table).getElementsByTagName('TBODY')[0];
assignTROddEven(myTBody, maxDisplay);
EqualizeRanks(table);
}

function assignTROddEven(tbody, maxDisplay) {
	var tr = firstRealChild(tbody);
	var initialRows=tbody.rows.length;
	var odd = false;
	var i=0;
	var RowCount=0;
	while (i < initialRows) {
		var tdName = nextRealSibling(firstRealChild(tr)).innerHTML;
		if (CheckNiceness(tdName)) {
			RowCount++;
		} else {
		try {
			oldrow = tr.previousSibling;
			tbody.removeChild(tr);
			tr=oldrow;
			}
			catch(e) {
			window.alert(e.description);
			}

		}
		i++;
		tr = nextRealSibling(tr);
	}

	var tr = firstRealChild(tbody);
	var i = 0 ;
	while (tr) {
		var tdName = nextRealSibling(firstRealChild(tr)).innerHTML;
		tr.className = odd ? 'even' : 'odd';
		odd = !odd;
		if ((i >= maxDisplay) || (i >= RowCount)) tr.className = 'hideme';
		i++;
		tr = nextRealSibling(tr);
	}

	
}

function EqualizeRanks(table) {
	var thead = document.getElementById(table).getElementsByTagName('thead')[0];
	var tbody = document.getElementById(table).getElementsByTagName('TBODY')[0];
	var	colnum = document.getElementById("sortCol").innerHTML.valueOf();

	assignTRValues(tbody, colnum);
	var th = thead.getElementsByTagName('th')[colnum];
	
	var sortstatus=document.getElementById("sorttext");
	var sortresult = th.innerHTML;
	sortresult = sortresult.substring(sortresult.indexOf(">")+1,sortresult.indexOf("</"));
	sortresult = sortresult.replace(/<br>/," ");
	
	sortstatus.innerHTML=sortresult;
	
	var children = [];
	var Rowcount=tbody.rows.length;
	var el = firstRealChild(tbody);
	if (el) {
		var i = 0;

		while (el) {
			children[i] = new String(el['value']);
			children[i++].object = el;
			el = nextRealSibling(el);
		}
    	PriorSortProperty = "";
		for(i = 0; i < children.length; i++) {

           rank = i+1;
       	
        doit=true;
          // doit=false;
        if (doit) {
           //now try to put a bullet if the two are the same...
           MySortProperty  = children[i].object['value'];
        if (MySortProperty == PriorSortProperty ) {
           rank = "&bull;";
           } 
        PriorSortProperty = MySortProperty;
        } //do it!
           
	       firstRealChild(children[i].object).innerHTML="<strong>"+rank+"</strong>";
	       tbody.appendChild(children[i].object);
		}
	}
}