function jscss(a,t,c1,c2) {
  var o;
  
  if (typeof(t) == 'object') {
    o = t;
  }
  else {
    o = document.getElementById(t);
  }

  switch (a) {
    case 'swap':
      if (jscss('check',o,c1)) {
	  o.className = o.className.replace(new RegExp('\\b'+c1+'\\b'),c2);
      }
      else if (jscss('check',o,c2)) {
	  o.className = o.className.replace(new RegExp('\\b'+c2+'\\b'),c1);
      }
      else {
	  jscss('add',o,c1);
      }
      break;
    case 'add':
      if (!jscss('check',o,c1)) {
        o.className += o.className ? ' ' + c1 : c1;
      }
      break;
    case 'remove':
      var rep = o.className.match(' '+c1) ? ' ' + c1 : c1;
      o.className = o.className.replace(new RegExp('\\b' + rep + '\\b'), '');
      break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className);
      break;
  }
  return true;
}
