function isSubSet(sub, sup){
 result = true;
 for(var i = 0; i < sub.length; i++){
 var j = 0;
  for(; j < sup.length && sub[i] != sup[j]; j++){
  }
  if(j == sup.length) return false;
 }
 return true;
}

function getByClass(l, c){
 var result = new Array;
 var subcset = c.split(" ");
 result.item = function(i){
  return result[i];
 };
 var cattr;
 var supcset;
 for(var i = 0; i < l.length; i++){
  if(l.item(i).className){
   supcset = l.item(i).className.split(" ");
   if(isSubSet(subcset, supcset)){
    result.push(l.item(i));
   }
  }
 }
 return result;
}

function illuminate(){
 var plist;
 if(document.getElementsByClassName){
  plist = document.getElementsByClassName("illum");
 }
 else{
  plist = getByClass(document.getElementsByTagName("*"), "illum");
 }
 var para;
 var text;
 var split;
 var span;
 for(var i = 0; i < plist.length; i++){
  para = plist.item(i);
  text = para.firstChild;
  while(text != null && text.nodeType != 3){
   text = text.nextSibling;
  }
  if(!text) continue;
  split = text.splitText(1);
  span = document.createElement("SPAN");
  span.className= "cap";
  span.appendChild(text);
  para.insertBefore(span, split)
 }
}
