var selectStatus      = new Array();
var activeSelect      = null;

function selectToggle(selectBox, forceClose) {
  if( selectBox ) {

    var setSelectOverflow       = selectBox.style.overflow == 'visible' || forceClose == true ? 'hidden' : 'visible';

    selectBox.style.overflow    = setSelectOverflow;

    selectStatus[selectBox.id]  = setSelectOverflow == 'visible' ? 1 : 0;

    return true;

  }
  return false;
} // ! selectToggle()



function selectClose(activeSelect) {

  for(var thisSelect in selectStatus) {
    if( selectStatus[thisSelect] == 1 && thisSelect != activeSelect ) {
      selectToggle(document.getElementById(thisSelect), true);
    }
  }

  return true;

} // ! selectClose()



function selectThis(selectOption) {
  if( selectOption ) {
    var selectBoxID     = selectOption.parentNode.parentNode.parentNode.parentNode.parentNode.id;
    var selectMarkedID  = selectBoxID.replace('select-box-wrap', 'select-box-marked');

    var selectMarked    = document.getElementById(selectMarkedID);

    if( selectMarked ) {

      selectMarked.innerHTML = selectOption.innerHTML;

      selectClose();
      selectToggle(document.getElementById(selectBoxID), true);              

      var selectInputName   = selectBoxID.replace('select-box-wrap-', 'select_box_input_');

      document.forms['custom_select_' + selectInputName.replace('select_box_input_', '')].elements[selectInputName].value = selectOption.id;

      return true;

    }

  }
  return false;
} // ! selectThis()



function selectActive(selectID) {

  activeSelect = selectID;

  return true;

} // ! selectActive()



document.onmousedown = function() {

  selectClose(activeSelect);

  return true;

} // ! document.onmousedown()


