function convertSelects(target, buttonText) {
  var elms;
  if (typeof target === 'object') {
    elms = target;
  } else {
    elms = document.getElementsByTagName('select');
  }
  if (typeof target !== 'string') {
    target = '';
  }
  for (var i = 0, length = elms.length; i < length; i++) {
    if (elms[i].options.length === 0 || (target !== '' && !new RegExp('\\b' + target + '\\b', 'i').test(elms[i].className))) {
      continue;
    }
    (function(){
      var container = document.createElement('div'), selected = document.createElement('div'), list = document.createElement('ul'), toggle = document.createElement('button');
      
      container.className = elms[i].className + ' select';
      
      selected.className = 'current';
      selected.appendChild(document.createTextNode((elms[i].options[0].childNodes.length && elms[i].options[0].childNodes[0].nodeType === 3) ? elms[i].options[0].childNodes[0].nodeValue : ''));
      
	  list.id = 'listCourses';
      list.style.display = 'none';
      
      for (var j = 0, listLength = elms[i].options.length; j < listLength; j++) {
        if (elms[i].options[j].childNodes.length && elms[i].options[j].childNodes[0].nodeType === 3) {
          var li = document.createElement('li');
          li.appendChild(document.createTextNode(elms[i].options[j].childNodes[0].nodeValue));
          li.className = (elms[i].selectedIndex === j) ? 'current' : '';
          li.onclick = function(select, li, index){
            return function(){
              select.selectedIndex = index;
  
              if (document.createEvent) {
                var evObj = document.createEvent('HTMLEvents');
                evObj.initEvent('change', true, false);
                select.dispatchEvent(evObj);
              } else if (document.createEventObject) {
                select.fireEvent('onchange');
              }
  
              var elms = list.getElementsByTagName('li');
              for (var i = 0, length = elms.length; i < length; i++) {
                elms[i].className = '';
              }
              li.className = 'current';
              selected.childNodes[0].nodeValue = li.childNodes[0].nodeValue;
              container.className = container.className.replace(/\bexpanded\b/, '');
              list.style.display = 'none';
            };
          }(elms[i], li, j);
          list.appendChild(li);
        }
      }
      
      toggle.setAttribute('type', 'button');
      selected.onclick = toggle.onclick = function(){
        if (list.style.display === 'none') {
          container.className += ' expanded';
		  container.id = 'expanded';
          list.style.display = 'block';
        }
        else {
          container.className = container.className.replace(/\bexpanded\b/, '');
          list.style.display = 'none';
        }
      };
      toggle.appendChild(document.createTextNode(buttonText === undefined ? 'Välj' : buttonText));
      container.appendChild(selected);
      container.appendChild(list);
      container.appendChild(toggle);
      
      elms[i].parentNode.insertBefore(container, elms[i]);
      container.appendChild(elms[i]);
      
      elms[i].style.display = 'none';
    })();
  }
}