/*
	tagcloud display
	www.jumpstation.co.uk 2007
*/
var req = null;
var reqDiv='';
var tagLevel=-1;

function doCloud(_reqDiv,_tagLevel) {
  reqDiv=_reqDiv;
  tagLevel=_tagLevel;
  tagfile='/flog/tagging/tagcloud_data.xml'
  loadXMLDoc( tagfile, parseFeed );
}

// called as status changes, waits until everything finished (readyState=4)
// if result is http OK (200) then parse over to parseFeed function
function processReqChange( handler ) {
  if (req.readyState == 4) {
    if (req.status == 200 ) {
      handler( req.responseXML ); 
    } else {
      document.getElementById("resultDiv").innerHTML='Failed to load tag cloud data,  um sorry.';
    }
  }
}

// get a valid XMLHTTP system and open the URL to the XML
function loadXMLDoc( url, handler ) {
  if(window.XMLHttpRequest) {
    try { req = new XMLHttpRequest(); } catch(e) { req = false; }
  }
  else if(window.ActiveXObject)
  {
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {
    	try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } }
  }
  if(req) {
    req.onreadystatechange = function() { processReqChange( handler ); };
    req.open("GET", url, true);
    req.send("");
  }
}

// take the loaded xml and pull the data out of it.
function parseFeed( dom ) {
    var tags = req.responseXML.getElementsByTagName( 'tag' );
    var linkStr='';;
    var nameStr='';
	var levelStr='';
	var resultStr='';
    for( var i=0; i < tags.length; i++ ) {
        var tag = tags[i];
        nameStr='';
        nameStr=tag.getAttribute('name');
        levelStr=tag.getAttribute('level');
        linkStr='<a href="/flog/tags.html?tag=' + nameStr + '">' + nameStr + '</a>';
		linkStr='<div class="tagLevel' + levelStr + '">' + linkStr + '</div> '; // this space is VERY important !
		if (parseInt(levelStr)>tagLevel) {
	        resultStr=resultStr+linkStr;
		}
    }
    document.getElementById(reqDiv).innerHTML=resultStr;
}
