text: // Highlighter script By Ilija Studen - http://ilija.biz/
  // Modified from Woofoo forms
  
  /*--------------------------------------------------------------------------*/
  
  //http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
  function getElementsByClassName(oElm, strTagName, strClassName){
  	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
  	var arrReturnElements = new Array();
  	strClassName = strClassName.replace(/\-/g, "\\-");
  	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  	var oElement;
  	for(var i=0; i<arrElements.length; i++){
  		oElement = arrElements[i];		
  		if(oRegExp.test(oElement.className)){
  			arrReturnElements.push(oElement);
  		}	
  	}
  	return (arrReturnElements)
  }
  
  //http://www.bigbold.com/snippets/posts/show/2630
  function addClassName(objElement, strClass, blnMayAlreadyExist){
     if ( objElement.className ){
        var arrList = objElement.className.split(' ');
        if ( blnMayAlreadyExist ){
           var strClassUpper = strClass.toUpperCase();
           for ( var i = 0; i < arrList.length; i++ ){
              if ( arrList[i].toUpperCase() == strClassUpper ){
                 arrList.splice(i, 1);
                 i--;
               }
             }
        }
        arrList[arrList.length] = strClass;
        objElement.className = arrList.join(' ');
     }
     else{  
        objElement.className = strClass;
        }
  }
  
  //http://www.bigbold.com/snippets/posts/show/2630
  function removeClassName(objElement, strClass){
     if ( objElement.className ){
        var arrList = objElement.className.split(' ');
        var strClassUpper = strClass.toUpperCase();
        for ( var i = 0; i < arrList.length; i++ ){
           if ( arrList[i].toUpperCase() == strClassUpper ){
              arrList.splice(i, 1);
              i--;
           }
        }
        objElement.className = arrList.join(' ');
     }
  }
  
  // Highlighter
  // Highlights the parent's parent of the focused form control (input, textarea, checkbox, select, radio)
  
  var Highlighter = window.Highlighter || {};
  
  Highlighter.settings = {
    'row_class'   : 'highlight_row',
    'field_class' : 'highlight_field',
    'focus_class' : 'focus'
  }
  
  Highlighter.init = function() {
    var fields = getElementsByClassName(document, '*', Highlighter.settings.field_class);
  	for(i = 0; i < fields.length; i++) {
  		if(fields[i].type == 'radio' || fields[i].type == 'checkbox' || fields[i].type == 'file') {
  			fields[i].onclick = function() {
  			  Highlighter.unhighlight();
  			  addClassName(this.parentNode.parentNode, "focused", true);
  			};
  			fields[i].onfocus = function() {
  			  Highlighter.unhighlight();
  			  addClassName(this.parentNode.parentNode, "focused", true);
  		  };
  		} else {
  			fields[i].onfocus = function() {
  			  Highlighter.unhighlight();
  			  addClassName(this.parentNode.parentNode, "focused", true);
  		  };
  			fields[i].onblur = function() {
  			  removeClassName(this.parentNode.parentNode, "focused");
        };
  		}
  	} 
  };
  
  Highlighter.unhighlight = function() {
    var fields = getElementsByClassName(document, '*', Highlighter.settings.field_class);
  	for(i = 0; i < fields.length; i++) {
  	  removeClassName(fields[i].parentNode.parentNode, "focused");
  	} 
  };