﻿nk.options_menu = {};

nk.options_menu.timeout = null;
nk.options_menu.current = null;

nk.options_menu.change = function(dest) {
  if (this.timeout) {
    clearTimeout(this.timeout);
    this.timeout = null;
  }
  if (this.current == dest) return;
  if (this.current) {
    nk.misc.remove_class(this.current, 'hover');
    var e = this.current.parentNode;
/*    if (e) {
      var divs = e.getElementsByTagName('DIV');
      for (var i=0; i < divs.length; ++i) {
        if (divs[i].className == 'options_button') {
          nk.misc.remove_class(divs[i], 'options_button_pushed');
        }
      }
    }*/
    if (this.current.style) {
      this.current.style.display = 'none';
    }
  }
  if (dest) {
    nk.misc.add_class(dest, 'hover');
/*    var e = dest.parentNode;
    if (e) {
      var divs = e.getElementsByTagName('DIV');
      for (var i=0; i < divs.length; ++i) {
        if (divs[i].className == 'options_button') {
          nk.misc.add_class(divs[i], 'options_button_pushed');
        }
      }
    }*/
    if (dest.style) {
      dest.style.display = 'block';
    }
  }
  this.current = dest;
};


nk.options_menu.toggle = function(id) {
  if (!nk.misc.dom) return true;
  var old = this.current;
  this.change(null);  
  var ul = document.getElementById(id);
  if (old == ul) return true;
  if (!ul || !ul.style) return true;
  this.change(ul);
  return false;
};

nk.options_menu.init = function() {
  var divs = document.getElementsByTagName('DIV');
  for(var i = 0; i < divs.length; ++i) {
    var div = divs[i];
    if (nk.misc.has_class(div, 'options_menu')) {    
      var uls = div.getElementsByTagName('UL');
      var x = null;
      for (var j = 0; j < uls.length; ++j) {
        var ul = uls[j];
        if (nk.misc.has_class(ul, 'options_list')) {
          if (!x) x=ul;
          if (ul && ul.style) {    
            ul.style.display = 'none';
          }
          nk.misc.add_event(ul, 'mouseover', function() {
            nk.options_menu.change(this);
          });

          nk.misc.add_event(ul, 'mouseout', function() {
            if (nk.options_menu.timeout) clearTimeout(nk.options_menu.timeout);
            nk.options_menu.timeout = setTimeout(function() { nk.options_menu.change(null); }, 500);
          });
        }
      }
       
      var btns = div.getElementsByTagName('DIV');
      for (var j = 0; j < btns.length; ++j) {
        var btn = btns[j];
        if (nk.misc.has_class(btn, 'options_button')) {
          nk.misc.add_event(btn, 'mouseover', function() {
            if (nk.options_menu.current == x) {
              nk.options_menu.change(x);
            }
          });
          nk.misc.add_event(btn, 'mouseout', function() {
            if (nk.options_menu.timeout) clearTimeout(nk.options_menu.timeout);
            nk.options_menu.timeout = setTimeout(function() { nk.options_menu.change(null); }, 500);
          });
           
        }
      }
    }  
   }
};

nk.misc.add_event(nk.misc, 'domready', nk.options_menu.init, true);
