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) { myDataTable.getRecordSet().reset(); myDataTable.refreshView(); 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 }; var btnCompare = new YAHOO.widget.Button("compare",{disabled:true,id:"compareButton"}); btnCompare.on("click", function(e) { var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); var uri = "func=getCompareListData"; for (var i = compareCheckBoxes.length; i--; ) { if(compareCheckBoxes[i].checked == true){ uri = uri+';listingId='+compareCheckBoxes[i].value; } } this.myDataSource.sendRequest(uri,callback2); },this,true); var btnCompare2 = new YAHOO.widget.Button("compare2",{disabled:true,id:"compareButton2"}); btnCompare2.on("click", function(e) { var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); var uri = "func=getCompareListData"; for (var i = compareCheckBoxes.length; i--; ) { if(compareCheckBoxes[i].checked == true){ uri = uri+';listingId='+compareCheckBoxes[i].value; } } this.myDataSource.sendRequest(uri,callback2); },this,true); var btnSearch = new YAHOO.widget.Button("search"); btnSearch.on("click", function(e) { window.location.href = matrixUrl + '?func=search'; },this,true); window.compareFormButton = function() { var compareCheckBoxes = YAHOO.util.Dom.getElementsByClassName('compareCheckBox','input'); var checked = 0; for (var i = compareCheckBoxes.length; i--; ) { if(compareCheckBoxes[i].checked){ checked++; } } if (checked > 1 && checked < maxComparisons){ btnCompare.set("disabled",false); btnCompare2.set("disabled",false); }else{ btnCompare.set("disabled",true); btnCompare2.set("disabled",true); } } 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