function CanHaveClass__CssFriendlyAdapters(element)

{

    return ((element != null) && (element.className != null));

}



function HasAnyClass__CssFriendlyAdapters(element)

{

    return (CanHaveClass__CssFriendlyAdapters(element) && (element.className.length > 0));

}



function HasClass__CssFriendlyAdapters(element, specificClass)

{

    return (HasAnyClass__CssFriendlyAdapters(element) && (element.className.indexOf(specificClass) > -1));

}



function AddClass__CssFriendlyAdapters(element, classToAdd)

{

    if (HasAnyClass__CssFriendlyAdapters(element))

    {

        if (!HasClass__CssFriendlyAdapters(element, classToAdd))

        {

            element.className = element.className + " " + classToAdd;

        }

    }

    else if (CanHaveClass__CssFriendlyAdapters(element))

    {

        element.className = classToAdd;

    }

}



function AddClassUpward__CssFriendlyAdapters(startElement, stopParentClass, classToAdd)

{

    var elementOrParent = startElement;

    while ((elementOrParent != null) && (!HasClass__CssFriendlyAdapters(elementOrParent, topmostClass)))

    {

        AddClass__CssFriendlyAdapters(elementOrParent, classToAdd);

        elementOrParent = elementOrParent.parentNode;

    }    

}



function SwapClass__CssFriendlyAdapters(element, oldClass, newClass)

{

    if (HasAnyClass__CssFriendlyAdapters(element))

    {

        element.className = element.className.replace(new RegExp(oldClass, "gi"), newClass);

    }

}



function SwapOrAddClass__CssFriendlyAdapters(element, oldClass, newClass)

{

    if (HasClass__CssFriendlyAdapters(element, oldClass))

    {

        SwapClass__CssFriendlyAdapters(element, oldClass, newClass);

    }

    else

    {

        AddClass__CssFriendlyAdapters(element, newClass);

    }

}



function RemoveClass__CssFriendlyAdapters(element, classToRemove)

{

    SwapClass__CssFriendlyAdapters(element, classToRemove, "");

}



function RemoveClassUpward__CssFriendlyAdapters(startElement, stopParentClass, classToRemove)

{

    var elementOrParent = startElement;

    while ((elementOrParent != null) && (!HasClass__CssFriendlyAdapters(elementOrParent, topmostClass)))

    {

        RemoveClass__CssFriendlyAdapters(elementOrParent, classToRemove);

        elementOrParent = elementOrParent.parentNode;

    }    

}



function IsEnterKey()

{

    var retVal = false;

    var keycode = 0;

    if ((typeof(window.event) != "undefined") && (window.event != null))

    {

        keycode = window.event.keyCode;

    }

    else if ((typeof(e) != "undefined") && (e != null))

    {

        keycode = e.which;

    }

    if (keycode == 13)

    {

        retVal = true;

    }

    return retVal;

}