
function compCHAR_ASC( elem1, elem2 ) {
 if (elem1[sort_col] > elem2[sort_col]) { return 1 }
 if (elem1[sort_col] == elem2[sort_col]) { return 0 } else { return -1 }
}

function compCHAR_DESC( elem1, elem2 ) {
 return (compCHAR_ASC( elem2, elem1 ))
}

function compNUM_ASC( elem1, elem2 ) {
 if (parseFloat(elem1[sort_col]) > parseFloat(elem2[sort_col])) { return 1 }
 if (parseFloat(elem1[sort_col]) == parseFloat(elem2[sort_col])) { return 0 } else { return -1 }
}

function compNUM_DESC( elem1, elem2 ) {
 return (compNUM_ASC( elem2, elem1 ))
}

function STAT_sort( uniqueName, arIndex, datatype, order, srtSep, cellSep ) {
  var retval = "";
  var objName = 'obj' + uniqueName;
  var arName = 'ar' + uniqueName;
  var funcName = 'STATS_Show';
  var rownum = eval(arName).length;
  var row_string, sortFunc = "";
  sort_col = arIndex;

  var preSrtAr = new Array(rownum);
  var postSrtAr = new Array(rownum);
  var finalAr = new Array(rownum);
  var dummyAr = new Array();
  for (var i=0; i < rownum; i++) {
	dummyAr = eval(arName)[i].split(srtSep);
	preSrtAr[i] = new Array();
    preSrtAr[i] = dummyAr[1].split(cellSep);
	colnum = preSrtAr[i].length;
	preSrtAr[i][colnum] = dummyAr[0];
  }

  if (datatype == 'time') {
	sort_func = "compDATE_" + order 
	postSrtAr = preSrtAr.sort(eval(sort_func))
  } else if (datatype == 'number') {
    sort_func = "compNUM_" + order  
	postSrtAr = preSrtAr.sort(eval(sort_func))
  } else {
	sort_func = "compCHAR_" + order
	postSrtAr = preSrtAr.sort(eval(sort_func))
  }
  for (var i=0; i < rownum; i++) {
    row_string = postSrtAr[i][colnum] + srtSep;
    for (var j=0; j < colnum - 1; j++) {
	   row_string = row_string + postSrtAr[i][j] + cellSep;
	}
    finalAr[i] = row_string;	
  }

  if (document.layers) {
	var ilay_nme = 'iLay' + uniqueName;
	document.eval(ilay_nme).document.eval(uniqueName).document.write(eval(funcName)(uniqueName, eval(objName), finalAr, arIndex, order));
	document.eval(ilay_nme).document.eval(uniqueName).document.close();
  } else {
	  eval(uniqueName).innerHTML=eval(funcName)(uniqueName, eval(objName), finalAr, arIndex, order);
  }
}

//////////////////////
function STATS_Show ( divname, data_obj, data_ar, srt_col, srt_type ) { 
//jb: START
//var thisFilter1 = compConfigForm.compConfigArg1.options[compConfigForm.compConfigArg1.selectedIndex].value;
for (i=0; i < document.compConfigForm.compConfigArg1.length; i++) {
	if (document.compConfigForm.compConfigArg1[i].checked) {
		if (i == 1) {
			thisFilter1 = 'Dell';
		} else {
			thisFilter1 = 'Dell';
		}
	}
}
var thisFilter2 = document.compConfigForm.compConfigArg2.options[document.compConfigForm.compConfigArg2.selectedIndex].value;
var thisFilter3 = document.compConfigForm.compConfigArg3.options[document.compConfigForm.compConfigArg3.selectedIndex].value;
var thisFilter5 = document.compConfigForm.compConfigArg4.options[document.compConfigForm.compConfigArg4.selectedIndex].value;

//jb: END
var undefined; 
var tempar = new Array(); 
var tempfont = new Array(); 
var row_alt = 0; 
var retval = ""; 
var tempHTML = ""; 
var tempcolor = ""; 
tempar = data_obj.table.split('|'); 
if (tempar.length != 4) { tempar[0] = 0; tempar[1] = 0; tempar[2] = 0; tempar[3] = 0; } 
retval = '<table cellpadding="' + tempar[0] + '" cellspacing="' + tempar[1] + '" width="' + tempar[2] + '" border="' + tempar[3] + '">'; 
var hdr_cell = new Array(); 
var hdr_order = ""; 
tempHTML = ""; 
if (data_obj.sub_header != undefined) { 
  for (var i=0; i < data_obj.sub_header.length; i++) {
	tempar = data_obj.sub_header[i].split('|');
	sub_hdr_cell = tempar[0].split('!'); 
    tempHTML = tempHTML + "<td bgcolor='" + data_obj.def_sub_hdr_bgcolor + "' align='" + sub_hdr_cell[0] + "' colspan='" + sub_hdr_cell[1] + "'>"; 
    tempfont = data_obj.def_sub_hdr_desc.split('|');
    if (tempfont.length < 2) { tempfont[0] = 'Verdana,sans-serif';	tempfont[1] = 0;	tempfont[2] = 'black';	}
	tempHTML = tempHTML + '<font face="' + tempfont[0] + '" size="' + tempfont[1] + '" color="' + tempfont[2] + '"><b>' + tempar[1] + '</b></font>'; 
	tempHTML = tempHTML + "</td>"; 
  }
  retval = retval + "<tr><td colspan='2' bgcolor='" + data_obj.def_sub_hdr_bgcolor + "'><font size=1>&nbsp;</font></td>" + tempHTML + "<td width='1%' bgcolor='" + data_obj.def_sub_hdr_bgcolor + "'><font size=1>&nbsp;</font></td></tr>"; 
}
tempHTML = ""; 
for (var i=0; i < data_obj.header.length; i++) {
		tempar = data_obj.header[i].split('|');
		if (tempar[0] == 'string') { order = 'ASC'; } else { order = 'DESC'; }
		if ((srt_col == i) && (srt_type == 'ASC')) { order = 'DESC'; } 
		if ((srt_col == i) && (srt_type == 'DESC')) { order = 'ASC'; } 
if (tempar.length > 2) { 
	hdr_cell = tempar[1].split('!'); 
} else {
	hdr_cell[0] = 'middle';
	hdr_cell[1] = 1;
} 
if (srt_col == i) { 
	tempcolor = data_obj.sel_hdr_bgcolor; 
} else { 
	tempcolor = data_obj.def_hdr_bgcolor; 
} 
tempHTML = tempHTML + "<td bgcolor='" + tempcolor + "' align='" + hdr_cell[0] + "' colspan='" + hdr_cell[1] + "'>"; 
if (tempar[0]) { 
	tempHTML = tempHTML + "<a href=\"javascript:STAT_sort('" + divname + "', " + i + ", '" + tempar[0] + "', '" + order + "', '!', '|')\">"; 
} 
if (srt_col == i) { 
	tempfont = data_obj.sel_hdr_desc.split('|');
} else { 
	tempfont = data_obj.def_hdr_desc.split('|');
}  

if (tempfont.length < 2) { tempfont[0] = 'Verdana,sans-serif';	tempfont[1] = 0;	tempfont[2] = 'black';	}tempHTML = tempHTML + '<font face="' + tempfont[0] + '" size="' + tempfont[1] + '" color="' + tempfont[2] + '"><b>' + tempar[2] + '</b></font>'; 
if (tempar[0]) { 
	tempHTML = tempHTML + "</a>"; 
} 
	tempHTML = tempHTML + "</td>"; 
} 
// this makes the column headings
retval = retval + "<tr><td width='1%' bgcolor='" + data_obj.def_hdr_bgcolor + "'><font size=1>&nbsp;</font></td>" + tempHTML + "<td width='1%' bgcolor='" + data_obj.def_hdr_bgcolor + "'><font size=1>&nbsp;</font></td></tr>"; 

	var disp_ar = new Array();
	var srt_arr = new Array();
	var FoundStuff = "no";
	
	for (var i=0; i < eval(data_ar).length; i++) {
	    
	   // jb: START
	   //var sort_ar = new Array();
	   temparJB = eval(data_ar)[i].split("!");
	   sort_ar = temparJB[1].split("|");
	   // filter 1
	   var result1 = "all"
	   var filterPat1 = new RegExp(thisFilter1);
	   var searchString1 = sort_ar[1];
	   if (filterPat1 != "/all/") {
	   		var result1 = searchString1.match(filterPat1);
			if (result1 == null) {
				var result1 = "none";
			}
	   } else {
	   		var result1 = "all";
	   }
		
	   // filter 2
	   var result2 = "all"
	   var filterPat2 = thisFilter2;
	   var searchString2 = sort_ar[2];
	   if (filterPat2 != "all") {
			if (filterPat2 == 1) {
				if (searchString2 <=  2000) {
					var result2 = "1";
				} else {
					var result2 = "none";
				}
			} else if (filterPat2 == 2) {
				if (searchString2 >= 2000 && searchString2 <= 2500) {
					var result2 = "1";
				} else {
					var result2 = "none";
				}
			} else if (filterPat2 == 3) {
				if (searchString2 >= 2500) {
					var result2 = "1";
				} else {
					var result2 = "none";
				}
			}
	   } else {
	   		var result2 = "all";
	   }
	   
	   // filter 3
	   var result3 = "all"
	   var filterPat3 = thisFilter3;
	   var searchString3 = sort_ar[3];
	   if (filterPat3 != "all") {
			if (filterPat3 == 1) {
				if (searchString3 <=  1200) {
					var result3 = "1";
				} else {
					var result3 = "none";
				}
			} else if (filterPat3 == 2) {
				if (searchString3 >= 1200 && searchString3 <= 1700) {
					var result3 = "1";
				} else {
					var result3 = "none";
				}
			} else if (filterPat3 == 3) {
				if (searchString3 >= 1700) {
					var result3 = "1";
				} else {
					var result3 = "none";
				}
			}
	   } else {
	   		var result3 = "all";
	   }
	   
	   // filter 5
	   var result5 = "all"
	   var filterPat5 = new RegExp(thisFilter5);
	   var searchString5 = sort_ar[0];
		var result5 = searchString5.match(filterPat5);
		if (result5 == null) {
			var result5 = "none";
		}
		
	   // jb: END
	   if (result1 != "none" && result2 != "none" && result3 != "none" && result5 != "none") {
	   	   var resultsFound = 1;
			
		   if (row_alt) {
			 row_alt = 0;
			 tempcolor = data_obj.body_alt_rowcolor;
		   } else {
			 row_alt = 1;
			 tempcolor = data_obj.body_rowcolor;
		   }
	
		   tempar = eval(data_ar)[i].split("!");
		   disp_ar = tempar[0].split("|");
		   tempHTML = "";
		   for (var j=0; j < disp_ar.length; j++) {
			 tempar = data_obj.body_format[j].split('|');
			 if (data_obj.body_face == undefined) { data_obj.body_face = 'Verdana,Sans-serif'; }
			 if (tempar.length < 1) { tempar[0] = 'middle'; tempar[1] = '#000000'; tempar[2] = '1'; tempar[3] = ''; }
			 tempHTML = tempHTML + "<td align='" + tempar[0] + "'><font face='" + data_obj.body_face + "' size='" + tempar[2] + "' color='" + tempar[1] + "'>" + tempar[3] + disp_ar[j];
			 if (tempar[3] != "") { tempHTML = tempHTML + '</b>'; }
			 tempHTML = tempHTML + '</font></td>';
		   }

	   	   retval = retval + "<tr bgcolor='" + tempcolor + "'><td bgcolor='" + tempcolor + "'><font size=1>&nbsp;</font></td>" + tempHTML + "<td bgcolor='" + tempcolor + "'><font size=1>&nbsp;</font></td>" + "</tr>";
	   		var FoundStuff = "yes";
	   } else {
	   		var resultsFound = 0;
	   }
	} 
	
if (FoundStuff == "no") {
	retval = retval + '<tr bgcolor=ffffff><td colspan=2 bgcolor=ffffff><font size=2 face=verdana,sans-serif color=000000><br>Sorry. No results found. Try broadening your search.</font></td></tr>';
}
retval = retval + '</table>'; 

//retval = retval + 'youve selected '+thisFilter1+'<br>';
//retval = retval + 'youve selected '+thisFilter2+'<br>';
//retval = retval + 'searchString '+searchString+'<br>';
return retval; 
} 
////////////////////////////

