//inside of a switch statement looking at the layer name returned
case 'Subdivision':
tcell.innerHTML = "<span style='font-weight:bold'>Subdivision History (Name and Number, sorted most recent to oldest):</span>";
tcell.innerHTML += "<br> <span style='font-style:italic'>For reference only - not to be relied upon as a legal search of the property.</span><br>";
//need to loop thru all of the idResults that are sub history
//date, name, docname, annsubid
var featcount = 0;
while (idResults.layerName == 'Subdivision') {
featval = idResults.feature.attributes['SUBDATE'];
sortlist[featcount] = new Array(2);
sortlist[featcount][0] = new Date(featval).valueOf(); //get date in ms for sorting
sortlist[featcount][1] = "<a href='http://myserver/" + idResults.feature.attributes['LINK'] + "' target='_blank'>" + idResults.feature.attributes['NAME'] + " (" + idResults.feature.attributes['ID'] + ")</a><br>";
featcount += 1;
}
//sort descending
sortlist.sort(numbersort);
for (var z = 0, iz = featcount; z < iz; z++) {
tcell.innerHTML += sortlist[1];
}
break;
//after the switch statement...add the cell to a table row and add that to the table above an existing row
trow.appendChild(tcell);
dojo.byId('tblbody').insertBefore(trow,dojo.byId('rowSummary'));
// here's the basic function I used to sort numbers. note it's taking in arrays
function numbersort(a, b) {
//sort the 1st element in 2 arrays descending
//used to sort subs, agreements, PUD docs, etc...
return b[0] - a[0];
}
sortlist = [];
for (var i = 0, il = results.length; i < il; i++) {
result = results;
attribs = result.feature.attributes;
sortlist = new Array(2);
sortlist[0] = attribs.PIN; //which ever field you want to sort on
sortlist[1] = attribs;
}
sortlist.sort(numbersort);
//now run your existing for loop but at the top reset attribs = sortlist[1]
for (var i = 0, il = results.length; i < il; i++) {
attribs = sortlist[1];
if (attribs.Active === "N") {
s.push("<tr style=\"background-color:#F28282;\"><td nowrap><font size=2.5> " + attribs.Full_Address + "</font></td><td nowrap><font size=2.5>" + attribs.GIS_Key + "</font></td><td nowrap><font size=2.5>" + attribs.PIN + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Name + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Address + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_City + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_State + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_ZIP + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Date + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Update + "</font></td><td nowrap><font size=2.5>" + attribs.Occupant_Name + "</font></td><td nowrap><font size=2.5>" + attribs.Occ_Phone1 + "</font></td><td nowrap><font size=2.5>" + attribs.Occ_Phone2 + "</font></td><td nowrap><font size=2.5>" + attribs.Village + "</font></td><td nowrap><font size=2.5>" + attribs.Active + "</font></td></tr>");
}
else if (attribs.Village === "N") {
s.push("<tr style=\"background-color:#BDBDBD;\"><td nowrap><font size=2.5> " + attribs.Full_Address + "</font></td><td nowrap><font size=2.5>" + attribs.GIS_Key + "</font></td><td nowrap><font size=2.5>" + attribs.PIN + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Name + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Address + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_City + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_State + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_ZIP + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Date + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Update + "</font></td><td nowrap><font size=2.5>" + attribs.Occupant_Name + "</font></td><td nowrap><font size=2.5>" + attribs.Occ_Phone1 + "</font></td><td nowrap><font size=2.5>" + attribs.Occ_Phone2 + "</font></td><td nowrap><font size=2.5>" + attribs.Village + "</font></td><td nowrap><font size=2.5>" + attribs.Active + "</font></td></tr>");
}
else {
s.push("<tr><td nowrap><font size=2.5> " + attribs.Full_Address + "</font></td><td nowrap><font size=2.5>" + attribs.GIS_Key + "</font></td><td nowrap><font size=2.5>" + attribs.PIN + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Name + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Address + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_City + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_State + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_ZIP + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Date + "</font></td><td nowrap><font size=2.5>" + attribs.Owner_Update + "</font></td><td nowrap><font size=2.5>" + attribs.Occupant_Name + "</font></td><td nowrap><font size=2.5>" + attribs.Occ_Phone1 + "</font></td><td nowrap><font size=2.5>" + attribs.Occ_Phone2 + "</font></td><td nowrap><font size=2.5>" + attribs.Village + "</font></td><td nowrap><font size=2.5>" + attribs.Active + "</font></td></tr>");
}
}
//make new row & cell to add layer info to
trow = document.createElement('tr');
tcell = document.createElement('td');
//apply alternating style to the row - rowodd and roweven are classes in a CSS file with different background colors so the table has alternating row colors
//NOTE - IE has issues w/ setting class have to work around by using non-standard className
//see http://webbugtrack.blogspot.com/2007/08/bug-242-setattribute-doesnt-always-work.html
if (rowcount % 2 == 0) {
if (dojo.isIE) {trow.setAttribute("className","rowodd"); }
else { trow.setAttribute("class", "rowodd"); }
}
else {
if (dojo.isIE) { trow.setAttribute("className", "roweven"); }
else { trow.setAttribute("class", "roweven"); }
}
//use data from the featureset attributes to fill the innerHTML of the tcell here.....
//tcell.innerHTML = "name: " + attribs[NAME] ;
trow.appendChild(tcell);
//now append that row to a tablebody - in this case one that already exists..
dojo.byId('tblbody').appendChild(trow);
//example of inserting above the existing bottom row instead of appending..
//dojo.byId('tblbody').insertBefore(trow,dojo.byId('rowBtmRow'));
//increment rowstyle counter
rowcount += 1;