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)
}

function insertAfter(parent, node, referenceNode) {
  parent.insertBefore(node, referenceNode.nextSibling);
}

/**
 * Borja Martín <bmartin@hola.com>
 */
style_forms = function(clazz, base) {
  
  var images = new Array();
  
  var isExplorer = isExplorer6();
  
  function render_input(clazz, input) {
    
    input.style.display = 'none';
    
    var img = document.createElement("img");
    
    var img_src = base + '/' + clazz + '_' + input.type + '.png'
    var img_src_checked = base + '/' + clazz + '_' + input.type + '_checked.png'
    
    img.src = img_src;
    img.className = clazz + '_' + input.type;
    
    var name = input.name;
    
    if (input.type == 'radio') {
      
      if (images[name] == undefined) {
        images[name] = new Array();
      }
      
      images[name].push(img);
      if (input.checked) {
        img.src = img_src_checked;
      }
    }
    
    if (input.checked) {
      set_filter(img, img_src_checked);
    } else{
        set_filter(img, img_src);
    }  
    
    
    input.parentNode.insertBefore(img, input);
    
    img.onclick = function() {
       
      
      if (input.type == 'checkbox') {
        
        if (isExplorer) {
          input.checked = !input.checked;
          selected = input.checked;
        } else {
          input.selected = !input.selected;
          selected = input.selected;
        }
      
      } else if (input.type == 'radio') {
        
        for (i = 0; i < images[name].length; i++) {
          images[name][i].src = img_src;
          set_filter(images[name][i], img_src);
        }
        
        input.checked = true;
        selected = true;
        
      }
      
      img_src_tmp = (selected)? img_src_checked : img_src;
      
      img.src = img_src_tmp;
      set_filter(img, img_src_tmp);  
    }
  }
  
  function set_filter(img, imgsrc) {
    
    if (img.runtimeStyle && isExplorer) {
      
      img.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader"
	          + "(src='" + imgsrc + "');"
	     
      img.src = '/pics/trans.gif';
    }
  }
  
  function isExplorer6() {
    
    var ua = navigator.userAgent;
    return (ua.indexOf('MSIE') > - 1);
  }
  
  
  var inputs = getElementsByClassName(document, 'input', clazz);
  
  for (i = 0; i < inputs.length; i++) {
    input = inputs[i];
    
    render_input(clazz, input);
  }
  
}
