﻿document.getElementsByClassName = function(clsName)
{
	var retVal = new Array();
	var elements = document.getElementsByTagName("*");
	for(var i = 0;i < elements.length;i++)
	{
		if(elements[i].className == clsName)
		{
			retVal.push(elements[i]);
		}
		else if(elements[i].className.indexOf(" ") >= 0)
		{
			var classes = elements[i].className.split(" ");
			for(var j = 0;j < classes.length;j++)
			{
				if(classes[j] == clsName)
				{
					retVal.push(elements[i]);
				}
			}
		}		
	}
	return retVal;
}

// Sets the opacity of the passed in element to the value of v
function OpacityTo(elm, v) {
    elm.style.opacity = v / 100;
    elm.style.MozOpacity = v / 100;
    elm.style.KhtmlOpacity = v / 100;
    elm.style.filter = " alpha(opacity =" + v + ")";
}

// Fades in the specified element using the specified delay
function FadeIn(elm, delay, callbk, out) {

    var _this = elm;
    _this.style.zoom = 1; // for ie, set haslayout
    _this.style.display = "block";
    for (i = 1; i <= 100; i++) {
        (function (j) {
            setTimeout(function () {
                if (out == true) j = 100 - j;
                OpacityTo(_this, j);
                if (j == 100 && callbk != undefined) {
                    callbk.call(_this);
                }
                else if (out == true) {
                    if (j == 0) {
                        if (callbk != undefined) {
                            callbk.call(_this);
                        }
                        else {
                            elm.style.display = "none";
                        }
                    }
                }
            }, j * delay / 100);

        })(i);
    }
}

// Fades out the specified element using the specified delay
function FadeOut(elm, delay, callbk) {
    FadeIn(elm, delay, callbk, true);
}

