
    function setVal(objID,val) {
/* itt tortenik a select modositasa */
      var obj = document.getElementById(objID);
      obj.selectedIndex = val;
      if( in_array(objID, autoSelectID) )
      {
/* ha van auto select redirect: */
        _key = get_key( objID, autoSelectID );
        if(obj.options[obj.selectedIndex].value != 0)
          location.href = autoSelectHREF[_key]+obj.options[obj.selectedIndex].value;
      }
    }
    var globalSelectZIndex;
    var globalSelectInvertZIndex;
    var openedSelect;
    var clickedOn;
    var zIndexReg;
    zIndexReg = new Array();

    clickedOn = false;
    openedSelect = false;

/* for automatic select redirect */
    var autoSelectID;
    autoSelectID = new Array();
    var autoSelectHREF;
    autoSelectHREF = new Array();


    function selectReplacement(obj) {

    if(obj.className.indexOf('newSelect') == -1) return false;


      obj.className += ' replaced';
      var ul = document.createElement('ul');
      ul.className = 'selectReplacement';
      var opts = obj.options;
      var selectedOpt = (!obj.selectedIndex) ? 0 : obj.selectedIndex;

      var selectedText;
      for (var i=0; i<opts.length; i++) {
        var li = document.createElement('li');
        var txt = document.createTextNode(opts[i].text);
        li.appendChild(txt);
        li.selIndex = i;
        li.selectID = obj.id;
        li.onclick = function() {
          selectMe(this);
        };
        if (i == selectedOpt) {
          li.className = 'selected';
          selectedText = opts[i].text;
          li.onclick = function() {
            closeAllSelect();

/* scrollozzon-e*/
            if( !checkSelectPosition(this.parentNode) )
              {
                this.parentNode.className += ' selectOpen';
              } else {
                this.parentNode.className += ' selectOpenScroll';
                if ( this.parentNode.offsetHeight > 230 ){
                  this.parentNode.style.height = '230px';
                } else {
                  this.parentNode.style.height = this.parentNode.offsetHeight+'px';
                }

              }

/* felfele vagy lefele nyiljon */
            meret = ablakmeret();
            _diffHeight = eval(meret[1] - this.parentNode.parentNode.offsetTop);

            if( _diffHeight < this.parentNode.offsetHeight )
              {
                this.parentNode.parentNode.parentNode.parentNode.className += ' openUp';
                this.parentNode.parentNode.style.zIndex = eval(zIndexReg[this.parentNode.parentNode.id] * 10);
              }

            if(this.parentNode.parentNode.parentNode.parentNode.className.indexOf('openUp') > -1 )
              {
                _offsetTop = eval(-1 * this.parentNode.offsetHeight);
                _offsetTop = eval(_offsetTop - 20);
                this.parentNode.style.top = _offsetTop +'px';
            }



            selectCloser();
            _preDiv = this.parentNode.parentNode.getElementsByTagName('div');
            _preDiv[0].style.display = "block";
          // this.onclick = function() {
          //   selectMe(this);
          // };
          };
        }

        if (window.attachEvent) {
          li.onmouseover = function() {
            this.className += ' hover';
          };
          li.onmouseout = function() {
            this.className =
              this.className.replace(new RegExp(" hover\\b"), '');
          };
        }
        ul.appendChild(li);
      }





      /* offsetHeight offsetTop */

      obj.onfocus = function() {
        ul.className += ' selectFocused';
      };
      obj.onblur = function() {
        ul.className = 'selectReplacement';
        clearBody();
        openedSelect = false;//elmentjuk melyik van nyitva
      };



      /*obj.onchange = function() {
        var idx = this.selectedIndex;
        selectMe(ul.childNodes[idx]);
        obj.onchange;
      };*/

      /*obj.onkeypress = obj.onchange;*/

      var div = document.createElement('div');
      div.id = obj.id+'_replaced';
      div.className = 'selectField';

      meret = ablakmeret();
      _diffHeight = eval(meret[1] - obj.parentNode.offsetTop);

      if( _diffHeight < ul.offsetHeight )
        {

          obj.parentNode.className += ' openUp';
        }

      if(obj.parentNode.className.indexOf('openUp') > -1 )
        {

          div.style.zIndex = globalSelectInvertZIndex;
        } else {
          div.style.zIndex = globalSelectZIndex;
        }

      zIndexReg[obj.id+'_replaced'] = div.style.zIndex;



      div.appendChild(ul);

      var divBack = document.createElement('div');
      divBack.className = 'selectBack';
      divBack.appendChild(div);

      obj.parentNode.insertBefore(divBack,obj);

      var subDiv = document.createElement('div');
      subDiv.className = 'selectActual';

      _test = document.createTextNode(selectedText);
      subDiv.appendChild(_test);

      ul.parentNode.insertBefore(subDiv,ul);

    }

    function copySelectedActual(obj){
      var _sOpts = obj.parentNode.getElementsByTagName('li');
      var _sObj = obj.parentNode.parentNode;
      for (var i=0; i<_sOpts.length; i++) {
        if( _sOpts[i].className.indexOf('selected') > -1 )
        {
          _sObj.firstChild.removeChild(_sObj.firstChild.firstChild);
          _nTnode = document.createTextNode(_sOpts[i].firstChild.nodeValue);
          _sObj.firstChild.appendChild(_nTnode);
        }
      }
      clearBody();
    }

    function selectMe(obj) {
      _preDiv = obj.parentNode.parentNode.getElementsByTagName('div');
      _preDiv[0].style.display = "none";

      var lis = obj.parentNode.getElementsByTagName('li');
      for (var i=0; i<lis.length; i++) {
        if (lis[i] != obj) {
          lis[i].className='';
          lis[i].onclick = function() {
             selectMe(this);
          };
       } else {
          setVal(obj.selectID, obj.selIndex);
          obj.className='selected';
/* select becsukas */
          obj.parentNode.className =
            obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');

          if(obj.parentNode.className.indexOf('selectOpenScroll') > -1 )
              obj.parentNode.style.height = 'auto';

          obj.parentNode.className =
            obj.parentNode.className.replace(new RegExp(" selectOpenScroll\\b"), '');

          if(obj.parentNode.parentNode.parentNode.parentNode.className.indexOf('openUp') > -1 )
            {
              obj.parentNode.style.top = '0px';
              obj.parentNode.parentNode.style.zIndex = zIndexReg[obj.parentNode.parentNode.id];
            }

      //alert(obj.parentNode.parentNode.style.zIndex)
/* eddig */
           obj.onclick = function() {
            closeAllSelect();
            if(!checkSelectPosition(obj.parentNode))
              {
                obj.parentNode.className += ' selectOpen';

              } else {
                obj.parentNode.className += ' selectOpenScroll';
                if ( obj.parentNode.offsetHeight > 230 ){
                  obj.parentNode.style.height = '230px';
                } else {
                  obj.parentNode.style.height = this.parentNode.offsetHeight+'px';
                }
              }

/* felfele vagy lefele nyiljon */
            meret = ablakmeret();

            _diffHeight = eval(meret[1] - obj.parentNode.parentNode.offsetTop);

            //alert(obj.parentNode.parentNode.offsetTop +", "+obj.parentNode.offsetHeight)

            if( _diffHeight < obj.parentNode.offsetHeight )
              {
                if(obj.parentNode.parentNode.parentNode.parentNode.className.indexOf('openUp') == -1 )
                {
                  obj.parentNode.parentNode.parentNode.parentNode.className += ' openUp';

                }
                obj.parentNode.parentNode.style.zIndex = eval(zIndexReg[obj.parentNode.parentNode.id] * 10);

              } else {

                if(obj.parentNode.parentNode.parentNode.parentNode.className.indexOf('openUp') > -1 )
                {
                  obj.parentNode.parentNode.parentNode.parentNode.className = obj.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp(" openUp\\b"), '');

                  obj.parentNode.parentNode.style.zIndex = zIndexReg[obj.parentNode.parentNode.id];

                }
              }

  /* ha felfele nyilo */
            if(obj.parentNode.parentNode.parentNode.parentNode.className.indexOf('openUp') > -1 )
              {
                //obj.parentNode.parentNode.style.zIndex = eval(obj.parentNode.parentNode.style.zIndex * 100);

                _offsetTop = eval(-1 * obj.parentNode.offsetHeight);
                _offsetTop = eval(_offsetTop - 20);
                obj.parentNode.style.top = _offsetTop +'px';
              }

            selectCloser();
            _preDiv = obj.parentNode.parentNode.getElementsByTagName('div');
            _preDiv[0].style.display = "block";
           /* this.onclick = function()
              {
                selectMe(this);
              };*/
          };
        }
      }

      copySelectedActual(obj);
    }

    function checkSelectPosition(obj)
    {
      meret = ablakmeret();
      _diffHeight = eval(meret[1] - obj.offsetTop);
      if( _diffHeight < obj.offsetHeight )
        return false;

      return true;
    }



    function selectCloser() { setTimeout( closeSelect, 20); }

    function closeSelect()
    {
      _docBody = document.getElementsByTagName('body');
      _docBody[0].onclick = function() { closeAllSelect(); }
    }

    function closeAllSelect()
    {
        uls = document.getElementsByTagName('ul');
        for (var i=0; i<uls.length; i++) {

          uls[i].className =
            uls[i].className.replace(new RegExp(" selectOpen\\b"), '');

          if(uls[i].className.indexOf('selectOpenScroll') > -1 )
              uls[i].style.height = 'auto';

          uls[i].className =
            uls[i].className.replace(new RegExp(" selectOpenScroll\\b"), '');

          if(uls[i].parentNode.parentNode.parentNode.className.indexOf('openUp') > -1 )
            {
              //alert(uls[i].parentNode.style.zIndex)
              uls[i].parentNode.style.zIndex = zIndexReg[uls[i].parentNode.id];
             uls[i].style.top = '0px';
            }

        }

        clearBody();
    }

    function setVal(objID,val) {
/* itt tortenik a select modositasa */
      var obj = document.getElementById(objID);

      obj.selectedIndex = val;

/* ha van onchange esemeny, futtassuk le */
     if(obj.onchange)
       obj.onchange();

    }


    function in_array(_needle, _haystack)
    {
      for(var i=0; i<_haystack.length; i++)
      {
        if(_haystack[i] == _needle)
        {
          return true;
        }
      }
      return false;
    }


    function get_key(_needle, _haystack)
    {
      for(var i=0; i<_haystack.length; i++)
      {
        if(_haystack[i] == _needle)
        {
          //alert(i);
          return i;
        }
      }
      return false;
    }


    function setForm() {
      globalSelectZIndex = 10000;
      globalSelectInvertZIndex = 10000
      var s = document.getElementsByTagName('select');
      for (var i=0; i<s.length; i++) {
        selectReplacement(s[i]);
        /* ie bug workaround */
        globalSelectZIndex = globalSelectZIndex - 200;
        globalSelectInvertZIndex = globalSelectInvertZIndex + 200;
      }

      _docBody = document.getElementsByTagName('body');
      _docBody[0].onclick = function() {}
    }


    function clearBody(){
      _docBody = document.getElementsByTagName('body');
      _docBody[0].onclick = function() {}
    }

    function ablakmeret() {
      var szelesseg = 0, magassag = 0;
      if (typeof(window.innerWidth) == 'number') {
        //Nem-IE
        szelesseg = window.innerWidth;
        magassag = window.innerHeight;
      } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ 'szabványos' mód
        szelesseg = document.documentElement.clientWidth;
        magassag = document.documentElement.clientHeight;
      } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 kompatíbilis
        szelesseg = document.body.clientWidth;
        magassag = document.body.clientHeight;
      }
      return [szelesseg, magassag];
    }


    function offsetTest( objid )
    {
      if(document.getElementById(objid))
      {
        _obj = document.getElementById(objid);
        _uls = _obj.getElementsByTagName('ul');
        for (var i=0; i< _uls.length; i++)
        {
          if(_uls[i].className.indexOf('selectOpen') > -1)
          {
            alert(_uls[i].offsetHeight);
          }
        }
      }
    }

