if (typeof(His) == 'undefined') {
    His = {};
}

His.Search = {
    /**
     * テストモードかどうか
     */
    _isTest : false,
    /**
     * ポータルコード
     */
    _portal : null,
    /**
     * Jエリアコード
     */
    _jarea : null,
    /**
     * ツアーコード検索使用不可
     * (trueのとき、使用不可)
     */
    _tcDisabled : false,

    init : function(portal, jarea)
    {
        var url = String(location.href);
        if (url.match(/^http:\/\/his\d*\//i)) {
            this._isTest = true;
        }
        this._jarea = jarea;
        this._portal = portal;
        // ツアーコード検索使用不可 (ポータル/Jエリアがないので)
        this._tcDisabled = (this._portal == null || this._portal.length == 0 || this._jarea == null || this._jarea.length == 0);
        
        // ヘッダ部キーワード・ツアーコード検索
        j$('form#sarea').submit(function(event){
            event.preventDefault();
		    		qinpReset(); //k
            His.Search._onSubmitHeader();
        });
    },

    // {{{ ヘッダ検索
    /**
     * キーワード・ツアーコード検索
     */
    _onSubmitHeader : function()
    {
        // 入力されたキーワード
        var keyword = j$('form#sarea input#input1').val();
        // 
        var rdKeyword  = j$('input.sarea-chk-keyword');
        var rdTourcode = j$('input.sarea-chk-tourcode');
        // キーワード・ツアーコード検索のどちらを使用するか
        var useKeyword  = (rdKeyword.length  == 1 ? rdKeyword.attr('checked') : false);
        var useTourcode = (rdTourcode.length == 1 ? rdTourcode.attr('checked') : false);
        // キーワードが無い: 終了
        if (keyword == null || keyword.length == 0) {
            qinpInit(); //k
            alert((useKeyword ? 'キーワード' : 'ツアーコード') + 'を入力してください');
            return;
        } else if (useTourcode && this._tcDisabled) {
            // ツアーコード検索だかポータル/Jエリアがない
            alert('ツアーコード検索機能は使用できません (ポータルコード/Jエリアコード)');
            return;
        } else if (! useKeyword && ! useTourcode) {
            // キーワード・ツアーコード検索いずれも選択されていない: 終了
            return;
        }

        if (useKeyword) {
            // キーワード検索 (sjis検索のため、iframe(sjisページ)内のformを使用する)
            var ifCont = this._getIframe();
            var form = ifCont.find('form#getform');
            var input = ifCont.find('input#input-keyword');
            input.val(keyword);
            form.submit();
        } else if (useTourcode) {
            // ツアーコード検索
            // 数値・文字・ハイフン以外: 終了
            if (keyword.match(/^[^\d\w\-]+j$/i)) {
		            qinpInit(); //k
                alert('正しいツアーコードを入力してください');
                return;
            }
            
            // ciao: 通常?ツアー
            // TODO 地域によってactionの変更が必要
            var url = 'http://e.his-j.com/trip/ciao/search/' + this._portal + '_' + this._jarea + '/';
            // form作成
            var form = j$(document.createElement('form'));
            j$('body').append(form);
            // 設定
            form.attr('action', url)
                .attr('method', 'post')
                .append(this._input('tour', keyword))
                .append(this._input('search_tour.x', '0'))
                .append(this._input('search_tour.y', '0'));
            form.submit();
            if (this._isTest) {
                form.attr('target', '_blank')
            }
            form.remove();
        }
    },
    /**
     * SJIS検索用iframeのDOMを返す
     */
    _getIframe : function()
    {
        return j$('iframe#iframe-searcharea').contents();
    },
    /**
     * inputオブジェクトを作成
     */
    _input : function(name, value)
    {
        var input = j$(document.createElement('input'));
        input
            .attr('type', 'hidden')
            .attr('name', name)
            .val(value);
        return input;
    }
    // }}}
};

