YAHOO.util.Event.addListener(window, "load", function() { YAHOO.example.XHR_JSON = new function() { var Dom = YAHOO.util.Dom; var hideStickies = 0; this.formatStickied = function(elCell, oRecord, oColumn, sData) { if(!(oRecord.getData("fieldType") in {'category':'','lastUpdated':''})){ var innerHTML = ""; elCell.innerHTML = innerHTML; } }; this.formatColors = function(elCell, oRecord, oColumn, sData) { if(!(oRecord.getData("fieldType") in {'category':'','lastUpdated':''})){ var colorField = oColumn.key + "_compareColor"; var color = oRecord.getData(colorField); if(color){ Dom.setStyle(elCell.parentNode, "background-color", color); } elCell.innerHTML = sData; }else{ elCell.innerHTML = sData; } }; this.formatLabel = function(elCell, oRecord, oColumn, sData) { if(oRecord.getData("fieldType") == 'category'){ elCell.innerHTML = "" +sData + ""; }else{ elCell.innerHTML = sData; if(oRecord.getData("description")){ elCell.innerHTML = elCell.innerHTML + "
" + oRecord.getData("description") +"
"; } } }; YAHOO.widget.DataTable.Formatter.formatColors = this.formatColors; var myColumnDefs = [ {key:"stickied",formatter:this.formatStickied,label:""}, {key:"name",formatter:this.formatLabel,label:""} ]; this.myDataSource = new YAHOO.util.DataSource("?"); this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON; this.myDataSource.connXhrMode = "queueRequests"; this.myDataSource.responseSchema = { resultsList: "ResultSet.Result", fields: responseFields }; var uri = "func=getCompareListData"; for (var i = 0; i < listingIds.length; i++) { uri = uri+';listingId='+listingIds[i]; } var initAttributeHoverHelp = function() { initHoverHelp('compareList'); } var myDataTable = new YAHOO.widget.DataTable("compareList", myColumnDefs, this.myDataSource, {initialRequest:uri}); myDataTable.subscribe("initEvent", initAttributeHoverHelp); window.removeListing = function(key) { myDataTable.hideColumn(myDataTable.removeColumn(key)); } this.myDataSource.doBeforeParseData = function (oRequest, oFullResponse) { this.responseSchema.fields = oFullResponse.ResponseFields; var existingColumns = myDataTable.getColumnSet().keys; for (var i = 0; i < existingColumns.length; i++) { if(i > 1){ // after deleting a column the next column will // allways be no. 2 (the third in the array) myDataTable.removeColumn(existingColumns[2]); } } if (oFullResponse.ColumnDefs) { var len = oFullResponse.ColumnDefs.length; for (var i = 0; i < len; i++) { var c = oFullResponse.ColumnDefs[i]; oFullResponse.ColumnDefs[i].label = "" + oFullResponse.ColumnDefs[i].label + " " myDataTable.insertColumn(c); } } return oFullResponse; } var myCallback = function() { this.set("sortedBy", null); this.onDataReturnAppendRows.apply(this,arguments); initHoverHelp('compareList'); }; var callback2 = { success : myCallback, failure : myCallback, scope : myDataTable }; if(document.getElementById("compare3")){ var btnCompare3 = new YAHOO.widget.Button("compare3",{id:"compareButton3"}); btnCompare3.on("click", function(e) { var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); var checked = 0; var checkedCompareBoxes = new Object(); for (var i = compareCheckBoxes.length; i--; ) { if(compareCheckBoxes[i].checked){ checked++; checkedCompareBoxes[compareCheckBoxes[i].value] = true; } } if (checked < 2){ alert(tooFewMessage); }else if (checked > maxComparisons){ alert(tooManyMessage); }else{ //window.document.forms['doCompare'].submit(); var uri = "func=getCompareListData"; for (var i = compareCheckBoxes.length; i--; ) { if(compareCheckBoxes[i].checked == true){ uri = uri+';listingId='+compareCheckBoxes[i].value; } } myDataTable.getRecordSet().reset(); myDataTable.refreshView(); myDataTable.showTableMessage('Loading...'); this.myDataSource.sendRequest(uri,callback2); } },this,true); } if(document.getElementById("stickied")){ var btnStickied = new YAHOO.widget.Button("stickied"); btnStickied.on("click", function(e) { var elements = myDataTable.getRecordSet().getRecords(); if(hideStickies == 0){ // hide non-selected attributes for(i=0; i