var _min_max;

function get_position(element)
{
  var _top, _left, _position;

  if( void(0) != element.offsetTop )// op7+ ff1 ie5+
    {
      _top = element.offsetTop;
      _left = element.offsetLeft;
      while ( element = element.offsetParent )
        {
          _top += element.offsetTop;
          _left += element.offsetLeft;
        }
    }

  _position = {x: _left, y: _top};

  return _position;
}

function remove_other_subMenu(_category_number)
{
  var _subMenu = document.getElementsByClassName('menu','subMenu');
  for (var i0 = 1; i0 <= _subMenu.length; i0++)
    {
      if (
          $('adminCategory' + i0 + 'subMenu')
          && (i0 != _category_number)
          )
        { Element.remove('adminCategory' + i0 + 'subMenu'); }
    }
}

// second 秒で url へジャンプ。
function _top_refresh(url,second)
{
  if (!second) { second = 1; }
  setTimeout("window.top.location.href = '"+url+"';",(1000 * second));
}

// cookie から特定の変数を取得する。
function get_var_from_cookie(var_name)
{
  var _pattern_match = new RegExp(var_name + '=([^;]+)','');
  var _cookie_list = document.cookie.match(_pattern_match);

  if (_cookie_list)
    {
      if ('undefined' != typeof(_cookie_list[1]))
        {
          // alert(var_name + ':' + _cookie_list[1]);
          return _cookie_list[1];
        }
      else
        {
          return ;
        }
    }
}

// フォームにチケットを設定。
function set_tickets()
{
  var _tickets = document.getElementsByClassName('_ticket_');
  var S_SID = get_var_from_cookie('S_SID');
  var SID = get_var_from_cookie('SID');

  for (var i_ticket = 0; i_ticket < _tickets.length; i_ticket++)
    {
      _tickets[i_ticket].value = (S_SID) ? S_SID : SID;
    }
}

// location.hash を設定。
function set_location_hash(_string)
{
  document.location.hash = '#' + _string;
}

// location.hash を取得。
function get_location_hash()
{
  var _url_list = [];

  var _pattern_match = new RegExp('^([^#]+)(#([^#]+))?$','');
  _url_list = location.href.match(_pattern_match);

  if ('undefined' != typeof(_url_list[3]))
    { return decodeURI(_url_list[3]); }
  else
    { return false; }
}

Event.observe(
              window,
              'load',
              function ()
              {
                // このウィンドウにフォーカス。
                window.focus();

                // アクティブなメニューを設定。
                var _indexes;
                if ($('content')) { _indexes = ($('content').className.split(' '))[0].split('_'); }
                else { _indexes = [3,0]; }

                if (_indexes[0])
                  {
                    remove_other_subMenu(_indexes[0]);

                    // alert(_indexes.inspect());

                    if ($('mainMenu'+_indexes[0])) { $('mainMenu'+_indexes[0]).className += 'active'; }
                    if ($('subMenu'+_indexes[1])) { $('subMenu'+_indexes[1]).className += 'active'; }
                  }
                if ($('body')) { Element.show($('body')); }

                // ページ内リンクのスクロール補完。
                var _location_hash = get_location_hash();
                if (_location_hash)
                  {
                    if ($(_location_hash))
                      {
                        // alert(_location_hash);
                        Element.scrollTo(_location_hash);
                      }
                  }

                // フォームにチケットを設定。
                var _forms = document.forms;
                for (var i_form = 0; i_form < _forms.length; i_form++)
                  {
                    if (_forms[i_form].id)
                      {
                        var _submit_onclicks = document.getElementsByClassName(_forms[i_form].id);
                        for (var j = 0; j < _submit_onclicks.length; j++)
                          {
                            // _submit_onclicks[j].type = 'button';
                            _submit_onclicks[j]._form_to_submit = _forms[i_form];
                            _submit_onclicks[j].onclick = function()
                            {
                              // alert('click');
                              set_tickets();
                              this._form_to_submit.submit();
                            };
                          }
                      }

                    _forms[i_form].onsubmit = function()
                    {
                      // alert('submit');
                      set_tickets();
                    }
                  }

                // 戻るボタンを設定。
                var _backs = document.getElementsByClassName('back');
                for (var j = 0; j < _backs.length; j++)
                  {
                    _backs[j].onclick = function() { window.history.back(); };
                  }

                // 閉じるボタンを設定。
                if ($('close'))
                {
                  $('close').onclick = function() { window.close(); };
                }

                // 確認ダイアログ表示 / 非表示。
                var _show_button = document.getElementsByClassName('show_button');
                var _hide_button = document.getElementsByClassName('hide_button');
                for (var j = 0; j < _show_button.length; j++)
                  {
                    if ($(_show_button[j].id + '_show_hide_box'))
                      {
                        Element.hide(_show_button[j].id + '_show_hide_box');
                      }
                    _show_button[j].onclick = function()
                    {
                      if ($(this.id + '_show_hide_box'))
                        {
                          Element.show(this.id + '_show_hide_box');
                          Element.scrollTo(this.id + '_show_hide_box');
                        }
                    };
                  }
                for (var j = 0; j < _hide_button.length; j++)
                  {
                    _hide_button[j].onclick = function()
                    {
                      if ($(this.id + '_show_hide_box'))
                        {
                          Element.hide(this.id + '_show_hide_box');
                        }
                    };
                  }

                // トグルを設定。
                var _toggle_button = document.getElementsByClassName('toggle_button');
                for (var j = 0; j < _toggle_button.length; j++)
                  {
                    _toggle_button[j].onclick = function()
                    {
                      if($(this.id + '_toggle_box'))
                        {
                          Element.toggle(this.id + '_toggle_box');
                        }
                    };
                  }

                // プロパゲータを設定。( checked の値を、伝播させる)
                var _propagator = document.getElementsByClassName('propagator');
                for (var j = 0; j < _propagator.length; j++)
                  {
                    _propagator[j].onclick = function()
                    {
                      var _propagatee = document.getElementsByClassName(this.name);
                      for (var k = 0; k < _propagatee.length; k++)
                        {
                          // alert(_propagatee[k].checked);
                          _propagatee[k].checked = this.checked;
                        }
                    };
                  }

                // text utils 設定。
                var _text_utils = document.getElementsByClassName('text_utils');
                for (var j = 0; j < _text_utils.length; j++)
                  {
                    _text_utils[j].onclick = function()
                    {
                      window.open(
                                  './_text_utils.html',
                                  'text_utils',
                                  'width=450,height=450,menubar=no,toolbar=no,location=no,scrollbars=yes,resizable=yes'
                                  );
                    }
                  }

                // ログインIDのプロンプト。
                if ($('member-login_id_now'))
                  {
                    $('member-login_id_now').user_value = '';

                    $('member-login_id_now').onfocus = function()
                    {
                      this.value = this.user_value;
                    };
                    $('member-login_id_now').onblur = function()
                    {
                      this.user_value = this.value;
                    };
                  }

                // パスワードのプロンプト。および入力支援。
                var _field_password = document.getElementsByClassName('field_password');
                var _monitor = $A([]);
                var _dimension = $A([]);
                var _position = $A([]);
                for (var j = 0; j < _field_password.length; j++)
                  {
                    _monitor[j] = document.createElement('div');
                    _dimension[j] = Element.getDimensions(_field_password[j]);
                    _position[j] = get_position(_field_password[j]);
                    var _style =
                      {
                        display: 'none',
                        position: 'absolute',
                        left: _position[j].x + 'px',
                        top: (_position[j].y + _dimension[j].height) + 'px',
                        margin: '0',
                        padding: '0',
                        width: _dimension[j].width + 'px',
                        height: _dimension[j].height + 'px',
                        border: '1px #000000 solid',
                        fontFamily: 'monospace',
                        fontSize: '14px',
                        color: '#cccccc',
                        backgroundColor: '#e0ffe0',
                        verticalAlign: 'middle'
                      };
                    Element.setStyle(_monitor[j], _style);

                    document.body.appendChild(_monitor[j]);

                    _field_password[j]._password_monitor = _monitor[j];

                    _field_password[j].onfocus = function()
                    {
                      this._password_monitor.innerHTML = this.value;
                      this.select();
                      Element.show(this._password_monitor);
                    };
                    _field_password[j].onkeyup = function()
                    {
                      this._password_monitor.innerHTML = this.value;
                    };
                    _field_password[j].onblur = function()
                    {
                      Element.hide(this._password_monitor);
                    };
                  }

                // 住所のコピー。
                if ($('address_copy'))
                  {
                    $('address_copy').onclick = function()
                    {
                      $('member-zip_sub').value = $('member-zip').value;
                      $('member-address_sub_2').value = $('member-address_2').value;
                      $('member-address_sub_3').value = $('member-address_3').value;

                      var _address_1 = $('member-address_1');
                      var _address_sub_1 = $('member-address_sub_1');
                      var _selected_value = _address_1.options[_address_1.selectedIndex].value;
                      for (var i = 0; i < _address_sub_1.options.length; i++)
                        {
                          if (_address_sub_1.options[i].value == _selected_value)
                            {
                              _address_sub_1.options[i].selected = true;
                            }
                        }
                    }
                  }
              }
             );

// IE で (min|max)-(width|height)
if (navigator.userAgent.indexOf('MSIE') >= 0)
{
  Event.observe(
                window,
                'load',
                function ()
                {
                  _min_max = document.getElementsByClassName('min_max');
                  if (_min_max)
                    {
                      for (var j = 0; j < _min_max.length; j++)
                        {
                          _min_max[j]._height_original = _min_max[j].style.height;
                        }
                    }
                  _resize_min_max(_min_max);
                }
               );

  Event.observe(
                window,
                'resize',
                function() { _resize_min_max(_min_max); }
               );

  function _resize_min_max(_min_max)
  {
    if (_min_max)
      {
        for (var j = 0; j < _min_max.length; j++)
          {
            if ('undefined' != typeof(_min_max[j]._height_original))
              {
                if ('auto' != _min_max[j]._height_original)
                  {
                    // alert(_min_max[j]._height_original);
                    _min_max[j].style.height = _min_max[j]._height_original + 12;
                  }
              }

            var _height = Element.getHeight(_min_max[j]);

            if ($(_min_max[j].id + '_min'))
              {
                var _height_min = Element.getHeight(_min_max[j].id + '_min');
                if (_height < _height_min) { _min_max[j].style.height = _height_min; }
              }

            if ($(_min_max[j].id + '_max'))
              {
                var _height_max = Element.getHeight(_min_max[j].id + '_max');
                if (_height > _height_max) { _min_max[j].style.height = _height_max; }
              }
          }
      }
  }
}
