// var map var map = null; var geocoder = null; var marker = null; var centerMarker; var centerListener = null; var prevInfoWindow = null; var myMarker = new Array; var myMarkerId = new Array; var myMarkerLen; var currentMarker = null; var currentMarkerNo = -1; var zoom = 15; var lat, lng, latlng; var markerSrc = '/images/common/icon_map_01.png'; var greyMarkerSrc = '/images/common/icon_map_02.png'; var curMarkerSrc = '/images/common/icon_map_cur.png'; var markerSize = 36; if (uaDevice == 'sp') { markerSrc = '/images/common/icon_map_01_sp.png'; greyMarkerSrc = '/images/common/icon_map_02_sp.png'; curMarkerSrc = '/images/common/icon_map_cur_sp.png'; markerSize = 27; } var iconH = 54; var textH = 32; // var search var stationdata; var stationdataLen; var searchResult; var resultStation; var hitStation; var pageLimit = 20; var pagerLimit = 9; var pagerCenter = Math.ceil(pagerLimit / 2); var action = ''; var stationCount = 0; var query; var searchQuery; var searchWord; var searchCars; var prefWord, cityWord; var queryMonth; var requestSearch = ''; // var log var type_keyword = null; var type_car = null; var type_location = null; var type_city = null; var prefKeyword = null; var cityKeyword = null; var makerArr = new Array(); var makerArrTxt; var OFF = 'off'; var ON = 'on'; var searchCarsGtm; // var flg var mapFlg = 0; var carShapeFlg = 0; var carTypeFlg = 0; var placeSearchFlg = 0; var gtmCarFlg; // msg var noStationMsg00 = '中心から1.5km圏内のステーションをアイコンで表示しています。'; var noStationMsg01 = '中心から3km圏内のステーションをアイコンで表示しています'; var noStationMsg02 = '誠に申し訳ございません。
ご指定の条件に該当するステーションはありませんでした。
条件を広げて再検索してください。'; var noStationMsg03 = '誠に申し訳ございません。
3km圏内に、条件に該当するステーションはありませんでした。
条件を広げて再検索してください。'; var noSelectMsg = '検索条件を選択してください'; var prefOptionDefault = ''; var cityOptionDefault = ''; // array data var prefdata = new Array(); var caroptdata = new Array(); var carshapedata = new Array(); var cartypedata = new Array(); var cargradedata = new Array(); var carcpdata = new Array(); var requestArr = { 'car_type' : 'メーカー・車種', 'car_shape' : '車両タイプ', 'car_opt' : '装備品', 'car_grade' : '料金クラス', 'car_cp' : 'その他条件' }; // selector var $map; var $result; var $searchTab; var $stationList var $stationZero; var $searchWord01, $searchWord02, $searchWordMore; var $pref, $pref01, $city, $city01; var $pagerWrap, $pager, $page, $pageTotal, $pageNum; var $resultLead; var $carShape, $carType, $carOpt, $carGrade, $carCp; var $searchTargetForm; var $detailSearch; $(function() { $map = $('#map') $result = $('.result'); $searchTab = $('.searchSection, .searchTab'); $searchWord01 = $('#searchWord01'); $searchWord02 = $('#searchWord02'); $searchWordMore = $('#searchWordMore'); $stationList = $('.stationList02'); $stationZero = $('#stationZero'); $pref = $('#pref'); $pref01 = $('#pref01'); $city = $('#city'); $city01 = $('#city01'); $page = $('.pageNum'); $pageTotal = $page.find('.total span'); $pageNum = $page.find('.num span'); $pagerWrap = $('.pagerWrap'); $pager = $pagerWrap.find('.pager'); $resultLead = $('.result .lead'); $detailSearch = $('#detailSearch'); window.addEventListener('popstate', function (event) { location.href = '/station'; }); loadSearchData(); loadStationData(); // accordion $('.addCarselect').on('click', function() { accordion($(this), $(this).parents('.searchBtnarea').next()); return false; }); var options = { componentRestrictions: { country: 'jp' } }; var autocomplete01 = $searchWord01 ? new google.maps.places.Autocomplete($searchWord01[0], options) : null; var autocomplete02 = $searchWord02 ? new google.maps.places.Autocomplete($searchWord02[0], options) : null; var autocomplete = $searchWordMore ? new google.maps.places.Autocomplete($searchWordMore[0], options) : null; $('.pref').on('change', function() { var _this = $(this); var prefVal = $(this).val(); var $targetWord = $(this).parents('.searchForm').find('.searchWord'); if (prefVal != '') { $targetWord.val('') setCityOption(prefVal, _this.next()); } else { _this.next().html(cityOptionDefault).prop('disabled', true); } }); $('.city').on('change', function() { var _this = $(this); var cityVal = $(this).val(); var $targetWord = $(this).parents('.searchForm').find('.searchWord'); if (cityVal != '') $targetWord.val(''); }); $('#searchPlace').on('click', function() { placeSearchFlg = 0; searchWord = $searchWord01.val(); prefWord = ''; cityWord = ''; window.history.pushState(null, null, '/station'); searchStationQuery(); }); $('#searchAddress').on('click', function() { placeSearchFlg = 0; searchWord = ''; prefWord = $pref01.val(); cityWord = $city01.val(); window.history.pushState(null, null, '/station'); searchStationQuery(); }); $('.searchCarBtn').on('click', function() { placeSearchFlg = 1; action = ''; var id = $(this).attr('id'); if (id == 'searchShape') { carShapeFlg = 1; } else if (id == 'searchType') { carTypeFlg = 1; } else { carShapeFlg = 0; carTypeFlg = 0; } $searchTargetForm = $(this).parents('.searchForm'); searchWord = $searchTargetForm.find('.searchWord').val(); prefWord = $searchTargetForm.find('.pref').val(); if (searchWord != '') { $pref.val(''); prefWord = ''; cityWord = ''; searchStationQuery(); } else if (prefWord != '') { cityWord = $searchTargetForm.find('.city').val(); searchWord = ''; searchStationQuery(); } else { searchStationQuery(); } return false; }); $('.searchGps').on('click', function() { searchGps(); }); // $('.searchSection .linkList01 li a').on('click', function() { // placeSearchFlg = 0; // searchWord = $(this).text(); // $searchWordMore.val(searchWord); // prefWord = ''; // cityWord = ''; // searchStationQuery(); // // return false; // }); // reset $('input[type="reset"]').on('click', function() { var $form = $(this).parents('.searchForm'); $form.find('textarea, :text, select').val('').end().find(':checked').prop('checked', false); $form.find('select').eq(1).prop('disabled', true); }); geocoder = new google.maps.Geocoder(); // from other page if (location.search.indexOf('&') > 0) { query = location.search.split('&'); query = query[0].split('='); } else { query = location.search.split('='); } if (query[0] == '?place') { searchWord = decodeURI(query[1]); $searchWordMore.val(searchWord); prefWord = ''; cityWord = ''; searchStationQuery(); } $(window).on('resize', function() { if ($('.mapPadding01').length) $('.mapPadding01').height($('.gm-style-iw table tr').eq(0).outerHeight()); }); $(document).ready(function(){ var url = new URL(window.location.href); var params = url.searchParams; if( params.has('key') ) { if( searchWord01 != "" ){ placeSearchFlg = 0; searchWord = $searchWord01.val(); prefWord = ''; cityWord = ''; searchStationQuery(); } } }); }); // location name set function placeNameSet(results) { var pref = ''; var city = ''; var state = ''; for (var i = results.address_components.length - 1; i >= 0; i--) { var resultLen = results.address_components[i].types.length; for (var j = 0; j < resultLen; j++) { if (results.address_components[i].types[j] == 'administrative_area_level_1') { pref = results.address_components[i].short_name; } else if (results.address_components[i].types[j] == 'locality') { city += results.address_components[i].short_name; } else if (results.address_components[i].types[j] == 'sublocality_level_1') { state = results.address_components[i].short_name; } } } return [pref, city, state]; } function searchGps() { if (navigator.geolocation) { var option = { enableHighAccuracy: true, timeout: 30000, maximumAge: 600000 }; navigator.geolocation.getCurrentPosition( function(position) { searchWord = ''; pref = ''; city = ''; prefWord = ''; cityWord = ''; var $form = $('#detailSearch'); $form.find('textarea, :text, select').val('').end().find(':checked').prop('checked', false); $form.find('select').eq(1).prop('disabled', true); if ($result.is(':hidden')) searchFormat(); if(mapFlg == 0) { mapFormat(); mapFlg = 1; } lat = position.coords.latitude; lng = position.coords.longitude; latlng = new google.maps.LatLng(lat, lng); map.setCenter(latlng); if (currentMarker != null) currentMarker.setMap(null); currentMarker = new google.maps.Marker({ position: latlng, map: map, animation: google.maps.Animation.BOUNCE }); geocoder.geocode({ 'latLng': latlng }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var codedAddress = ''; [pref, city, state] = placeNameSet(results[0]); var formatAddress = results[0].formatted_address; if (formatAddress.indexOf('日本') >= 0) { formatAddress = formatAddress.replace(/^日本, 〒[0-9]{3}-[0-4]{4} /, ''); $searchWordMore.val(formatAddress); } $pref.val(''); window.setTimeout(function() { action = 'location'; searchStationQuery(); }, 1); } }); }, function(error) { alert('現在地の取得に失敗しました。(' + error.code + ':' + error.message + ')'); return false; } ); } else { alert('ご利用のブラウザではGPSによる現在地の取得に対応していません。'); return false; } } // search station function searchStation() { $.ajax({ url: '/st_search/station_search.php' + searchQuery, dataType: 'json', cache: false, async: false }) .then( // success function(data) { if (data.rcd == '1') { alert(data.msg); } else { setTimeout(function(){ $('#mapLoadingLayer').hide(); }, 1000); searchResult = data.result; if (action != 'map' && $map.is(':visible')) { zoom = (searchResult != 1500) ? 14 : 15; map.setZoom(zoom); } hitStation = new Array(); if (searchResult != 0) { var html = ''; $stationList.empty(); carShapeFlg = 0; carTypeFlg = 0; page = 1; resultStation = data.station; stationCount = resultStation.length; for(var i = 0; i < stationCount; i++){ if (i < pageLimit) { html += generateStationComponent(resultStation[i]); } hitStation.push(resultStation[i]['station_id']); } $stationList.append(html); pagerCreate(1); if (searchResult == 3000) { $resultLead.html(noStationMsg01).show(); } else { //$resultLead.hide(); $resultLead.html(noStationMsg00).show(); } $page.show(); $stationZero.hide(); $stationList.show(); $pageTotal.text(stationCount); $pageNum.text(stationCountTxt(page)); } else { if($map.is(':visible')) { $resultLead.html(noStationMsg03).show(); $('input[name="st_coordinates"]').val(lat +'/'+ lng); } else { $resultLead.html(noStationMsg02).show(); $('input[name="st_coordinates"]').val(''); } $('input[name="st_keywords"]').val(requestSearch); $page.hide(); $pagerWrap.hide(); $stationZero.show(); $stationList.hide(); } if ($map.is(':visible')) { putAllMarkers(); } if ($map.is(':visible')) { setTimeout(function () { if (action != 'map' && $map.is(':visible')) { zoom = (searchResult != 1500) ? 14 : 15; map.setZoom(zoom); } var dragOptions = { draggable: true }; map.setOptions(dragOptions); centerListener = google.maps.event.addListener(map, 'dragend', function() { if ($detailSearch.is(':visible')) { $detailSearch.prev().removeClass(curClass); $detailSearch.hide(); } $('#mapLoadingLayer').show(); google.maps.event.removeListener(centerListener); var dragOptions = { draggable: false }; map.setOptions(dragOptions); window.setTimeout(function() { action = 'map'; searchStationQuery(); }, 1); }); }, 600); } var gtmLocation = null; var gtmMaker = ''; var gtmKeyword = null; var gtmPref = null; var gtmCity = null; if (action != 'map') { type_car = (gtmCarFlg == 1) ? ON : OFF; if (action == 'location') { type_location = ON; gtmLocation = city + state; } else { type_location = OFF; } if (searchWord != '') { type_keyword = ON; gtmKeyword = searchWord; } else { type_keyword = OFF; } if (searchWord == '' && prefWord != '') { type_city = ON; gtmPref = prefWord; if (cityWord != '') { gtmCity = cityWord; } } else { type_city = OFF; } if(makerArr.length) { for(var i = 0; i < makerArr.length; i++) { gtmMaker += (i == 0) ? makerArrTxt[makerArr[i]] : ',' + makerArrTxt[makerArr[i]]; } } else { gtmMaker = null; } var gtmResult = (searchResult == 0 || (searchWord != '' || prefWord != '') || action == 'location') ? searchResult: null; var dataLayer = dataLayer || []; window.dataLayer.push({ "event": "station_search", "type_keyword": type_keyword, "type_city": type_city, "type_car": type_car, "type_location": type_location, "keyword": gtmKeyword, "prefecture": gtmPref, "city": gtmCity, "location": gtmLocation, "maker": gtmMaker, "model": searchCarsGtm['car_type'], "type": searchCarsGtm['car_shape'], "equipment": searchCarsGtm['car_opt'], "price": searchCarsGtm['car_grade'], "other": searchCarsGtm['car_cp'], "result": gtmResult }); } } }, // error function (jqXHR, textStatus, errorThrown) { alert('通信に失敗しました。('.jqXHR.status+':'+jqXHR.statusText+')'); }); } // ステーション全てのマーカー情報取得 function loadStationData() { $.ajax({ url: '/st_search/station_map.json', cache: false }) .then( // success function(data) { stationdata = data; stationdataLen = stationdata.length; }, // error function (jqXHR, textStatus, errorThrown) { alert('通信に失敗しました。('.jqXHR.status+':'+jqXHR.statusText+')'); }); } // 検索用リスト取得 function loadSearchData() { $.ajax({ url: '/st_search/station_search_item.json', cache: false }) .then( // success function(data, status, xhr) { if(queryMonth) { var month = queryMonth; } else { var month = new Date(xhr.getResponseHeader('Date')).getMonth()+1; } //car_shape var dataShape = data.car_shape; var carShapeLen = dataShape.length; for (var i = 0; i < carShapeLen; i++) { var shape = dataShape[i]; var shapeVal = dataShape[i].value; carshapedata[shapeVal] = new Array(); carshapedata[shapeVal]['name'] = shape.name; carshapedata[shapeVal]['cnt'] = shape.cnt; } setCarShapeList($('.carShapeList'), carshapedata, 'shape', 1) //car_grade var dataGrade = data.car_grade; var dataGradeLen = dataGrade.length; for (var i = 0; i < dataGradeLen; i++) { var grade = dataGrade[i]; cargradedata[grade.value] = grade.name; } $('.carGradeList').each(function(idx) { setSearchCheckList($(this), cargradedata, 'grade', idx) }); //car_type var dataType = data.car_type; var dataTypeLen = dataType.length; for (var i = 0; i < dataTypeLen; i++) { var typeMaker = dataType[i]; var companyName = typeMaker.name; var typeMakerVal = typeMaker.value; var typeMakerValLen = typeMakerVal.length; cartypedata[companyName] = new Array(); for (var j = 0; j < typeMakerValLen; j++) { var typeCar = typeMakerVal[j]; cartypedata[companyName][typeCar.car_type_id] = new Array(); cartypedata[companyName][typeCar.car_type_id] = typeCar.car_type_name; } } $('.carTypeList').each(function(idx) { setCarTypeList($(this), cartypedata, 'name', idx) }); //car_opt var dataOpt = data.car_opt; var dataOptLen = dataOpt.length; for (var i = 0; i < dataOptLen; i++) { var opt = dataOpt[i]; caroptdata[opt.value] = opt.name; } $('.carOptList').each(function(idx) { setSearchCheckList($(this), caroptdata, 'opt', idx) }); //car_cp var dataCp = data.station_cp; var dataCpLen = dataCp.length; for (var i = 0; i < dataCpLen; i++) { var cp = dataCp[i]; carcpdata[cp.value] = cp.name; } $('.carCpList').each(function(idx) { setSearchCheckList($(this), carcpdata, 'cp', idx) }); //pref var dataPref = data.pref; var dataPrefLen = dataPref.length; for (var i = 0; i < dataPrefLen; i++) { var prefArr = dataPref[i]; var prefName = prefArr.name; prefdata[prefName] = new Array(); for (key in prefArr.city) { prefdata[prefName][key] = new Array(); prefdata[prefName][key] = prefArr.city[key]; } } setPrefOption(); $('.city').each(function() { setCityOption('', $(this)); }); $('#pref01').val('東京都'); setCityOption('東京都', $city01); $('#city01').val('渋谷区'); }, // error function (jqXHR, textStatus, errorThrown) { alert('通信に失敗しました。('.jqXHR.status+':'+jqXHR.statusText+')'); }); } // function to half width function toHalfWidth(value) { return value.replace(/ /g, " ").replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); }); } // disp page number count function stationCountTxt(page) { return ((page - 1) * pageLimit + 1) + '~' + (page * pageLimit > stationCount ? stationCount : page * pageLimit); } // maker check function makerSelect(target) { target.find('.makerName input').each(function() { var _this = $(this); var maxLen = $(this).parent().next().find('input').length; //all check $(this).on('click', function() { $(this).parent().next().find('input').prop('checked', this.checked); }); //check $(this).parent().next().find('input').on('click', function() { if (_this.parent().next().find('input:checked').length == maxLen) { _this.prop('checked', 'checked'); } else { _this.prop('checked', false); } }); }); } // disp car_type function setCarTypeList(target, data, name, id) { var listHttml = '\n'; var i = 1; makerArrTxt = new Array(); for (key1 in data) { var j = 1; makerArrTxt.push(key1); listHttml += '
\n'; listHttml += '

\n'; listHttml += ' \n'; listHttml += '
\n'; i++; } target.html(listHttml); makerSelect(target); } // disp car_shape function setCarShapeList(target, data, name, id) { var listHttml = '\n'; var i = 1; for (key in data) { listHttml += '
  • \n'; i++; } target.html(listHttml); } // disp checkbox_list function setSearchCheckList(target, data, name, id) { var listHttml = '\n'; var i = 1; for (key in data) { listHttml += '
  • \n'; i++; } target.html(listHttml); } // set pref option function setPrefOption() { var prefOption = '\n'+ prefOptionDefault +'\n'; for (key in prefdata) { prefOption += '\n'; } $('.pref').html(prefOption); } // set city option function setCityOption(prefVal, city) { var cityOption;// = cityOptionDefault; for (key1 in prefdata) { if (key1 == prefVal) { for (key2 in prefdata[key1]) { cityOption = '' + cityOption; } break; } } cityOption = cityOptionDefault + cityOption; city.html(cityOption); if (cityOption == cityOptionDefault) { city.prop('disabled', true); } else { city.prop('disabled', false); } } // set search query function setQuery(target, name) { var cnt = 0; var queryTxt = ''; var requestData = ''; searchCars[name] = ''; searchCarsGtm[name] = ''; if(name == 'car_type') makerArr = new Array(); target.each(function() { if ($(this).is(':checked')) { var comma = (cnt == 0) ? '' :','; var gtmTxt = $(this).next().find('.labelName').text(); searchCars[name] += comma + $(this).val(); if(name == 'car_shape') { queryTxt = gtmTxt.replace(/(.+)/, ''); } else { queryTxt = gtmTxt; } searchCarsGtm[name] += comma + queryTxt; cnt++; if(requestData == '') { requestData += requestArr[name] + ':'; } else { requestData += '/'; } if(name == 'car_type') { var makerId = $(this).parents('.carTypeList').find('> div').index($(this).closest('div')); if(makerArr.indexOf(makerId) == -1) makerArr.push(makerId); requestData += makerArrTxt[makerId] +' '+ queryTxt; } else { requestData += queryTxt; } } }); if(searchCarsGtm[name] == '') { searchCarsGtm[name] = null; } else { if(requestSearch != '') { requestSearch += '
    '; } requestSearch += requestData; } } // set search station query function searchStationQuery() { searchQuery = ''; searchCarsGtm = new Array(); searchCarsGtm['car_type'] = null; searchCarsGtm['car_shape'] = null; searchCarsGtm['car_opt'] = null; searchCarsGtm['car_grade'] = null; searchCarsGtm['car_cp'] = null; if (action == 'map' || action == 'location') $searchTargetForm = $detailSearch; if (placeSearchFlg != 0) { searchCars = new Array(); $carType = $searchTargetForm.find('input[name="car_type"]'); $carShape = $searchTargetForm.find('input[name="car_shape"]'); $carOpt = $searchTargetForm.find('input[name="car_opt"]'); $carGrade = $searchTargetForm.find('input[name="car_grade"]'); $carCp = $searchTargetForm.find('input[name="car_cp"]'); requestSearch = ''; setQuery($carType, 'car_type'); setQuery($carShape, 'car_shape'); setQuery($carOpt, 'car_opt'); setQuery($carGrade, 'car_grade'); setQuery($carCp, 'car_cp'); if (carShapeFlg == 1 && searchCars['car_shape'] == '') { alert('車両タイプを選択してください。'); pageScroll($('.deviceLev02Ttl02').eq(0), 0); carShapeFlg = 0; return false; } else if (carTypeFlg == 1 && searchCars['car_type'] == '') { alert('車種を選択してください。'); pageScroll($('.deviceLev02Ttl02').eq(1), 0); carTypeFlg = 0; return false; } else { for (key in searchCars) { if (searchCars[key] != '') { var searchArr = searchCars[key].split(','); if(key == 'car_shape' || key == 'car_grade') { searchQuery += '&' + key + '=' + encodeURI(searchCars[key]); } else { searchQuery += '&' + key + '=' + searchCars[key]; } $detailSearch.find('input[name="' + key + '"]').each(function() { if (searchArr.indexOf($(this).val()) >= 0) { $(this).prop('checked', 'checked'); } }); } } $('#carNameSearch .makerName input').each(function(idx) { if($(this).prop('checked')) { $detailSearch.find('.makerName input').eq(idx).prop('checked', 'checked'); } }); } } else { placeSearchFlg = 1; } if (searchQuery == '') { gtmCarFlg = 0; if (searchWord == '' && prefWord == '' && action == '') { alert('検索条件を設定してください'); return false; } } else { gtmCarFlg = 1; } if (searchWord == '' && prefWord == '' && action == '') { $map.hide(); } codeAddress(); } // set map code function codeAddress() { if (action != '') { if (action == 'map') { var bounds = map.getBounds(); var center = bounds.getCenter(); lat = center.lat(); lng = center.lng(); } window.setTimeout(function() { searchQuery = '?lat=' + lat + '&lng=' + lng + searchQuery; searchStation(); }, 1); } else if (searchWord != '' || prefWord != '') { var geoWord = (searchWord == '') ? prefWord + cityWord : searchWord; if (geocoder) { geocoder.geocode({ 'address': geoWord }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { $map.show(); reSearchSet(); if (mapFlg == 0) { mapFormat(); mapFlg = 1; } if ($result.is(':hidden')) searchFormat(); reSearchSet(); $pref.val(prefWord); setCityOption(prefWord, $city); $city.val(cityWord); if (marker) marker.setMap(null); lat = results[0].geometry.location.lat(); lng = results[0].geometry.location.lng(); latlng = new google.maps.LatLng(lat, lng); map.setCenter(latlng); window.setTimeout(function() { searchQuery = '?lat=' + lat + '&lng=' + lng + searchQuery; searchStation(); }, 1); } else { alert('検索された住所/地名/ランドマークが見つかりませんでした。'); return false; } }); } } else { if ($result.is(':hidden')) searchFormat(); reSearchSet(); searchQuery = searchQuery.replace('&', '?'); searchStation(); } } function reSearchSet() { if ($detailSearch.is(':visible')) { $detailSearch.prev().removeClass(curClass); $detailSearch.hide(); } pageScroll($result, 0); } // page change function pageChange(page) { var html = ''; $stationList.empty(); var startId = (page - 1) * pageLimit; var endId = page * pageLimit; if (endId > stationCount) { endId = stationCount; } for (var i = startId; i < endId; i++) { html += generateStationComponent(resultStation[i]); } $stationList.append(html); pagerCreate(page); $pageNum.text(stationCountTxt(page)); pageScroll($page, 0); } // map format function mapFormat() { var myOptions = { zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP /*gestureHandling: 'greedy'*/ }; map = new google.maps.Map($map[0], myOptions); var centerIcon = new google.maps.MarkerImage('/images/common/center.gif', new google.maps.Size(20, 20), new google.maps.Point(0, 0), new google.maps.Point(10, 10)); centerMarker = new google.maps.Marker({ map: map, icon: centerIcon }); $map.append('
    '); } // search format function searchFormat() { $searchTab.remove(); $result.show(); } // station list generate function generateStationComponent(station) { var today = new Date(); var dates = station.service_start_date.split('/'); var serviceStart = new Date(dates[0], dates[1] - 1, dates[2]); var html = '\n'; var straddr = ''; var str = station.station_address.replace(/^〒[0-9]{7} /, ''); html += '
  • \n'; html += '
    \n'; html += '
    \n'; html += ' 三井のカーシェアーズ\n'; if (station.new_flg == 1) { html += ' ' + station.service_start_date + ' オープン\n'; } else if (station.new_flg == 2) { html += ' ' + station.service_start_date + ' オープン予定\n'; } html += ' ' + station.station_name + '\n'; html += '
    \n'; html += '
    \n'; html += '
    \n'; html += '
    住 所
    \n'; html += '
    ' + str + '
    \n'; html += '
    \n'; html += '
    \n'; html += '
    アクセス
    \n'; html += '
    ' + station.access_info + '
    \n'; html += '
    \n'; html += '
    \n'; html += '
    設置車両
    \n'; html += '
    ' + station.car_info_disp + '
    \n'; html += '
    \n'; html += '
    \n'; html += '
    \n'; html += '
  • '; return html; } // pager create function pagerCreate(page) { var html = ''; var pageCount = Math.ceil(stationCount / pageLimit); var start = 1; var end = pageCount; if (pageCount > pagerLimit) { if (page > (pageCount - pagerCenter)) { end = pageCount; start = pageCount - (pagerLimit - 1); } else if (page > pagerCenter) { start = page - (pagerCenter - 1); end = page + (pagerCenter - 1); } else { end = pagerLimit; } } if (page > 1) html = '\n'; for (i = start; i <= end; i++) { if (i == page) { html += '
  • ' + i + '
  • \n'; } else { html += '
  • ' + i + '
  • \n'; } } if (page < pageCount) { html += '\n'; } $pager.empty().append(html); $pagerWrap.show(); } // put marker function putAllMarkers() { if(action != 'map') { centerMarker.setPosition(map.getCenter()); } if (myMarker == '') { $.each(stationdata, function() { var mNo = myMarker.length; var html = ''; var stationId = this.station_id; var stationName = this.station_name; var stationPermalink = this.permalink; var stationLat = this.station_lat_y; var stationLng = this.station_lon_x; html = '\n'; html += ' \n'; html += ' \n'; html += '
    ' + stationName + '
    ステーション詳細へ
    \n'; html += '
    \n'; html += '
    \n'; myMarkerId.push(stationId); var infoWindow; var markerLatlng = new google.maps.LatLng(stationLat, stationLng); var markerImg = (hitStation.indexOf(stationId) >= 0) ? markerSrc : greyMarkerSrc; var centerIcon = { url: markerImg, scaledSize: new google.maps.Size(markerSize, markerSize) }; myMarker[mNo] = new google.maps.Marker({ position: markerLatlng, map: map, title: stationName, icon: centerIcon, zIndex: mNo }); google.maps.event.addListener(myMarker[mNo], 'click', function() { changeMarkerImage(mNo, markerImg); if (prevInfoWindow) prevInfoWindow.close(); infoWindow = new google.maps.InfoWindow({ disableAutoPan: false, noSupress: true, zIndex: 9999 }); infoWindow.setContent(html); infoWindow.open(map, myMarker[mNo]); prevInfoWindow = infoWindow; map.setCenter(markerLatlng); google.maps.event.addListener(infoWindow, 'domready', function(event) { $('.gm-style-iw').parent().addClass('toolTip'); setTimeout(function() { var nameH = $('.gm-style-iw table tr').eq(0).outerHeight(); var linkH = $('.gm-style-iw table tr').eq(1).outerHeight(); $('.mapPadding01').height(nameH); $('.mapPadding02').height(linkH).css('top', nameH + 'px'); }, 100); }); window.setTimeout(function() { map.setCenter(markerLatlng); }, 500); }); this.marker = myMarker[mNo]; }); myMarkerLen = myMarker.length; } else { for (var i = 0; i < myMarkerLen; i++) { if (currentMarkerNo != i) { var markerImg = (hitStation.indexOf(myMarkerId[i]) >= 0) ? markerSrc : greyMarkerSrc; var centerIcon = { url: markerImg, scaledSize: new google.maps.Size(markerSize, markerSize) }; myMarker[i].setIcon(centerIcon); } } } } // change marker image function changeMarkerImage(markerNo, markerImg) { if (currentMarkerNo >= 0 && markerNo != currentMarkerNo) { var formerImage = markerImg; var formerImage = { url: markerImg, scaledSize: new google.maps.Size(markerSize, markerSize) }; myMarker[currentMarkerNo].setIcon(formerImage); } myMarker[markerNo].setIcon(curMarkerSrc); currentMarkerNo = markerNo; } // no other maeker click (function fixInfoWindow() { var set = google.maps.InfoWindow.prototype.set; google.maps.InfoWindow.prototype.set = function(key, val) { if (key === 'map') { if (!this.get('noSupress')) { return; } } set.apply(this, arguments); } })(); $(document).ready(function(){ // ユーザーエージェント識別 var ua = window.navigator.userAgent.toLowerCase(); if(document.URL.match(/\?/)) { // URLを取得し「?」で分割 var url = location.href; url = url.replace(/#.*$/,''); var urlParam = url.split('?'); var urlArray = urlParam[1].split('&'); // パラメータ用の配列を用意 var paramArray = []; // 配列にパラメータを格納[ for(i=0; i'); } if(textP!='undefined') { placeSearchFlg = 0; searchWord = ''; prefWord = textP; cityWord = textC; searchStationQuery(); } if(textG!='undefined') { searchGps(); } } });