This is the original XML implementation of the hack. This is just for reference and will not be updated
Code:
<!-- Begin AJAX Categories -->
<script type='text/javascript'>
//<![CDATA[
var gCat;
function getCat(cat) {
var url= '/feeds/posts/summary/-/' + cat + '?max-results=5';
var pars = '';
gCat = cat;
var myAjax = new Ajax.Request(
url,
{
method: 'get',
parameters: pars,
onComplete: showCat,
onFailure: showFail
});
showLoading('search-result');
}
function showCat(output){
var main = output.responseText;
main = main.replace('<img ','<img style=\"display:none\" ');
out = parseXMLFromString(main);
var xentry=out.getElementsByTagName("entry");
var xtitle, xcat, xcontent;
$('search-result').innerHTML="";
var meta = document.createElement('div');
meta.className="search-result-meta";
var link=document.createElement('a');
link.href="/feeds/posts/summary/-/"+gCat;
link.innerHTML = "<img src=\"http://i15.photobucket.com/albums/a355/deepakr/feed-icon.gif\" title=\"Subscribe to this category\" /> Subscribe To " + gCat;
meta.appendChild(link);
$('search-result').appendChild(meta);
for (var i=0;i<xentry.length;i++) {
xcat=xentry[i].getElementsByTagName("category");
xtitle = "";
xcontent = "";
catdisplay = "<div class=\"search-cat\"><span style=\"color:silver;\"> Sorted into:<\/span> ";
for (var j=0;j<xcat.length;j++) {
catdisplay = catdisplay + xcat[j].attributes[1].nodeValue;
if(j<xcat.length-1)
catdisplay = catdisplay + " , ";
}
xtitle=xentry[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
xcontent=xentry[i].getElementsByTagName("summary")[0].childNodes[0].nodeValue;
xlink=xentry[i].getElementsByTagName("link")[0].attributes[2].nodeValue;
if (xtitle != "") {
$('search-result').innerHTML = $('search-result').innerHTML + "<h3 class=\"search-title\"><a href=" + xlink + ">" + xtitle + "<\/a><\/h3";
$('search-result').innerHTML = $('search-result').innerHTML + xcontent + "...";
$('search-result').innerHTML = $('search-result').innerHTML + catdisplay + "<\/div>";
}
}
$('search-result').innerHTML = $('search-result').innerHTML + "<div class=\"search-close\" onclick=\"javascript:new Effect.Fade('search-result')\">Click to close<\/div>";
$('search-result').style.display="block";
new Effect.Highlight('search-result');
}
function showLoading(id) {
$(id).style.display="block";
$(id).innerHTML="<img src=\"http://i15.photobucket.com/albums/a355/deepakr/loading.gif\"><i>Loading...</i>";
}
function showFail(){
$('search-result').innerHTML="Sorry! The page cannot be loaded.";
$('search-result').style.display="block"
}
function hideCat() {
$('search-result').innerHTML="";
$('search-result').style.display="none";
}
function parseXMLFromString(text)
{
// code for IE
if (window.ActiveXObject)
{
var doc=new ActiveXObject("Microsoft.XMLDOM");
doc.async="false";
doc.loadXML(text);
}
// code for Mozilla, Firefox, Opera, etc.
else
{
var parser=new DOMParser();
var doc=parser.parseFromString(text,"text/xml");
}
// documentElement always represents the root node
var out=doc.documentElement;
return out;
}
//]]>
</script>
<!-- End AJAX Categories -->