/************************************************************/
/* Transmogrifier script (C)2004 Patrick H. Lauke aka redux */
/* Inspiration and challenge provided by Eric Meyer         */
/************************************************************/

/* addEvent handler for IE and other browsers */
function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
 if (elm.addEventListener){
   elm.addEventListener(evType, fn, useCapture);
   return true;
 } else if (elm.attachEvent){
   var r = elm.attachEvent("on"+evType, fn);
   return r;
 }
}  

function transmogrify() {
	elements = document.getElementsByTagName('h5');
	n_elements = elements.length;
	for (i = 0; i < n_elements; i++) {
		if (elements[i].parentNode.className=='entry_old') {
			var elementParent = elements[i].parentNode;
			elementParent.className='entry_hidden';
			var elementSubmenu = elementParent.getElementsByTagName('div');
			/* create a new unlinked A element */
			var newLink = document.createElement("A");
			/* assign an href attribute to the new A element
			this assumes that javascript-enabled browsers also handle javascript: URLs
			wanted to use addEvent here as well, and have a # as href, but can't add a
			 return false...so the activation of the menu would jump back to start... */
			newLink.href="javascript:trigger('"+elementParent.id+"')";
			/* create a new image */
			var newImage = document.createElement("IMG");
			/* assign a proper source and stuff to the new image */
			newImage.src = 'blog-collapsed.png';
			newImage.width = 9;
			newImage.height = 9;
			newImage.alt= 'expand blog entry';
			/* assign a new id to the new image element */
			newImage.id="switcher"+elementParent.id;
			/* add the image as a child of the new link */
			newLink.appendChild(newImage);	
			/* insert the new link and image in front of the original link */
			elementParent.insertBefore(newLink,elements[i]);
		}
	}
}

function trigger(blogEntry) {
	var target = document.getElementById('switcher'+blogEntry);
	var blogEntry = document.getElementById(blogEntry);
	/* kludge: wanted to test src, but IE and Opera expand src to have full domain name in front */
	if (target.getAttribute('alt')=='expand blog entry') {
		target.setAttribute('src','blog-expanded.png');
		target.setAttribute('alt','collapse blog entry');
		blogEntry.className='entry_old';
	} else {
		target.setAttribute('src','blog-collapsed.png');
		target.setAttribute('alt','expand blog entry');
		blogEntry.className='entry_hidden';
	}	
}

/* let's add the transmogrify function to the onload handler of the page */
addEvent (window,'load',transmogrify)