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;
}
