


function addEvent(elm, evType, fn, useCapture){
  if (elm.addEventListener) 
  {
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent) { 
    var r = elm.attachEvent('on' + evType, fn);
    return r;
  } else {
    elm['on' + evType] = fn;
  }
}

addEvent(window,'load',init,false); 

function init(){

	maxTagShow = 0;
	maxPossTagToShow = 100;
	minPossTagToShow = -30;
	
	if (document.getElementById('catHeader')){
		myCatHeader = document.getElementById('catHeader');
		newLinks = "<br /><a id=\"fewerTags\" href=\"\" onclick=\"return false\">&lt;show fewer tags&gt;</a> | <a id=\"moreTags\" href=\"\" onclick=\"return false\">&lt;show more tags&gt;</a> ";
		myCatHeader.innerHTML += newLinks;
		myfewerTags = document.getElementById('fewerTags');
		mymoreTags = document.getElementById('moreTags');
		addEvent(myfewerTags, 'click', showFewerTags, false);
		addEvent(mymoreTags, 'click', showMoreTags, false);
		aList = document.getElementsByTagName('span');
		var myRE = /cat[0-9]+/;
		var numberArray = new Array();
		if (aList.length > 0){
			for (b=0;b<aList.length;b++){
				if (aList[b].className.match(myRE)){
					var myNum = new Number(aList[b].className.slice(3));
					numberArray[myNum] = myNum;
				}
			}
		}
		maxPossTagToShow = numberArray.pop();
		minPossTagToShow = numberArray.shift();
	}
}

function showFewerTags(){
	maxTagShow += 1;
	if (maxTagShow > maxPossTagToShow){
		maxTagShow = maxPossTagToShow;
	}
	redrawTags();
}

function showMoreTags(){
	maxTagShow -= 1;
	if (maxTagShow < minPossTagToShow){
		maxTagShow = minPossTagToShow;
	}
	redrawTags();
}

function redrawTags(){
	aList = document.getElementsByTagName('span');
	var myRE = /cat[0-9]+/;
	if (aList.length > 0){
		for (b=0;b<aList.length;b++){		
			if (aList[b].className.match(myRE)){
				var myNum = new Number(aList[b].className.slice(3));
				if (myNum >= maxTagShow){
					aList[b].style.display = "inline";				
				} else {
					aList[b].style.display = "none";				
				}
			}
		}
	}
}