function hasC(elem, classname)
{
         return elem.className.match(new RegExp('(\\s|^)'+ classname+ '(\\s|$)'));
}

function addC(elem, classname)
{
        if (!this.hasC(elem, classname))
        elem.className+= ' ' + classname;
}

function remC(elem, classname)
{
         if (hasC(elem, classname))
         {
                var reg= new RegExp('(\\s|^)'+ classname+ '(\\s|$)');
                elem.className= elem.className.replace(reg, ' ');
         }
}

function mC(elem, classname)
{
    if (classname.indexOf('+')== 0)
         addC(elem, classname.substr(1));
    else
        if (classname.indexOf('-')== 0)
            remC(elem, classname.substr(1));
}
