﻿function callback() {}
callback.prototype = {
  get_result: function(result) {
      var tags = result.split('_____');
      var p = $('pager');
      var r = $('result');

      p.innerHTML = tags[0];
      r.innerHTML = tags[1];
      //検索結果がなかったとき
      if ($('banners').innerHTML == '') {
          p.style.display = 'none';
          r.innerHTML = '<div id="error">商品が見つかりませんでした。</div>';
      }
      else {
          p.style.display = 'block';
      }
      r.style.display = 'block';
      bsObj.fix();
      location.hash = "#top";
  }
}

function BannerSearch() {}
BannerSearch.prototype = {

  //入力チェック
  validate: function(id) {
      //WS_ID設定ページのチェック
      if (id == 'ws_id') {
          if ($(id).value == '') {
              alert('WS_IDを入力してください。');
              return false;
          }
          if (!$(id).value.match(/^[a-zA-Z0-9]+$/)) {
              alert('WS_IDには、半角英数字を入力してください');
              return false;
          }
      }

      //検索時チェック
      if ((id == 'keyword' || id == 'keyword_hidden')
          && $(id).value == '') {
          alert('検索ワードを入力してください。');
          return false;
      }

      //ページ切り替え
      if (id == 'page-form') {
		if($(id) != null){
          if ($(id).value.match(/\./) || isNaN($(id).value)) {
              alert('ページ数は半角英数字を入力してください。');
              return false;
          }
		}
      }
      return true;
  },

  //ENTERを押されたら検索する
  check_key: function(evt, id) {
      evt = (evt) ? evt : event;
      var charCode = (evt.charCode) ? evt.charCode :
          ((evt.which) ? evt.which : evt.keyCode);
      if (Number(charCode) == 13 || Number(charCode) == 3) {
          //check_keyを呼び出した場所によって、ページとキーワードが変わる
          var page;
          if (id == 'keyword') {
              page = 1;
          }
          if (id == 'page-form') {
              page = $(id).value;
              id = 'keyword_hidden';
          }
          this.search(id, page);
          return false;
      }
  },

  //検索する
  search: function(keyword_id, page) {
      var atbanner = new get(new callback());
      var price;
      var row;

      //validate check
      if (!this.validate(keyword_id)) { return; }
      if (typeof($('page-form')) != 'undefined') {
          if (!this.validate('page-form')) { return; }
      }

      if (page != 1 && eval(page) > eval($('totalpage').value)) {
          alert('指定されたページが不正です。');
          return;
      }

      //search start
      $('result').style.display = 'none';
      $('whatsthis').style.display = 'none';
      $('setting-complete').style.display = 'none';

      $('keyword').value
        = $('keyword_hidden').value
        = $(keyword_id).value || $(keyword_id).text || $(keyword_id).innerText;

      if ($('banner_type').value == '2') {
          $('size').selectedIndex = 0;
      }

      var loading = $('HTML_AJAX_LOADING');
      loading.style.display = 'block';
      loading.innerHTML = '<img src="images/loading.gif" />';
      loading.style.textAlign = 'center';
      loading.style.width = '100%';
      loading.style.height = '3em';
      loading.style.paddingTop = '2em';

      price = typeof($(this.price)) == 'undefined' ? '' : $(this.price).value;
      row = typeof($(this.row)) == 'undefined' ? '' : $(this.row).value;

      atbanner.get_result($('ws_id').value,
                        $('banner_type').value,
                        $('sort').value,
                        $('size').value,
                        $('keyword').value,
                        row, page);
  },

  toggle_image: function(obj, i) {
      if (obj.style.display == 'none') {
          $('button-' + i).src = 'images/button-linkcode.gif';
      }
      else {
          $('button-' + i).src = 'images/button-closed.gif';
      }
  },

  //リンクコードを選択状態にする
  select_linkcode: function(id) {
      $(id).focus();
      $(id).select();
  },

  fix: function() {
      var r_elem = $('result');
      var w_elem = $('whatsthis');
      var s_elem = $('setting-complete');
      var setid  = $('setting-id').innerHTML || $('setting-id').text;

      if ($('HTML_AJAX_LOADING').style.display != 'block'
          && r_elem.innerHTML == '') {
          if (setid == '' || typeof(setid) == 'undefined') {
              w_elem.style.display = 'block';
              bsObj.fix_contents(w_elem);
          }
          else {
              s_elem.style.display = 'block';
              bsObj.fix_contents(s_elem);
          }
      }
      else {
          bsObj.fix_contents(r_elem);
      }
  },

  //コンテンツをFIXする
  fix_contents: function(e) {
      var bh = window.innerHeight || document.body.offsetHeight;
      var t_height = $('tabs').offsetHeight;
      var h_height = $('header').offsetHeight;
      var f_height = $('footer').offsetHeight;
      var c_top    = e.offsetTop;
      var c_height = bh - t_height - h_height - f_height - c_top - 20;

      if (browser.isIE()) { c_height -= 4; }
      e.style.height = c_height + 'px';
  }

};

var bsObj = new BannerSearch();

