/**
 * This file contains the functions of Controlling Searching.
 *
 * @package     webroot
 * @subpackage  js
 * @author      GMG
 * @created     2009/3/2
 */

var cmbIndex = new Object();
var map = new Object();
/**
* enabled = 0：検索機能が動作しないようにする
* enabled = 1：検索機能が動作するようにする
* enabled = 2：マップを移動させても検索機能は動作しないようにする
*/
var enabled = 0;
var isFirst = 1;

// ピンをクリックした場合は地図が移動しても検索したくないので
// フラグを設定する。
var clickPin = 0;

var selectedArea = -1;

$(document).ready(function() {
    countOfCommunication = 0;
    initForIE();
    setStaticJob();
    //initComboItems();
    refreshLocalCity();

    //  refresh ad
    var job_id = getCookie('job_type', 1);
    var emptyAd = new Array();
    if( job_id != -1 && job_id != null )
        loadAdData(job_id);
    else
        refreshAdver(emptyAd);

    //google map
    _generateMap();
    $("div#googleMapArea").hide();
	$("div#detailAllListArea").hide();

});

function initComboItems() {
    var numberOfCombobox = $('ul.navOne').size()+1;
    for ( var i=0; i<numberOfCombobox; i++) {
        var thisUl = 'ul#nav' + i;
        var thisNth = "li:nth-child(1)";
        var thisID = $(thisUl).children(thisNth).attr('ID');
        var thisLi = "li#" + thisID;

        var masterComboCondition = $(thisLi).children('input#' + thisID + 'Value').val();
        if (masterComboCondition == "" || masterComboCondition == 0 || masterComboCondition == -1)
        {
            masterComboCondition = getCookie(thisID, 1);
        }

        var relationComboCondtion = -1;
        cmbIndex[thisID] = i;

        if (thisID == 'placesub' || thisID == 'employment' || thisID == 'business') {
            relationComboCondtion = getRelationComboCondition(thisID);
            initRelationComboItems(thisID, masterComboCondition, relationComboCondtion);
        } else {
            initMasterComboItems(thisID, masterComboCondition);
        }
    }
}

function initMasterComboItems(comboID, masterComboCondition) {
    if (comboID === undefined || comboID == null || comboID == "")
    {
        return;
    }
    var thisJson = getJsonURL(comboID);

    //  check whether job is static or not
    if( isStatisJob == true && comboID == 'job' )
    {
        return;
    }

    showAjaxStatus(1);

    $.ajax({
        type: 'POST',
        url: thisJson,
        data:{'comboID':comboID,'masterComboCondition':masterComboCondition},
        success: function(data) {
            refreshMasterComboItems(data);
            showAjaxStatus(2);
        }
    });
}

function refreshMasterComboItems(data)
{
    eval("var jsonData="+data);
    var comboID = jsonData.comboID;
    var masterComboCondition = jsonData.masterComboCondition;
    var thisLi = "li#" + comboID;

    var new_text = new Array();
    var allLength = jsonData.point.length;
    for (v=0; v<allLength; v++) {
        var thisLID = jsonData.point[v].key;
        if (thisLID == masterComboCondition || isValueIncluded(masterComboCondition, thisLID) ) {
            new_text[v] = ('<li class="bgOrange" id="' + thisLID + '"><a class="bgOrange" href="#">' + jsonData.point[v].title + '</a></li>');
            //$(thisLi).children('input#' + comboID + 'Txt').val(jsonData.point[v].title);
        } else {
            new_text[v] = ('<li class="grayHover" id="' + thisLID + '"><a class="grayHover" href="#">' + jsonData.point[v].title + '</a></li>');
        }
    }
    var new_html = new_text.join("");
    new_html = '<ul class="navTwo" id="nt' + cmbIndex[comboID] + '">' + new_html + '</ul>';
    $(thisLi).append(new_html);

    if (masterComboCondition == -1) {
        $(thisLi).children('input#' + comboID + 'Txt').attr("disabled","true");
        $(thisLi).children('input#' + comboID + 'Txt').val(getDefaultComboText(comboID));
        if (comboID == 'job') {
            masterComboCondition = 0;
        }
    } else {
        $(thisLi).children('input#' + comboID + 'Txt').attr("disabled","");
        var clickedText = getSelectedString( $(thisLi).children('ul'), masterComboCondition );
        $(thisLi).children('input#' + comboID + 'Txt').val(clickedText);
    }
    $(thisLi).children('input#' + comboID + 'Value').val(masterComboCondition);

    if( comboID == 'place' )
    {
        selectedArea = masterComboCondition;
    }

    //  append onclicked-handler & hover-handler
    settingClickEffect($(thisLi));
    settingHoverEffect($(thisLi));
}

function initRelationComboItems(comboID, masterComboCondition, relationComboCondtion)
{
    //  show ajax-communication status
    showAjaxStatus(1);

    //  compose Ajax url
    var ajaxURL = "";
    if (comboID == 'placesub') {
        if (relationComboCondtion == -1) {
            relationComboCondtion = 0;
        }
        ajaxURL = '/ajax/location_city?areaID=' + relationComboCondtion;
    } else if( comboID == 'business' ) {
        ajaxURL = '/ajax/business_job?jobID=' + relationComboCondtion;
    } else if( comboID == 'employment' ) {
        ajaxURL = '/ajax/employment_job?jobID=' + relationComboCondtion;
    }

    //  send request
    $.ajax({
        type: 'POST',
        url: ajaxURL,
        data:{'comboID':comboID,'masterComboCondition':masterComboCondition, 'relationComboCondtion':relationComboCondtion},
        success: function(data) {
            refreshRelationComboItems(data);
            showAjaxStatus(2);
        }
    });
}

function refreshRelationComboItems(data)
{
    eval("var jsonData="+data);

    //  get sended parameters
    var comboID = jsonData.comboID;
    var masterComboCondition = jsonData.masterComboCondition;
    var relationComboCondtion = jsonData.relationComboCondtion;
    var thisLi = "li#" + comboID;

    //  compose items' html according to selected status.
    var new_text = new Array();
    var allLength = jsonData.point.length;
    var thisLID = "";
    for (var v=0; v<allLength+1; v++) {
        if(v == 0)
        {
            if( comboID == 'business' || comboID == 'employment' )
            {
                new_text[v] = ('<li class="grayHover" id="0"><a class="grayHover" href="#">こだわらない</a></li>');
            }
            continue;
        }
        thisLID = jsonData.point[v-1].key;
        if (thisLID == masterComboCondition || isValueIncluded(masterComboCondition, thisLID) ) {
            new_text[v] = ('<li class="bgOrange" id="' + thisLID + '"><a class="bgOrange" href="#">' + jsonData.point[v-1].title + '</a></li>');
        } else {
            new_text[v] = ('<li class="grayHover" id="' + thisLID + '"><a class="grayHover" href="#">' + jsonData.point[v-1].title + '</a></li>');
        }
    }

    //  redraw menu
    var new_html = new_text.join("");
    if( $(thisLi).children('ul').is('ul') == false )
    {
        new_html = '<ul class="navTwo" id="nt' + cmbIndex[comboID] + '">' + new_html + '</ul>';
        $(thisLi).append(new_html);
    }
    else
    {
        $(thisLi).children('ul').html(new_html);
    }
    settingHoverEffect($(thisLi));

    //  refresh selected items
    if( comboID == 'business' || comboID == 'employment' )
    {
        masterComboCondition = refreshValues( $(thisLi).children('ul'), masterComboCondition );
        //setCookie(comboID, masterComboCondition, 1);
    }

    //  show selected items' text & store selected items' id
    var clickedText = getSelectedString( $(thisLi).children('ul'), masterComboCondition );
    if (masterComboCondition == -1 || masterComboCondition == '' || clickedText == '' ) {
        $(thisLi).children('input#' + comboID + 'Txt').attr("disabled","true");
        $(thisLi).children('input#' + comboID + 'Txt').val(getDefaultComboText(comboID));
    } else {
        $(thisLi).children('input#' + comboID + 'Txt').attr("disabled","");
        $(thisLi).children('input#' + comboID + 'Txt').val(clickedText);
    }
    $(thisLi).children('input#' + comboID + 'Value').val(masterComboCondition);

    //  append onclicked, hover-handler
    if( comboID == 'business' || comboID == 'employment' )
        settingClickEffect2($(thisLi));
    else
        settingClickEffect($(thisLi));
}

function settingClickEffect(elementObj) {
    if (elementObj == null) {
        elementObj = $('ul.navOne').children('li');
    }
    elementObj.children('ul').children('li').click(function(){
        var clickedValue = $(this).attr('ID');
        var oldSelectedValue = getCookie($(this).parent('ul').parent('li').attr('ID'), 1);

        if( $(this).parent('ul').parent('li').attr('ID') == 'place' )
        {
            oldSelectedValue = selectedArea;
        }

        if ((oldSelectedValue != -1) && (clickedValue == oldSelectedValue)) {
            return false;//disableCombo($(this));
        } else {
            var comboID = $(this).parent('ul').parent('li').attr('ID');
            var clickedText = $(this).children('a').text();
            $(this).parent('ul').parent('li').children('input#' + comboID + 'Txt').val(clickedText);
            $(this).parent('ul').parent('li').children('input#' + comboID + 'Value').val(clickedValue);

            chGrayBg($(this).parent('ul').children('li.bgOrange'));
            chOrangeBg($(this));
            $(this).parent('ul').parent('li').children('input#' + comboID + 'Txt').attr("disabled","");
            //設定を保存するタイミングは検索ボタンを押したとき
            //setCookieCombo($(this));

            if( comboID == 'place' )
            {
                selectedArea = clickedValue;
            }

            changeRelationCombo($(this));

            //  refresh ad
            if( comboID == 'job' )
                loadAdData(clickedValue);
        }
        return false;
    });
}

function settingClickEffect2(elementObj) {
    if (elementObj == null) {
        elementObj = $('ul.navOne').children('li');
    }
    elementObj.children('ul').children('li').click(function(){
        if (($(this).parent('ul').parent('li').attr('ID') == 'employment' || $(this).parent('ul').parent('li').attr('ID') == 'business') && $(this).attr('ID') == 0)
        {
            $(this).parent('ul').parent('li').children("input[@type='text']").val(getDefaultComboText($(this).parent('ul').parent('li').attr('ID')));
            $(this).parent('ul').parent('li').children("input[@type='text']").attr('disabled', 'true');
            $(this).parent('ul').parent('li').children("input[@type='hidden']").val(-1);
            //setCookie($(this).parent('ul').parent('li').attr('ID'), -1, 1);
            $(this).parent('ul').children('li').each(function() {
                chGrayBg($(this));
            });
            return false;
        }

        var clickedValue = $(this).attr('ID');
        var oldSelectedValue = getCookie($(this).parent('ul').parent('li').attr('ID'), 1);
        var included = isValueIncluded( oldSelectedValue, clickedValue );
        var newValue = "";

        if( included == true )
            newValue = removeValue( oldSelectedValue, clickedValue );
        else
            newValue = addValue( oldSelectedValue, clickedValue );

        if( newValue.length == 0 )
        {
            disableCombo($(this));
            return false;
        }
        if ($(this).parent('ul').parent('li').attr('ID') == 'employment' || $(this).parent('ul').parent('li').attr('ID') == 'business')
        {
            //setCookie($(this).parent('ul').parent('li').attr('ID'), newValue, 0);
        }

        var comboID = $(this).parent('ul').parent('li').attr('ID');
        var clickedText = getSelectedString($(this).parent('ul'), newValue);
        $(this).parent('ul').parent('li').children('input#' + comboID + 'Txt').val(clickedText);
        $(this).parent('ul').parent('li').children('input#' + comboID + 'Value').val(newValue);

        if( included == false)
        {
            //chGrayBg($(this).parent('ul').children('li.bgOrange'));
            chOrangeBg($(this));
            $(this).parent('ul').parent('li').children('input#' + comboID + 'Txt').attr("disabled","");
        }
        else
        {
            //chGrayBg(elementObj.parent('ul').children('li.bgOrange'));
            chGrayBg($(this));
        }
        //設定を保存するタイミングは検索ボタンを押したとき
        //setCookieCombo($(this), newValue);
        changeRelationCombo($(this));
        return false;
    });
}

function disableCombo(elementObj) {
    var comboID = elementObj.parent('ul').parent('li').attr('ID');
    if (comboID != 'job') {
        //setCookie(comboID, -1, 1);
        if (comboID == 'place')
        {
            //setCookie('placename', '', 1);
        }
        if (comboID == 'placesub')
        {
            //setCookie('placesubname', '', 1);
        }
        chGrayBg(elementObj.parent('ul').children('li.bgOrange'));
        elementObj.parent('ul').parent('li').children('input#' + comboID + 'Txt').attr("disabled","true");
        elementObj.parent('ul').parent('li').children('input#' + comboID + 'Txt').val(getDefaultComboText(comboID));
        elementObj.parent('ul').parent('li').children('input#' + comboID + 'Value').val(-1);
    }
}

function changeRelationCombo(elementObj) {
    var comboID = elementObj.parent('ul').parent('li').attr('ID');

    if( comboID != "place" && comboID != "job" )
        return;

    var masterComboCondition = "";
    var relationComboCondtion = getCookie(comboID, 1);
    if (relationComboCondtion == -1) {
        relationComboCondtion = 0;
    }

    if( comboID == "place" )
    {
        masterComboCondition = getCookie('placesub', 1);
        //initRelationComboItems('placesub', masterComboCondition, relationComboCondtion);
    } else if( comboID == "job" ) {
        masterComboCondition = getCookie('business', 1);
        initRelationComboItems('business', masterComboCondition, relationComboCondtion);

        masterComboCondition = getCookie('employment', 1);
        initRelationComboItems('employment', masterComboCondition, relationComboCondtion);
    }
}

function setCookieCombo(elementObj, value) {
    var param = elementObj.parent('ul').parent('li').attr('ID');
    var cookieValue = "";

    if( value == null )
        cookieValue = elementObj.attr('ID');
    else
        cookieValue = value;

    //setCookie( param, cookieValue, 1 );
    if (param == 'job')
    {
        //setCookie('jobname', elementObj.children('a').text(), 1);
    }
    if (param == 'place')
    {
        //setCookie('placename', elementObj.children('a').text(), 1);
    }
    if (param == 'placesub')
    {
        //setCookie('placesubname', elementObj.children('a').text(), 1);
    }
}

function form_submit() {
    //if (!checkAreaAndJob($("input#placeValue").val(), $("input#jobId").val()))
    if (!$("select#prefValue").val() || !$("select#prefsubValue").val() || !$("input#jobId").val())
    {
        displayAlert();
        return;
    }

    var searchtext = '';
    if (Number($("select#prefValue").children("option:selected").val()) > 0) {
        searchtext += $("select#prefValue").children("option:selected").html();
    }
    if (Number($("select#prefsubValue").children("option:selected").val()) > 0) {
        searchtext += ' ' + $("select#prefsubValue").children("option:selected").html();
    }
    if (searchtext != '') {
        if( $("select#prefValue").children("option:selected").val() == '98' ) {
            lat = 25.02;
            lng = 121.10;
            map.setCenter( new GLatLng( lat, lng ), 12 );
            //setCookie( 'lat', map.getCenter().lat(), 1 );
            //setCookie( 'lng', map.getCenter().lng(), 1 );
        } else {
            _searchMap( searchtext, 1 );
        }
    }
}

function searchAction( address ) {

    //if (!checkAreaAndJob($("input#placeValue").val(), $("input#jobId").val()))
    if (!$("select#prefValue").children("option:selected").val() || !$("input#jobId").val())
    {
        return;
    }
    if (!isFirst)
    {
        isFirst = 1;
        return;
    }
    //$('div#detailAllListArea').html("<p class='textCenter'><img src='/img/common/bg/bg_loadingS.gif' alt='' width='20' height='20' /><span class='loadingText'>検索中です...</span></p>");

    showAjaxStatus(1);
    // 人気案件の表示部分を隠し消す。
    $('div#popularArea').html('');
    $('div#popularWordsArea').html('');
    $('div#popularDataArea').html('');

    //検索の際に設定を保持する
    //setCookie('place', $("input#placeValue").val(), 1);
    //setCookie('placename', $("input#placeTxt").val(), 1);

    var inputs = "{";
    inputs += "'" + $("input#placeTxt").attr('name') + "':'" + $("select#prefValue").children("option:selected").html() + "'";
    inputs += ", '" + $("input#placeValue").attr('name') + "':'" + $("select#prefValue").children("option:selected").val() + "'";
    inputs += ", '" + $("input#placesubTxt").attr('name') + "':'" + $("select#prefsubValue").children("option:selected").html() + "'";
    inputs += ", '" + $("input#placesubValue").attr('name') + "':'" + $("select#prefsubValue").children("option:selected").val() + "'";
    inputs += ", '" + $("input#jobName").attr('name') + "':'" + $("input#jobName").val() + "'";
    inputs += ", '" + $("input#jobId").attr('name') + "':'" + $("input#jobId").val() + "'";
    inputs += ", '" + $("input#businessTxt").attr('name') + "':'" + $("select#businessValue").children("option:selected").html() + "'";
    inputs += ", '" + $("input#businessId").attr('name') + "':'" + $("select#businessValue").children("option:selected").val() + "'";
    inputs += ", '" + $("input#employmentTxt").attr('name') + "':'" + $("select#employmentValue").children("option:selected").html() + "'";
    inputs += ", '" + $("input#employmentId").attr('name') + "':'" + $("select#employmentValue").children("option:selected").val() + "'";
    inputs += ", 'data[jobCode]':'" + $("input#job_code").val() + "'";

    if (map)
    {
        var rectObj = map.getBounds();
        var SWint = rectObj.getSouthWest();
        var NEint = rectObj.getNorthEast();
        var East = NEint.lng();
        var West = SWint.lng();
        var North = NEint.lat();
        var South = SWint.lat();
        if (East && West && North && South) {
            inputs += ", 'data[east]':'" + East + "'";
            inputs += ", 'data[west]':'" + West + "'";
            inputs += ", 'data[north]':'" + North + "'";
            inputs += ", 'data[south]':'" + South + "'";
        }
        if( address != "" ) {
            inputs += ", 'data[address]':'" + address + "'";
        }
        map.clearOverlays();
    }

    $('input#sort').val('famous');
    inputs += ", '" + $("input#sort").attr('name') + "':'" + $("input#sort").val() + "'";
    inputs += ", 'data[currentpage]':'1'";

    inputs += "}";

    eval("var jsonData="+inputs);

    $.ajax({
        type: 'POST',
        url: $('form#searchForm').attr('action'),
        data: jsonData,
        success: function(data) {
            $('div#detailAllListArea').html(data);
            showAjaxStatus(2);
            $("div#mapDefaultImage").hide();
            $("div#googleMapArea").show();
            $("div#detailAllListArea").show();
            _generateMark();
        }
    });
    return;
}

function goToPage(page) {
    gotoURL(page, 'search_map');
}

function sort(param) {
    common_sort(param, 'searchForm');
}

function _generateMark() {

    var nLength = $('ul#markItems').children('li').size();
    if(nLength && map)
    {
        var lat = '';
        var lng = '';
        var name = '';
        var job_code = $("input#job_code").val();
        var job_id = "";
        var caption = "";
        var popup = "";

        map.clearOverlays();
        for (var i = 0; i < nLength; i++) {
            var point = null;
            lat = $('ul#markItems').children('li#markItem'+i).children('label.valueLat').text();
            lng = $('ul#markItems').children('li#markItem'+i).children('label.valueLng').text();
            name = $('ul#markItems').children('li#markItem'+i).children('label.valueName').text();
            job_id = $('ul#markItems').children('li#markItem'+i).children('label.job_id').text();
            caption = $('ul#markItems').children('li#markItem'+i).children('label.caption').text();
            address = $('ul#markItems').children('li#markItem'+i).children('label.address').text();
            popup = "<p><a href=\"/" + job_code + "/" + job_id + "/\">" + name + "</a></p><p>" + caption + "</p>";
            if (lat && lng) {
                point = new GLatLng(lat, lng);
                drawMark(point, popup);
            } else {
                geocoder = new GClientGeocoder();
                if (geocoder) {
                    eval("geocoder.getLatLng(address, function( point ){ if ( point ) { drawMark(point, '" + popup + "');}});");
                }
            }
        }
    }
}

function drawMark(point, hukidashi)
{
    var baseIcon = new GIcon();
    var icon = null;
    var marker = null;
    baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    baseIcon.iconSize = new GSize(20, 34);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    baseIcon.infoShadowAnchor = new GPoint(18, 25);
    icon = new GIcon(baseIcon);
    icon.image = "/img/common/guppy_icon.png";
    icon.iconSize = new GSize(38, 47);
    icon.iconAnchor = new GPoint(19, 47);
    marker = new GMarker(point, icon);
    GEvent.addListener(marker, "click", function() {
        clickPin = 1;
        marker.openInfoWindowHtml( hukidashi );
    });
    map.addOverlay(marker);
}

function _searchMap(searchtext, mode){
    //google apiの動作を補充
    if (searchtext != "海外" || searchtext != "その他")
    {
        searchtext = searchtext + " 日本";
    }
    geocoder = new GClientGeocoder();
    if (geocoder) {
            geocoder.getLatLng(
               searchtext, function( point ){
                    if ( point ) {
                        changeEnabled(2);
                        map.setCenter(point, 12);
                        //setCookie('lat', map.getCenter().lat(), 1);
                        //setCookie('lng', map.getCenter().lng(), 1);
                        if (mode != 0)
                        {
                            searchAction();
                        }
                    }
               }
            );
    }
}

function filterAddressStrings( addr ) {

    var address = "";
    if (addr && addr.AddressDetails.Country.CountryNameCode == 'JP')
    {
        if (addr.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName != undefined && addr.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName != null )
        {
            address = address + addr.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
        }
        if (addr.AddressDetails.Country.AdministrativeArea.Locality.LocalityName != undefined && addr.AddressDetails.Country.AdministrativeArea.Locality.LocalityName != null )
        {
            address = address + "&";
            address = address + addr.AddressDetails.Country.AdministrativeArea.Locality.LocalityName;
        }
    }

    return address;
}

function searchActionFromPosition( point ) {
    geocoder = new GClientGeocoder();
    geocoder.getLocations( point,
        function( addresses ) {
            if( addresses.Status.code == 200 ) {
                var addr = addresses.Placemark[0];
                var result = filterAddressStrings(addr);
                if( result != "" && result != undefined && result != null) {
                    searchAction( result );
                }
            }
        } );
}

function checkEnabled(){
    if (clickPin == 0) {
        return enabled;
    } else {
        clickPin = 0;
        return 0;
    }
}

function changeEnabled(param){
    enabled = param;
}

function _generateMap(){

    if ($('div#map').size() > 0){
        if (!GBrowserIsCompatible()) {
            return false;
        }
    } else {
        return false;
    }

    map = new GMap2( $("div#map").get(0) );
    map.addControl(new GSmallMapControl());
    if(map){
        var lat = 35.658984;
        var lng = 139.74573;

        GEvent.addListener(map, 'moveend',   // イベントリスナ登録
            function() { // 地図が移動し終わったときに呼び出される
                changeEnabled(1);
                var result = checkEnabled();
                if (result)
                {
                    //setCookie('lat', map.getCenter().lat(), 1);
                    //setCookie('lng', map.getCenter().lng(), 1);
                    //searchAction(mode, value );
                    changeEnabled(1);
                    if (result == 1)
                    {
                        searchActionFromPosition( new GLatLng( map.getCenter().lat(), map.getCenter().lng() ) );
                    }
                }
            }
        );
        GEvent.addListener(map, 'infowindowclose',   // イベントリスナ登録
            function() {
                changeEnabled(1);
            }
        );
        GEvent.addListener(map, 'infowindowopen',   // イベントリスナ登録
            function() {
                changeEnabled(0);
            }
        );

        var searchText = '';
        //if (Number(getCookie('place', 1)) > 0)
        if (Number($("select#prefValue").children("option:selected").val()) > 0)
        {
            //searchText = getCookie('placename', 1);
            searchText = $("select#prefValue").children("option:selected").html();
        }
        //if (Number(getCookie('placesub', 1)) > 0)
        if (Number($("select#prefsubValue").children("option:selected").val()) > 0)
        {
            //searchText += " " + getCookie('placesubname', 1);
            searchText += " " + $("select#prefsubValue").children("option:selected").html();
        }

        if (searchText != '') {
            if (Number(getCookie('place', 1)) > 0 && Number(getCookie('job', 1)) > 0)
            {
                $("input#placeValue").val(getCookie('place', 1));
                $("input#jobId").val(getCookie('job', 1));
            }
            //if( getCookie( 'place', 1 ) == '98' ) {
            if ( $("select#prefValue").children("option:selected").val() == '98' ) {
                lat = 25.02;
                lng = 121.10;
                map.setCenter( new GLatLng( lat, lng ), 12 );
                //setCookie( 'lat', map.getCenter().lat(), 1 );
                //setCookie( 'lng', map.getCenter().lng(), 1 );
            } else {
                _searchMap(searchText, 0);
            }
        } else {
            var value = getCookie('lat', 1);
            if (value != -1)
            {
                lat = value;
            }
            value = getCookie('lng', 1);
            if (value != -1)
            {
                lng = value;
            }
            map.setCenter(new GLatLng(lat, lng), 12);
            //setCookie('lat', map.getCenter().lat(), 1);
            //setCookie('lng', map.getCenter().lng(), 1);
        }
    }
}

/**
 * 都道府県を選択すると市区町村を更新する。
 */
function refreshLocalCity() {
    $("select#prefValue").change( function() {
        var areaID = $("select#prefValue").children("option:selected").val();
        //  show ajax-communication status
        showAjaxStatus(1);
        //  compose Ajax url
        var ajaxURL = "";
        ajaxURL = '/ajax/location_city?areaID=' + areaID;

        //  send request
        $.getJSON(ajaxURL, {}, function(data){
            appendSelectOptions(data);
            showAjaxStatus(2);
        }, 'json');
    });
    // ブラウザの「戻る」ボタンで戻ったとき、市区町村リストを
    // 復活させる
    $("select#prefValue").triggerHandler('change');
}

/**
 * 市区町村のセレクトボックスを生成する。
 * @param JSONデータ
 */
function appendSelectOptions(data) {
    var allLength = data.point.length;
    var new_html = "<option value=\"\">市区町村を選択してください</option>";
    for (var v = 0; v < allLength; v++) {
        new_html = new_html + "<option value=\"" + data.point[v].key + "\">" + data.point[v].title + "</option>";
    }
    $("select#prefsubValue").html(new_html);
}

