function getElement(el) {
	if (typeof el == "object")
		return el
	return document.getElementById(el)
}
	
function inArray(haystack, needle) {
	for (var i=0 in haystack)
		if (haystack[i] == needle)
			return i
	return false
}

function hasClass(el, theClass) {
	return (inArray(el.className.split(" "), theClass) !== false)
}

function addClass(el, theClass) {
	var c=el.className.split(" ")
	var i=inArray(c, theClass)
	if (i === false) {
		c.push(theClass)
		el.className = c.join(" ")
		return true
	}
	return false
}

function removeClass(el, theClass) {
	if (el.className) {
		var c=el.className.split(" ")
		var i=inArray(c, theClass)
		if (i !== false) {
			c.splice(i, 1)
			el.className = c.join(" ")
			return true;
		}
	}
	return false
}

function replaceClass(el, oldClass, newClass) {
	if (el.className) {
		var c=el.className.split(" ")
		var i=inArray(c, oldClass)
		if (i !== false) {
			c[i] = newClass
			el.className = c.join(" ")
			return true
		}
	}
	return false
}

function swapClasses(el, class1, class2) {
	var c=el.className.split(" ")
	var i=inArray(c, class1)
	if (i !== false) {
		c[i] = class2
		el.className = c.join(" ")
		return true
	} else {
		i=inArray(c, class2)
		if (i !== false) {
			c[i] = class1
			el.className = c.join(" ")
			return true
		}
	}		
	return false	
}

function toggleClass(el, theClass) {
	var c=el.className.split(" ")
	var i=inArray(c, theClass)
	if (i === false) 
		c.push(theClass)
	else
		c.splice(i, 1)
	el.className = c.join(" ")
}

function getElementsByClass(theClass, tag, parent) {
	var els = new Array
	var e = (parent ? parent : document).getElementsByTagName(tag ? tag : "*")
	for (var i=0; i<e.length; i++) 
		if (hasClass(e[i], theClass))
			els.push(e[i])
	return els
}
