Event.observe(
              window,
              'load',
              function ()
              {
                // このウィンドウにフォーカス。
                window.focus();

                // ページ内リンクのスクロール補完。
                var _location_hash = getLocationHash();
                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]._form_to_submit = _forms[i_form];
                //             _submit_onclicks[j].onclick = function()
                //             {
                //               // alert('click');
                //               setTickets();
                //               this._form_to_submit.submit();
                //             };
                //           }
                //       }
                //
                //     _forms[i_form].onsubmit = function()
                //     {
                //       // alert('submit');
                //       setTickets();
                //     }
                //   }

                // 戻るボタンを設定。
                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++)
                  {
                    _show_button[j].onclick = function()
                    {
                      if ($(this.id + '_show_hide_box'))
                        {
                          Element.show(this.id + '_show_hide_box');
                          Element.scrollTo('CMS_content-' + this.id);
                        }
                    };
                  }
                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.title);
                //       for (var k = 0; k < _propagatee.length; k++)
                //         {
                //           // alert(_propagatee[k].checked);
                //           _propagatee[k].checked = this.checked;
                //         }
                //     };
                //   }

              }
             );

function getPosition(element)
{
  var _offset = Position.cumulativeOffset(element);

  return {x: _offset[0], y: _offset[1]};
}

// // cookie から特定の変数を取得する。
// function getVarFromCookie(var_name)
// {
//   var _pattern_match = new RegExp(var_name + '=([^;]+)','');
//   var _cookie_list = document.cookie.match(_pattern_match);
//
//   if (_cookie_list)
//     {
//       if (typeof(_cookie_list[1]) != 'undefined')
//         {
//           // alert(var_name + ': ' + _cookie_list[1]);
//           return _cookie_list[1];
//         }
//       else
//         {
//           return ;
//         }
//     }
// }
//
// // フォームにチケットを設定。
// function setTickets()
// {
//   var _tickets = document.getElementsByClassName('_ticket_');
//   var S_SID = getVarFromCookie('S_SID');
//
//   for (var i_ticket = 0; i_ticket < _tickets.length; i_ticket++)
//     {
//       _tickets[i_ticket].value = S_SID;
//     }
// }

function setLocationHash(query)
{
  var query;
  if (!query) { query = $('my_query-query').value; }

  if (query)
    {
      var query_encoded = encodeURI(query);
      document.location.hash = '#' + query_encoded;
    }
}

function getLocationHash()
{
  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]); }
}

