// Add indexOf to Array objects if it isn't already there
if ( !Array.indexOf )
{
    Array.prototype.indexOf = function ( val )
    {
        for ( var i = 0; i < this.length; i ++ )
        {
            if ( this[i] == val )
            {
                return i;
            }
        }
        return false;
    }
}

/* Thanks to Jonathan Snook (http://www.snook.ca/jonathan) and Robert Nyman (http://www.robertnyman.com) */
function getElementsByClassName ( oElm, strTagName, strClassName )
{
    var arrElements = ( strTagName == "*" && oElm.all ) ? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for ( var i=0; i<arrElements.length; i++ )
    {
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
                arrReturnElements.push(oElement);
        }   
    }

    return (arrReturnElements)
}

// Thanks to PPK!
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}