﻿function LocalGetElementById(elementId)
{
	if (document.getElementById)
	{
		return document.getElementById(elementId);
	}
	else if (document.all)
	{
		return document.all[elementId];
	}
	else return null;
}

function LocalGetElementByTagName(element, tagName)
{
	var elements = LocalGetElementsByTagName(element, tagName);
	if (elements && elements.length > 0)
	{
		return elements[0];
	}
	else return null;
}
function LocalGetElementsByTagName(element, tagName)
{
	if (element && tagName)
	{
		if (element.getElementsByTagName)
		{
			return element.getElementsByTagName(tagName);
		}
		if (element.all && element.all.tags)
		{
			return element.all.tags(tagName);
		}
	}
	return null;
}

function show( id ) {
    var elem = LocalGetElementById( id );
    if( supportsOpacity( elem )) {
        // first set 0% opacity to make it completely transparent
        setOpacity( elem, 0 );
        // when we set display = "block" it's still invisible
        elem.style.display = "block";
        // call the function to gradually increase opacity
        fadeIn( id );
    } else {
        // can't modify opacity, so just make it visible...
        elem.style.display = "block";
    }
}

function hide( id ) {
    var elem = LocalGetElementById( id );
    if( supportsOpacity( elem )) {
        // call the function to gradually increase opacity
        fadeOut( id );
    } else {
        // can't modify opacity, so just make it visible...
        elem.style.display="none";
    }

    //var elem = document.getElementById( id );
    //elem.style.display="none";
}

function supportsOpacity( el ) {
    if ( el.style.opacity != undefined )
        return true;
    if( el.style.MozOpacity != undefined )
        return true;

    if ( el.style.filter != undefined )
        return true;
    return false;
}

function setOpacity( el, opaciLevel ) {
    if ( el.style.opacity != undefined ) {
        el.style.opacity = opaciLevel;
    } else if( el.style.MozOpacity != undefined ) {
        el.style.MozOpacity = opaciLevel;
    } else if ( el.style.filter != undefined ) {
        var oplvl = Math.round(opaciLevel*100);
        el.style.filter="alpha(opacity=" + oplvl + ")";

    }
}

function fadeIn( id, currentOpacity ) {
    var counterLimit = 30;
    var el = LocalGetElementById( id );
    if( !currentOpacity ) {
        currentOpacity = 1;
    }
    if( currentOpacity > 20 ) {
        return;
    }
    setOpacity( el, ( currentOpacity/counterLimit ) );
    currentOpacity++;
    var func = "fadeIn( '" + id + "', " + currentOpacity + ")";
    window.setTimeout( func, 50);
}

function fadeOut( id, currentOpacity ) {
    var counterLimit = 30;
    var el = LocalGetElementById( id );
    if( !currentOpacity ) {
        currentOpacity = 20;
    }
    if( currentOpacity == 1 ) {
				el.style.display="none";
        return;
    }

    setOpacity( el, ( currentOpacity/counterLimit ) );
    currentOpacity--;
    var func = "fadeOut( '" + id + "', " + currentOpacity + ")";
    window.setTimeout( func, 50);
}
