/* event handler */
function addEventToObject(obj,evt,func) {
	var oldhandler = obj[evt];
	obj[evt] = (typeof obj[evt] != 'function') ? func : function(ev){oldhandler(ev);func(ev);};
}

/* preload images */
function preloadImages(imageArray) {
	var tempImages = new Array();
	for(var i=0;i<imageArray.length;i++){tempImages[i] = new Image();tempImages[i].src = imageArray[i];}
}

/* stop default action of an event */
function stopDefaultAction(ev) {
	if (!ev) ev = window.event;
	(ev.stopPropagation) ? ev.stopPropagation() : ev.cancelBubble = true;
	(ev.preventDefault) ? ev.preventDefault() : ev.returnValue = false;
	return false;
}

/* start an ajax request */
function ajaxRequest(url,func,obj) {
	if (window.XMLHttpRequest) {var req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {try {req = new ActiveXObject("Msxml2.XMLHTTP");}catch(e) {req = new ActiveXObject("Microsoft.XMLHTTP");}}
	if (func) {req.onreadystatechange = function() {func(req,obj);}}
	req.open('GET',url,true);
	req.setRequestHeader('X-Requested-With','XMLHttpRequest');
	req.setRequestHeader('If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT');
	req.send(null);
	return false;
}

/* cycle through a list of class names (usually used for css-fades) */
function cycleThroughClassNames(id,obj,objClass,start,i) {
	if (i > 0) {obj.className = objClass+i;i--;timeouts[id] = setTimeout(function(){cycleThroughClassNames(id,obj,objClass,start,i)},90);}
	else {clearTimeout(timeouts[id]);}
}

/* remove an element */
function removeElement(el) {       
	if (el.parentNode){el.parentNode.removeChild(el);}
}

/* insert content after an existing element */
function insertAfter(newElement,existingElement) {
	var parentElement = existingElement.parentNode;
	if(parentElement.lastChild == existingElement){return parentElement.appendChild(newElement);}
	else{return parentElement.insertBefore(newElement,existingElement.nextSibling);}
}


