//C00401.js

//C00401
C00401  = function()  {
  var SEARCHTEXTLENGTH_MAX  = 100;  //検索文字列最大値
  var ie6_        = false;
  var showDetail_ = false;

  //ブラウザバージョン確認
  if( BrowserVer!=undefined ) {
    if( BrowserVer.isIE && !BrowserVer.isOverIE7 )  {
      //alert( 'IE6!' );
      ie6_  = true;
    }
  }

  //selectのリセット
  function resetSelect( obj, no ) {
    if( no==undefined || no<0 || obj.options.length <= no ) {
      no  = 0;
    }
    obj.selectedIndex = no;
    if( ie6_ )  {
      obj.options[ no ].selected = true;
    }
  }

  //文字列の長さを調べる
  function checkSearchLength( id, setFunc, alertMess ) {
    var len = $( id ).value.length;
    if( len>SEARCHTEXTLENGTH_MAX )  {
      $( id ).value = $( id ).value.substr( 0, SEARCHTEXTLENGTH_MAX );
      alert( alertMess );
      return  false;
    }
    if( len!=0 )  {
      setFunc();
    }
    return  true;
  }
  //日付の入力確認
  var _dateRe1  = new RegExp( '^\\s*$' );
  var _dateRe2  = new RegExp( '^\\s*\\d\\d\\d\\d\\/\\d\\d\\/\\d\\d\\s*$' );
  function checkDateInput( id, setFunc, alertMess ) {
    var date  = $( id ).value;
    if( 0==date.length ) return true;
    if( null!=date.match( _dateRe1 ) ) return  true;
    if( null!=date.match( _dateRe2 ) )  {
      setFunc();
      return  true;
    }
    $( id ).value = '';
    alert( alertMess );
    return  false;
  }


  //------------------------------------------------

  return  {
    //カテゴリ初期値
    ValCategory:  { up: 0, low: 0 },
    //場所初期値
    ValPlace:     { up: 0, low: 0 },
    //フォーム初期化
    InitFormData: null,

    //セレクトを選択
    SetSelectItem: function( id, no ) {
      resetSelect( $( id ), no );
    },

    //フォームクリア
    FormClear:  function () {
      //検索ワード
      $( 'SWord' ).value      = '';
      //検索チェック
      $( 'STTitle' ).checked  = true;
      $( 'STTag' ).checked    = true;
      //カテゴリ
      CAPsList.ResetCategory( 'Category0UP0', 'Category00' );
      //場所
      CAPsList.ResetPlace( 'Place0UP0', 'Place00' );
      //IMGType
      $( 'IMGType0' ).checked = true;
      $( 'IMGType1' ).checked = false;
      $( 'IMGType2' ).checked = false;
      //FNumber
      resetSelect( $( 'FNumber' ) );
      //ExposureTime
      resetSelect( $( 'ExposureTime' ) );
      //ISOSpeedRatings
      resetSelect( $( 'ISOSpeedRatings' ) );
      //STStart
      $( 'STStart' ).value    = '';
      //STEnd
      $( 'STEnd' ).value      = '';
      //Model
      $( 'Model' ).value      = '';
      //Lens
      $( 'Lens' ).value       = '';
    },
    //もっと詳しく
    ShowDetail: function()  {
      if( showDetail_ ) {
        //隠す
        $( 'ShowDetailBtn' ).innerHTML  = '>> もっと詳しく';
        $( 'ShowDetail' ).style.display = 'none';
        $( 'ShowDetailValue' ).value    = 0;
        showDetail_ = false;
      }
      else  {
        //表示
        $( 'ShowDetailBtn' ).innerHTML  = '<< 詳細を隠す';
        $( 'ShowDetail' ).style.display = '';
        $( 'ShowDetailValue' ).value    = 1;
        showDetail_ = true;
      }
    },

    //検索実行
    DoSearch: function()  {
      var fSearch   = false;
      function  setSearch() {
        fSearch = true;
      }
      do  {
        //検索文字列
        if( !checkSearchLength( 'SWord', setSearch, '検索文字列は' + SEARCHTEXTLENGTH_MAX + '文字までです。' ) )  break;
        //検索タイプ
        if( fSearch && false==$( 'STTitle' ).checked && false==$( 'STTag' ).checked ) {
          alert( '「タイトル」か「タグ」のどちらもチェックされていないと検索対象が有効になりません。' );
          break;
        }
        //カテゴリ
        if( 0!=$( 'Category0UP0' ).selectedIndex )  setSearch();
        //場所
        if( 0!=$( 'Place0UP0' ).selectedIndex )     setSearch();
        //IMGType
        if( true==$( 'IMGType1' ).checked || true==$( 'IMGType2' ).checked )  setSearch();
        //FNumber
        if( 0!=$( 'FNumber' ).selectedIndex )       setSearch();
        //ExposureTime
        if( 0!=$( 'ExposureTime' ).selectedIndex )  setSearch();
        //ISOSpeedRatings
        if( 0!=$( 'ISOSpeedRatings' ).selectedIndex ) setSearch();
        //STStart
        if( !checkDateInput( 'STStart', setSearch, '撮影日（開始）の入力データが異常です。' ) ) break;
        //STEnd
        if( !checkDateInput( 'STEnd', setSearch, '撮影日（終了）の入力データが異常です。' ) ) break;
        //モデル
        if( !checkSearchLength( 'Model', setSearch, 'カメラ検索文字列は' + SEARCHTEXTLENGTH_MAX + '文字までです。' ) )  break;
        //レンズ
        if( !checkSearchLength( 'Lens', setSearch, 'レンズ検索文字列は' + SEARCHTEXTLENGTH_MAX + '文字までです。' ) )  break;

        if( true )  { //fSearch ) {
          //検索項目があるので検索
          document.postForm.submitButton.click();
          return;
        }
        alert( '検索項目を指定してください。' );
      } while( 0 );
    },

    //ロード後
    onLoad: function()  {
      //クリアイベントを追加
      //$( 'FormClear' ).href = 'javascript:C00401.FormClear();';
      //カテゴリと場所
      CAPsList.SetCategoriyID( 'Category0UP0', 'Category00', C00401.ValCategory.up, C00401.ValCategory.low );
      CAPsList.SetPlaceID( 'Place0UP0', 'Place00', C00401.ValPlace.up, C00401.ValPlace.low );
    }
  };
}();

//ロード後イベント
Event.observe( window, 'load', function() {
  C00401.onLoad();
  //
  CAPsList.SetRemoveFavoritePlace( true );
  CAPsList.SetCategory0Title( '▼大カテゴリを選ぶ▼', '▼小カテゴリを選ぶ▼' );
  CAPsList.SetPlace0Title( '▼地域を選ぶ▼', '▼さらに詳しく選ぶ▼' );
  CAPsList.LoadCategoriesList();
  CAPsList.LoadPlacesList();
  //SS呼び出し
  if( Affi_SS!=null ) Affi_SS.Call();
}, false );
var Affi_SS = null;
