//-----------------------------------------------------------------------------
//
// [PJ]
// 検索窓javascript
// 
//-----------------------------------------------------------------------------
/**
 * 選択されている都道府県でクエリ文字列作成。
 *
 */
function make_pref_query_string() {
    // チェックされている都道府県のIDでクエリ作成
    var _url = '';
    $("#prefecture_selector input[@type='checkbox']").each(function(){
        if(this.checked) {
            _url += '&pref[]=' + this.value;
        }
    });
    return _url;
}

/**
 * 地域選択に戻る。
 *
 */
function backToDistricts() {
    $('#city_selector').hide();
    $('#district_selector').show();
    $('#sub_layer').show();
}

/**
 * 県名小窓の内容を作成する
 */
function showPrefBox(dist_id, dist_name){
    $.getJSON('?act=public_getprefecture&district_id=' + dist_id, function(prefs){
        // 県名リスト　クリア
        $('#list_header').remove();
        $('#pref_list').remove();
        $('#pref_close').remove();
        // 県名リスト　作成
        $('#sub_layer').append('<div id="list_header">▼' + dist_name + '</div>');
        $('#list_header').after('<ul id="pref_list"></ul>');
        $.each(prefs, function(i, pref){
        
            // 保存用JSONがある場合
            //if(_prefOpened || isMySearch()) {
                // 保存されている都道府県IDと一致する場合、checked
                //$('#pref_list')
                //.append('<li><a href="javascript:void(0);" id="pref_name' + pref.pref_id + '" name="' + pref.pref_id + '">' + pref.pref_name + '</a></li>');
            //}
            // My検索以外またはMy検索の地方IDとは一致しない場合
            //else {
                $('#pref_list')
                .append('<li><a href="javascript:void(0);" id="pref_name' + pref.pref_id + '" name="' + pref.pref_id + '">' + pref.pref_name + '</a></li>');
            //}
        });
        // 閉じる　リンク
        $('#sub_layer').append('<div style="position:absolute;bottom:5px;right:5px;"><a href="javascript:void(0);" id="pref_close">閉じる</a></div>');
        
        // 表示位置・サイズ
        var offset = $('#searchArea01').offset();
        var cnt = prefs.length;
        // （文字サイズ(TODO 正確に取得)＋マージン）×県数＋上下の２行分
        var height = cnt * 24 + 72;
        var width = 90;
        if(dist_id == 1){
            width = 105;
        }
        
        // 表示位置　補正値
        // TODO とりあえず、leftだけ
        var amount = getAmount(dist_id);
        
        // 表示位置・サイズ設定
        $('#sub_layer').css('top', offset.top).css('left', offset.left + amount).height(height).width(width);
        
        /**
         * ここで県名クリック時の処理を定義
         */
        $('#pref_list a').click(function(){
	        //disable_focus_search();
	
	        _action = 'area_city';
	        _init = '';
	        
	        // 市区町村一覧作成
	        getCitys($(this).attr('name'));

            // TODO この時点でhiddenを作成してしまっても良いか？
		    $('#selected_pref_id').attr({value:$(this).attr('name')});
		    $('#selected_pref_name').attr({value:$(this).text()});
            
            // 検索条件を更新
            updatePref();
        });
        
        /**
         * 県名リスト　閉じる際の処理を定義
         */
        $('#pref_close').click(function(){
            $('#sub_layer').css('opacity', 0).hide();
        });

    });
}

/**
 * 市区町村一覧を作成する
 */
function getCitys(pref_id){
    var _url = '?act=public_getareacity&pref[]=' + pref_id;

    $.getJSON(_url, function(cities){
    
        // テーブルを作成
        //$('#district_selector').after('<div class=\"prefecture_selector\" id=\"prefecture_selector\"></div>');
        $('#district_selector').after('<span class=\"city_selector\" id=\"city_selector\"></span>');
        $('#city_selector').append('<table id=\"city_table\" border=\"0\" width=\"278px\"><tr id=\"clone_city_row\" style=\"display:none;\"></tr></table>');
        
        // チェックボックス作成
        var idx = 1;
        var cnt = 0;
        var imageName = '';
        var _current_row = $('#clone_city_row').clone();
        $.each(cities, function(i, city){
            //if(i > 0 && (i%2) == 0) {
            // 初回のみ
            if(cnt == 0){
                _current_row.removeAttr('id').insertAfter($('#city_table tr:last-child')).show();
                _current_row.append('<td colspan=\"2\"><img src=\"/img/top/search-tit02.jpg\"><a href=\"javascript:void(0);\" id=\"from_cities_to_districts\"><img src=\"/img/top/search-btn-back.jpg\"></a></td>');
                _current_row.removeAttr('id').insertAfter($('#city_table tr:last-child')).show();
                _current_row = $('#clone_city_row').clone();
                imageName = getLineImageName(city.line_idx);
                _current_row.append('<td colspan=\"2\"><img src=\"/img/top/' + imageName + '\"></td>');
                _current_row.removeAttr('id').insertAfter($('#city_table tr:last-child')).show();
                _current_row = $('#clone_city_row').clone();
            }
            
            // ２つ配置した場合
            if(cnt > 0 && (cnt%2) == 0) {
                _current_row.removeAttr('id').insertAfter($('#city_table tr:last-child')).show();
                _current_row = $('#clone_city_row').clone();
            }
            
            // 五十音の行が変わる場合
            if(idx != city.line_idx){
                _current_row.removeAttr('id').insertAfter($('#city_table tr:last-child')).show();
                _current_row = $('#clone_city_row').clone();
                imageName = getLineImageName(city.line_idx);
                _current_row.append('<td colspan=\"2\"><img src=\"/img/top/' + imageName + '\"></td>');
                _current_row.removeAttr('id').insertAfter($('#city_table tr:last-child')).show();
                _current_row = $('#clone_city_row').clone();
                idx = city.line_idx;
                cnt = 0;
            }
            
            //if(_cityOpened || isMySearch()) {
            if(isMySearch()) {
                // JSONに保存されている場合
                _current_row.append('<td><input type=\"checkbox\" name=\"city[]\" value=\"'+ city.city_id + '\" id=\"city_id_' + city.city_id + '\"' + ((isMyCityId(city.city_id) ? 'checked=\"checked\"' : '')) + '><label for=\"city_id_' + city.city_id + '\">' + city.city_name + '</label></td>');
            } else {
                _current_row.append('<td><input type=\"checkbox\" name=\"city[]\" value=\"'+ city.city_id + '\" id=\"city_id_' + city.city_id + '\"><label for=\"city_id_' + city.city_id + '\">' + city.city_name + '</label></td>');
            }
            
            cnt++;
        });
        _current_row.insertAfter($('#city_table tr:last-child')).removeAttr('id').show();
        
        $('#from_cities_to_districts').click(backToDistricts);
       
        /**
         * 市区町村　クリック時の処理を定義
         */
        $("#city_selector input[name='city[]']").click(function(){
            // 検索条件を更新
            updateCity();
            getSearchWords();
            
            _action = 'check';
            _init = '';
        });
    });
}

/**
 * 県名小窓表示位置　補正値を取得
 */
function getAmount(dist_id){
// TODO 地方IDによって、補正するtop，leftを返す
    var amount;
    if(dist_id == 1 || dist_id == 2){
        amount = 100;
    }
    else if(dist_id == 3 || dist_id == 4){
        amount = 50;
    }
    else if(dist_id == 5){
        amount = 0;
    }
    else if(dist_id == 6 || dist_id == 7){
        amount = 100;
    }
    else if(dist_id == 8){
        amount = 50;
    }

    return amount;
}

/**
 * ５０音の行番号に該当する画像名を取得する
 */
function getLineImageName(lineNo){
    var imageName = '';
    
    switch(lineNo){
        case 1:
            imageName = 'cap-a.gif';
            break;
        case 2:
            imageName = 'cap-ka.gif';
            break;
        case 3:
            imageName = 'cap-sa.gif';
            break;
        case 4:
            imageName = 'cap-ta.gif';
            break;
        case 5:
            imageName = 'cap-na.gif';
            break;
        case 6:
            imageName = 'cap-ha.gif';
            break;
        case 7:
            imageName = 'cap-ma.gif';
            break;
        case 8:
            imageName = 'cap-ya.gif';
            break;
        case 9:
            imageName = 'cap-la.gif';
            break;
        case 10:
            imageName = 'cap-wa.gif';
            break;
    }
    
    return imageName;
}

/**
 * 検索条件文字列を構築
 */
//var _createPref = false;
//var _createCity = false;
//var _createForms = false;
//var _createSalary = false;
//var _createFocus = false;
function getSearchWords(){
    _prefWord = '';
    _cityWord = '';
    _formWord = '';
    _salaryWord = '';
    _srvWord = '';
    _focusWord = '';
    _action = 'search_word'
    getPrefWords();
    getCityWords();
    getFormWords();
    getSalaryWords();
    getSrvWords();
    getFocusWords();
    
    $('#search_cond').empty();
    var cond = '';
    cond += _prefWord + _cityWord;
    if(cond.length > 0 && _formWord.length > 0){
        cond += ' ';
    }
    cond += _formWord;
    if(cond.length > 0 && _salaryWord.length > 0){
        cond += ' ';
    }
    cond += _salaryWord;
    if(cond.length > 0 && _srvWord.length > 0){
        cond += ' ';
    }
    cond += _srvWord;
    if(cond.length > 0 && _focusWord.length > 0){
        cond += ' ';
    }
    cond += _focusWord;
    
    if(cond.length == 0){
        cond = '選択したものが表示されます。';
    }
    
    $('#search_cond').append(cond);
    setSlideBtnVisible();
}

/**
 * 検索文字列（勤務地）を構築
 */
function getPrefWords(){

    var prefName = $('#selected_pref_name').attr('value');
    
    if(prefName.length > 0){
        _prefWord += '<span style="font-weight:bold;">［勤務地］</span>';
        _prefWord += prefName;
    }

/* JSON版
    var prefs = myCondition.pref_id;
    // 1回しかやらないはず
    for(var i = 0; i < prefs.length; i++){
        if(i == 0){
            _prefWord += '<b>［勤務地］</b>';
        }
        // 都道府県名を取得
        $.getJSON('?act=public_getprefecturename&pref_id=' + prefs[i], function(pref){
            _prefWord += pref[0].pref_name;
            _createPref = true;
        });
    }
    
    if(prefs.length == 0){
        _createPref = true;
    }
*/
}

/**
 * 検索文字列（市区町村）を構築
 */
function getCityWords(){

    var cities = $('#city_selector input[type="checkbox"]');
    var cnt = 0;
    var sep = '：';
    if(cities.length > 0){
        $.each(cities, function(){
            // 検索条件に設定されている（チェックされている）場合、検索条件文字列に追加
            if(isMyCityId($(this).attr('value'))){
                if(cnt != 0){
                    sep = ', ';
                }
                var label = $('#city_selector label[for="' + $(this).attr('id') + '"]');
                _cityWord += sep + label.text();
                cnt++;
            }
        });
    }

/* JSON版
    var prefs = myCondition.pref_id;
    var cnt = 0;
    var sep = '：';
    for(var i = 0; i < prefs.length; i++){
        $.getJSON('?act=public_getareacity&pref[]=' + prefs[i], function(cities){
            $.each(cities, function(j, city){
                // 検索条件に設定されている（チェックされている）場合、検索条件文字列に追加
                if(isMyCityId(city.city_id)){
                    if(cnt != 0){
                        sep = ', ';
                    }
                    _cityWord += sep + city.city_name;
                    cnt++;
                }
            });
            _createCity = true;
        });
    }
    
    if(prefs.length == 0){
        _createCity = true;
    }
*/
}

/**
 * 検索文字列（就業形態）を構築
 */
function getFormWords(){
    var cnt = 0;
    var sep = '<span style="font-weight:bold;">[就業形態]</span>';
    
    // チェックボックスが常時表示されているため、<label>から取得する
    $('#searchArea02 input[name="form[]"]').each(function(){
        if(isMyFrmId($(this).attr('value'))){
            if(cnt != 0){
                sep = ', ';
            }
            var label = $('#searchArea02 label[for="' + $(this).attr('id') + '"]');
            _formWord += sep + label.text();
            cnt++;
        }
    });
    
/* JSONから取得する場合
    $.getJSON('?act=public_getform', function(forms){
        $.each(forms, function(i, form){
            // 検索条件に設定されている（チェックされている）場合、検索条件文字列に追加
            if(isMyFrmId(form.frm_id)){
                if(cnt != 0){
                    sep = ', ';
                }
                _formWord += sep + form.frm_name;
                cnt++;
            }
        });
        _createForms = true;
    });
*/
}

/**
 * 検索文字列（給与）を構築
 */
function getSalaryWords(){
    var salarys = myCondition.salary_id;
    var cnt = 0;
    var sep = '<span style="font-weight:bold;">[給与]</span>';
    var kbn = '';
    $('#searchArea02 select').each(function(i){
        var cond_id = salarys[i];
        $(this).children().each(function(){
            if(cond_id == this.value){
                if(cond_id.length > 0){
                    if(cnt != 0){
                        sep = ', ';
                    }
                    if(i == 0){
                        kbn = '年収：';
                    }
                    else if(i == 1){
                        kbn = '月給：';
                    }
                    else if(i == 2){
                        kbn = '時給：';
                    }
                    _salaryWord += sep + kbn + $(this).attr('label');
                    cnt++;
                }
            }
        });
    });
}

/**
 * 検索文字列（サービス内容）を構築
 */
function getSrvWords(){
    var cnt = 0;
    var sep = '<span style="font-weight:bold;">[サービス内容]</span>';
    
    // チェックボックスが常時表示されているため、<label>から取得する
    $('#searchArea02 input[name="srv[]"]').each(function(i){
        if(isMySrvId($(this).attr('value'))){
            if(cnt != 0){
                sep = ', ';
            }
            var label = $('#searchArea02 label[for="' + $(this).attr('id') + '"]');
            _srvWord += sep + label.text();
            cnt++;
        }
    });
    
/*
    $.getJSON('?act=public_getfocus', function(focuses){
        $.each(focuses, function(i, focus){
            // 検索条件に設定されている（チェックされている）場合、検索条件文字列に追加
            if(isMyFocId(focus.foc_id)){
                if(cnt != 0){
                    sep = ', ';
                }
                _focusWord += sep + focus.foc_name;
                cnt++;
            }
        });
        _createFocus = true;
    });
*/
}

/**
 * 検索文字列（こだわり条件）を構築
 */
function getFocusWords(){
    var cnt = 0;
    var sep = '<span style="font-weight:bold;">[こだわり条件]</span>';
    
    // チェックボックスが常時表示されているため、<label>から取得する
    $('#searchArea02 input[name="focus[]"]').each(function(i){
        if(isMyFocId($(this).attr('value'))){
            if(cnt != 0){
                sep = ', ';
            }
            var label = $('#searchArea02 label[for="' + $(this).attr('id') + '"]');
            _focusWord += sep + label.text();
            cnt++;
        }
    });
}

/**
 * 検索条件スライド用の画像表示設定
 */
function setSlideBtnVisible(){
    var width = $('#search_cond').width();
    var maxWidth = $('#slider').width();
    if(!maxWidth){
        maxWidth = $('#myslider').width();
    }
    
    if(width > maxWidth){
        $('#left_btn').show();
        $('#right_btn').show();
    }
    else{
        $('#left_btn').hide();
        $('#right_btn').hide();
    }
    
    // 検索条件の表示位置を初期化する
    $('#search_cond').css('left', 0);
}

/**
 * 保存されたMy検索条件が存在する場合、true。
 *
 */
function isMySearch() {
    return ($('#mem_mysrch_seq').attr('value') != null);
}

/**
 * 引数 pref_id がMy検索条件に保存されている都道府県IDと一致する場合、true
 *
 */
function isMyPrefId(pref_id) {
    var f = false;
    var myPref = myCondition.pref_id;
    for(var i = 0; i < myPref.length; i++) {
        if(myPref[i] == pref_id) {
            f = true;
            break;
        }
    }
    return f;
}

/**
 * 引数 city_id がMy検索条件に保存されている市区町村IDと一致する場合、true。
 *
 */
function isMyCityId(city_id) {
    var f = false;
    var myCity = myCondition.city_id;
    for(var i = 0; i < myCity.length; i++) {
        if(myCity[i] == city_id) {
            f = true;
            break;
        }
    }
    return f;
}

/**
 * 引数 srv_id がMy検索条件に保存されているサービス内容IDと一致する場合、true。
 *
 */
function isMySrvId(srv_id) {
    var f = false;
    var mySrv = myCondition.srv_id;
    for(var i = 0; i < mySrv.length; i++) {
        if(mySrv[i] == srv_id) {
            f = true;
            break;
        }
    }
    return f;
}

/**
 * 引数 frm_id がMy検索条件に保存されている就業形態IDと一致する場合、true。
 *
 */
function isMyFrmId(frm_id) {
    var f = false;
    var myFrm = myCondition.frm_id;
    for(var i = 0; i < myFrm.length; i++) {
        if(myFrm[i] == frm_id) {
            f = true;
            break;
        }
    }
    return f;
}

/**
 * 引数 foc_id がMy検索条件に保存されているこだわり条件IDと一致する場合、true。
 *
 */
function isMyFocId(foc_id) {
    var f = false;
    var myFoc = myCondition.foc_id;
    for(var i = 0; i < myFoc.length; i++) {
        if(myFoc[i] == foc_id) {
            f = true;
            break;
        }
    }
    return f;
}

/**
 * My検索条件として保存されている地方IDを取得する。
 *
 */
function getMyDistId() {
    return (isMySearch()) ? myCondition.dist_id : '';
}

/**
 * JSONの地方IDを更新する。
 *
 */
function updateDist() {

    if(!isMySearch()) return false;
    
    var dist_id = $('#selected_dist_id').attr('value');
    myCondition.dist_id = dist_id;
    
}

/**
 * JSONの都道府県を更新する。
 *
 */
function updatePref(){
    var pref_id = $('#selected_pref_id').attr('value');
    if(pref_id != null){
        var prefs = new Array();
        prefs.push($('#selected_pref_id').attr('value'));
        myCondition.pref_id = prefs;
    }
}

/**
 * JSONの市区町村を更新する。
 *
 */
var _cityOpened = false;
function updateCity() {

    if(!_cityOpened) return false;
    
    var cities = new Array();
    $("#city_selector input[@type='checkbox']").each(function(){
        if(this.checked) cities.push(this.value);
    });
    myCondition.city_id = cities;
    
}

/**
 * JSONのサービス内容を更新する。
 *
 */
//var _focsOpened = false;
function updateSrv() {

    //if(!_focsOpened) return false;
    
    var srv = new Array();
    $("#searchArea02 input[name='srv[]']").each(function(){
        if(this.checked) {
           srv.push(this.value);
        }
    });
    myCondition.srv_id = srv;
}

/**
 * JSONの就業形態を更新する。
 *
 */
//var _frmsOpened = false;
function updateFrms() {

    //if(!_frmsOpened) return false;
    
    var frms = new Array();
    $("#searchArea02 input[name='form[]']").each(function(){
        if(this.checked) {
           frms.push(this.value);
        }
    });
    myCondition.frm_id = frms;
}

/**
 * JSONの給与を更新する。
 *
 */
function updateSalary() {
    
    var salarys = new Array();
    $('#searchArea02 select').each(function(){
        salarys.push(this.value);
    });
    myCondition.salary_id = salarys;
}

/**
 * JSONのこだわり条件を更新する。
 *
 */
//var _focsOpened = false;
function updateFocs() {

    //if(!_focsOpened) return false;
    
    var focs = new Array();
    $("#searchArea02 input[name='focus[]']").each(function(){
        if(this.checked) {
           focs.push(this.value);
        }
    });
    myCondition.foc_id = focs;
}

/**
 * JSONを更新する。
 *
 */
function updateMyCondition() {
    updatePref();
    updateCity();
    updateSrv();
    updateSalary();
    updateFrms();
    updateFocs();
}

/**
 * 保存して一覧に戻る前にJSONの値を hidden に設定する。
 *
 */
function _makeHidden(name, value) {
    $('#_hidden_before_save').append('<input type=\"hidden\" name=\"' + name + '\" value=\"'+ value + '\">');
}

/**
 * 就業形態に応じて給与条件の表示を切り替える
 */
function changeSalary(){
    var code = 0;
    $("#searchArea02 input[name='form[]']").each(function(){
        if(this.checked){
            if(this.value == 1){
                code++;
            }
            else if(this.value == 2){
                code += 2;
            }
        }
    });
    
    switch(code){
        case 0:
            // 全て表示？
            $("#searchArea02 select[name='emp_salary_1']").show();
            $("#searchArea02 select[name='emp_salary_2']").show();
            $("#searchArea02 select[name='emp_salary_3']").show();
            $("#searchArea02 label[for='kyuyo01']").show();
            $("#searchArea02 label[for='kyuyo02']").show();
            $("#searchArea02 label[for='kyuyo03']").show();
            break;
        case 1:
            // 年収・月給を表示
            $("#searchArea02 select[name='emp_salary_1']").show();
            $("#searchArea02 select[name='emp_salary_2']").show();
            $("#searchArea02 select[name='emp_salary_3']").hide();
            $("#searchArea02 label[for='kyuyo01']").show();
            $("#searchArea02 label[for='kyuyo02']").show();
            $("#searchArea02 label[for='kyuyo03']").hide();
            clearSelect('emp_salary_3');
            break;
        case 2:
            // 時給を表示
            $("#searchArea02 select[name='emp_salary_1']").hide();
            $("#searchArea02 select[name='emp_salary_2']").hide();
            $("#searchArea02 select[name='emp_salary_3']").show();
            $("#searchArea02 label[for='kyuyo01']").hide();
            $("#searchArea02 label[for='kyuyo02']").hide();
            $("#searchArea02 label[for='kyuyo03']").show();
            clearSelect('emp_salary_1');
            clearSelect('emp_salary_2');
            break;
        case 3:
            // 全て表示
            $("#searchArea02 select[name='emp_salary_1']").show();
            $("#searchArea02 select[name='emp_salary_2']").show();
            $("#searchArea02 select[name='emp_salary_3']").show();
            $("#searchArea02 label[for='kyuyo01']").show();
            $("#searchArea02 label[for='kyuyo02']").show();
            $("#searchArea02 label[for='kyuyo03']").show();
            break;
        default:
            break;
    }
    
    updateSalary();
}

/**
 * 給与コンボボックスの選択状態を解除する
 */
function clearSelect(name){
    $("#searchArea02 select[name='" + name + "']").attr('value', 0);
    $("#searchArea02 select[name='" + name + "']").children().each(function(i){
        if(this.selected){
            this.selected = false;
        }
        if(i == 0){
            this.selected = true;
        }
    });
}

/**
 * My検索時の初期処理
 * JSONの値を画面にセットする
 */
function mySearchInit(){
    
    _init = 'init';
    
    // 都道府県
    var prefs = myCondition.pref_id;
    // 1回しかやらないはず
    for(var i = 0; i < prefs.length; i++){
        // 都道府県名を取得
        $.getJSON('?act=public_getprefecturename&pref_id=' + prefs[i], function(pref){
            $('#selected_pref_id').attr({value:pref[0].pref_id});
		    $('#selected_pref_name').attr({value:pref[0].pref_name});
            getCitys(pref[0].pref_id);
        });
    }
    
    // 就業形態
    var frms = myCondition.frm_id;
    $.each(frms, function(i, frm){
        $("#searchArea02 input[id='form_" + frm + "']").attr({checked:true});
    });
    
    // 給与
    var salarys = myCondition.salary_id;
    var salary_id;
    $('#searchArea02 select').each(function(i){
        $(this).children().each(function(){
            if(this.value == salarys[i]){
                if(this.value.length > 0){
                    $(this).attr({selected:true});
                }
            }
        });
    });
    
    // サービス内容
    var srvs = myCondition.srv_id;
    $.each(srvs, function(i, srv){
        $("#searchArea02 input[id='srv_" + srv + "']").attr({checked:true});
    });
    
    // こだわり条件
    var focs = myCondition.foc_id;
    $.each(focs, function(i, foc){
        $("#searchArea02 input[id='focus_" + foc + "']").attr({checked:true});
    });
    
    // 法人名・事業所名
    var word = myCondition.word;
    $("#searchArea02 input[name='word']").attr({value:word});
    
    // 現在の検索条件
    getSearchWords();
}

/**
 * 検索フォーム内のクリックイベント発生時の処理を実行する。
 *
 */
var _action = '';
var _init = '';
var _prefWord = '';
var _cityWord = '';
var _formWord = '';
var _srvWord = '';
var _focusWord = '';
$(document).ready(function(){

   /**
    * My検索変更画面の場合、デフォルトチェックせずDBの値が入ったJSONの値を見て checked にする。
    *
    */
    if($('#mem_mysrch_seq').attr('value')) {
        _prefOpened = true;
        mySearchInit();
    }
    else{
        updateSalary();
        getSearchWords();
    }

    /**
     * 地方クリック時の処理を定義
     */
    $('#Map area').click(function(){
    
        _action = 'districts';
        _init = '';
        
        // 地方ID
        var dist_id = $(this).attr('accesskey');
        // hidden にセット
        $('#selected_dist_id').attr('value', dist_id);
        
        // 地方名
        var dist_name = $(this).attr('alt');
        
        // 県名一覧作成
        showPrefBox(dist_id, dist_name);

    });
   
   /**
    * 就業形態クリック時の処理を定義
    */
    $("#searchArea02 input[name='form[]']").click(function(){
        // 給与の表示切替
        changeSalary();
    
        // 検索条件を更新
        updateFrms();
        getSearchWords();
		
		_action = 'check';
		_init = '';
    });
   
   /**
    * サービス内容クリック時の処理を定義
    */
    $("#searchArea02 input[name='srv[]']").click(function(){
        // 検索条件を更新
        updateSrv();
		getSearchWords();
		
		_action = 'check';
		_init = '';
    });
    
    /**
    * こだわり条件クリック時の処理を定義
    */
    $("#searchArea02 input[name='focus[]']").click(function(){
        // 検索条件を更新
        updateFocs();
		getSearchWords();
		
		_action = 'check';
		_init = '';
    });
    
   /**
    * 給与変更時の処理を定義
    */
    $('#searchArea02 select').change(function(){
        // 検索条件を更新
        updateSalary();
        getSearchWords();
        
        _action = 'check';
        _init = '';
    });
   
   /**
    * 検索条件　左ボタンクリック時の処理を定義
    */
    $('#left_link').click(function(){
        _init = '';
        
        // TODO どこかに増減分を設定
        var amount = 50;
    
        // 検索条件　現在の位置（相対）
        var leftPx = $('#search_cond').css('left');
        var left;
        if(leftPx == null){
            left = 0;
        }
        else{
            left = parseInt(String(leftPx).replace('px',''));
        }
        
        // 0を超える値は設定できない
        var new_left = left + amount;
        if(new_left > 0){
            new_left = 0;
        }

        // 設定
        $('#search_cond').css('left', new_left);
    });
    
   /**
    * 検索条件　右クリック時の処理を定義
    */
    $('#right_link').click(function(){
        _init = '';
        
        // TODO どこかに増減分を設定
        var amount = 50;
        
        // 検索条件　現在の位置（相対）
        var leftPx = $('#search_cond').css('left');
        if(leftPx == null){
            left = 0;
        }
        else{
            left = parseInt(String(leftPx).replace('px',''));
        }
        
        // 検索条件　長さ
        var width = $('#search_cond').width();
        
        // 検索条件表示枠　長さ
        var slider_width = $('#slider').width();
        if(!slider_width){
            slider_width = $('#myslider').width();
        }
        
        // 検索条件移動分（マイナス）と検索条件の長さの和が検索条件表示枠の長さを下回ることはできない
        var new_left = left - amount;
        if(new_left + width < slider_width){
            new_left = -(width - slider_width);
        }

        // 設定
        $('#search_cond').css('left', new_left);
    });
    
   /**
    * 検索ボタンをクリックした場合、都道府県が選択されているかチェックする。
    *
    */
    $('#search_button').click(function(){
        _init = '';

        // hiddenに作成した都道府県IDの存在で判断
        var pref_id = $('#selected_pref_id').attr('value');
        if(pref_id == null || pref_id.length < 1){
            alert('都道府県を選択してください');
            return false;
        }
        return true;
    });

   /**
    * 保存して一覧に戻るボタンがクリックされた場合の処理。
    *
    */
    $('#save_and_back_button').click(function(){
        _init = '';
        
        // hiddenに作成した都道府県IDの存在で判断
        var pref_id = $('#selected_pref_id').attr('value');
        if(pref_id == null || pref_id.length < 1){
            alert('都道府県を選択してください');
            return false;
        }
        return true;
/*
        // JSONとして保存
        updateMyCondition();
        
        // 一旦、削除
        //backToDistricts();
        
        // JSON の値を設定してPOST
        // 地域ID
        $('#selected_dist_id').attr('value', myCondition.dist_id);
        // 都道府県ID
        var _prefs = myCondition.pref_id;
        for(_p in _prefs) {
            //_makeHidden('pref[]', _prefs[_p]);
            $('#selected_pref_id').attr('value', _prefs[_p]);
        }
        // 市区町村
        // 市区町村一覧が作成されていない場合はmyConditionから作成
        if($('#city_selector').attr('id') == null){
            var _cities = myCondition.city_id;
            for(_c in _cities) {
                _makeHidden('city[]', _cities[_c]);
            }
        }
        // こだわり
        //var _focs = myCondition.foc_id;
        //for(_fc in _focs) {
        //    _makeHidden('focus[]', _focs[_fc]);
        //}
        // 就業形態
        //var _frms = myCondition.frm_id;
        //for(_fr in _frms) {
        //    _makeHidden('form[]', _frms[_fr]);
        //}
        // ワード
        //var _w = $('#word').val();
        //_makeHidden('word', _w);
*/
    });
    
   /**
    * ajaxリクエスト送信開始時に実行する処理。
    *
    */
    $(this).ajaxStart(function() {
        // 地域選択時
        if(_action == 'districts') {
            // json にセット
            updateDist();
        }
        // 都道府県選択時
        else if(_action == 'area_city') {
            // 一旦、削除
            $('#city_selector').remove();
        }
    });

   /**
    * ajaxリクエストの送信成功時に実行する処理。
    *
    */
    $(this).ajaxSuccess(function(evt, request, settings) {
        // 地域選択時
        if(_action == 'districts') {
            $('#sub_layer').css('opacity', 0).hide();
            $('#sub_layer').show().fadeTo(10, 1);
        }
        // 都道府県選択時
        else if(_action == 'area_city') {
            // 検索条件を再構築
            getSearchWords();
            // 地域マップ隠す
            $('#district_selector').hide();
            // 都道府県リスト非表示
            $('#sub_layer').hide();
            // 表示
            $('#city_selector').show();
            _cityOpened = true;
        }
        
    });
    
    $(this).ajaxComplete(function(event, request, settings) {
/* JSONのみで検索条件文字列を取得する場合
        // 検索条件の構築が完了したら、セット
        if(_createPref && _createCity && _createForms && _createSalary && _createFocus){
            $('#search_cond').empty();
            var cond = '';
            cond += _prefWord + _cityWord;
            if(cond.length > 0 && _formWord.length > 0){
                cond += ' ';
            }
            cond += _formWord;
            if(cond.length > 0 && _salaryWord.length > 0){
                cond += ' ';
            }
            cond += _salaryWord;
            if(cond.length > 0 && _srvWord.length > 0){
                cond += ' ';
            }
            cond += _srvWord;
		    $('#search_cond').append(cond);
		    setSlideBtnVisible();
		    _createPref = false;
		    _createCity = false;
		    _createForms = false;
		    _createSalary = false;
		    _createFocus = false;
        }
*/
        if(_init == 'init'){
            getSearchWords();
            $('#city_selector').hide();
        }
    });
    
    $(this).ajaxError(function(event, request, settings) {
        if(isMySearch()) {
            alert('処理の実行に失敗しました。\nMy検索一覧に戻ってやり直してください。');
        } else {
            alert('処理の実行に失敗しました。\n最初からやり直してください。');
        }
    });
    
});
