// concept:

removeClass =
// removes className form object
 function ( obj , newClassName ) {
  if ( !obj || !newClassName ) {
    // 'wrong call'
  } else if ( ! obj.className ) {
    // 'class already clean'
  } else if ( obj.className == newClassName) {
    // remove...
  } else if ( obj.className.indexOf(newClassName) > -1 ) {
   // build the classRegExp
   if ( classRegExp.test ( obj.className ) ) {
    // --- remove, trim, whatewer ---
   } else {
    // strange, but possible
   }
  }
 }
;

// "optimised":

removeClass =
// remove class concept
 function ( obj , clasToRemove ) {
  if ( !obj || !clasToRemove ) {
   return // '(error) wrong call'
  }
  if ( ! obj.className ) {
   return // '(ok) obj has no className'
  }
  // 'normalize'(trim) className for sure here ?
  if ( obj.className == clasToRemove ) {
   obj.className = '';
   return // '(ok) removed. was the only className'
  }
  if ( obj.className.indexOf( clasToRemove ) < 0 ) {
   return // '(ok) obj className did not contain clasToRemove'
  }
  var classReg = new RegExp( '\\b' + clasToRemove + '\\b' , 'g' ) ;
  if ( classReg.test ( obj.className ) ) {
   obj.className =
    obj.className.replace( classReg , '' )
   // 'normalize'(trim) it here? (again?)
   //  .replace( classReg , ' ' )
   //  .replace( /\s+/g , ' ' )
   //  .replace( /^ | $/g , '' )
   ;
   return // '(ok) removed. wasn't the only class'
  }
  return // '(ok) classToRemove string is present but not as real className.'
 }
;

