if (typeof (itsmo) == 'undefined') {
var itsmo = {};
}
if (typeof (itsmo.suggest) == 'undefined') {
itsmo.suggest = {};
}
itsmo.suggest.urlAPI = '';
itsmo.suggest.clientid = '';
itsmo.suggest.taxiCountConfig = null;
itsmo.suggest.templateSuggestItem =
"
\
\
\
[suggestName]\
\
\
";
itsmo.suggest.saveRequestSgt = null;
itsmo.suggest.scrollingActive = false;
itsmo.suggest.requestSgtData = function (word, callback) {
if (itsmo.suggest.saveRequestSgt != null) {
itsmo.suggest.saveRequestSgt.abort();
}
itsmo.suggest.saveRequestSgt = $.ajax({
type: "GET",
url: itsmo.suggest.urlAPI,
dataType: "json",
cache: false,
crossDomain: true,
headers: {
'X-Suggest-Auth': 'NINAVW'
},
data: {word: word, "service.id": "NINAVW", "genre.pattern": 'W1',
"genre.target": "nm,th", "genre.count": "3", "genre.sort": "dispnum.ASC",
"address.target": "nm,kn", "address.count": "3", "address.sort": "nm.DESC",
"station.target": "nm,kn", "station.count": "3", "station.sort": "linecnt.DESC",
"poi.target": "nm,kn", "poi.count": "3", "poi.sort": "nm.DESC", "point.format": "dec"},
success: function (data) {
callback(data);
}
});
};
itsmo.suggest.requestSgtDataForTaxi = function (word, callback) {
if (itsmo.suggest.saveRequestSgt != null) {
itsmo.suggest.saveRequestSgt.abort();
}
var stationCount = '3';
var poiCount = '3';
var addressCount = '3';
if (itsmo.suggest.taxiCountConfig['POI'] != undefined) {
poiCount = itsmo.suggest.taxiCountConfig['POI'];
}
if (itsmo.suggest.taxiCountConfig['STAT'] != undefined) {
stationCount = itsmo.suggest.taxiCountConfig['STAT'];
}
if (itsmo.suggest.taxiCountConfig['ADDR'] != undefined) {
addressCount = itsmo.suggest.taxiCountConfig['ADDR'];
}
itsmo.suggest.saveRequestSgt = $.ajax({
type: "GET",
url: itsmo.suggest.urlAPI,
dataType: "json",
cache: false,
crossDomain: true,
headers: {
'X-Suggest-Auth': 'NINAVW'
},
data: {word: word, "service.id": "NINAVW", "point.format": "msec", "point.datum": "TOKYO",
"station.target": "nm,kn", "station.count": stationCount, "station.sort": "linecnt.DESC",
"poi.target": "nm,kn", "poi.count": poiCount, "poi.sort": "nm.DESC",
"address.target": "nm,kn", "address.count": addressCount, "address.sort": "modcd.ASC"},
success: function (data) {
callback(data);
}
});
};
itsmo.suggest.getSuggestion = function () {
var word = $.trim($('div.serch #freewd').val());
if (word.length > 0) {
itsmo.suggest.requestSgtData(word, itsmo.suggest.setSuggestResult);
} else {
var strHtml = '';
var eSuggestBox = $('div.header-inner div.suggestion');
eSuggestBox.html(strHtml);
eSuggestBox.fadeIn('fast');
}
};
//サジェストのプルダウンメニュー
itsmo.suggest.setSuggestResult = function (data) {
itsmo.suggest.response = data.result;
var strHtml = '';
var valInput = $.trim($('div.serch #freewd').val());
if (valInput.length > 0) {
let sort = ['genre', 'station', 'address', 'poi'];
for (var i in sort) {
let key = sort[i];
var objKey = data.result[key];
if (data.status.count[key] > 0) {
for (var i = 0; i < objKey.length; i++) {
if (i >= 3) {
break;
}
var html = itsmo.suggest.templateSuggestItem;
html = html.replace(/\[suggestClick\]/g, 'itsmo.suggest.clickSuggestItem(\'' + key + '\',\'' + i + '\')');
html = html.replace(/\[classIcon\]/g, 'icon-suggest-' + key);
html = html.replace(/\[suggestName\]/g, objKey[i].nm);
strHtml += html;
}
}
}
}
if (valInput.length > 0) {
strHtml += '- "' + valInput + '"で検索
';
}else{
itsmo.history.setHistorySearch($('div form div.suggestion'));
return false;
}
strHtml += '
';
var eSuggestBox = $('div.header-inner div.suggestion');
eSuggestBox.html(strHtml);
if ($('div.serch #freewd').is(":focus") == true) {
$('div.header-inner div.suggestion').fadeIn('fast');
}
};
//サジェスト候補を検索ログに保存
//LocalStorageに格納するにはいろいろ足りない。がurlを利用する
itsmo.suggest.clickSuggestItem = function (type , i) {
let resp = {};
if(type == 'freewd'){
resp.nm = i;
}else{
resp = itsmo.suggest.response[type][i];
}
$('#freewd').val(resp.nm);
itsmo.lib.localstorage_set(resp,type);
var suggestUrl = '';
if (type == 'genre') {
suggestUrl = '/c/' + resp.nm + '/' + encodeURIComponent(resp.id) + '/';
}
if (type == 'station') {
suggestUrl = '/detail/' + resp.tag[1].replace(type + ':', '') + '-' + resp.id + '/';
}
if (type == 'address') {
suggestUrl = '/search/addr/' + resp.cd.substr(0, 2) + '/' + resp.cd.substr(2, 3) + '/' + resp.cd.substr(5, 3) + '/';
}
if (type == 'poi') {
suggestUrl = '/detail/' + resp.tag[0].replace(type + ':', '') + '-' + resp.id + '/';
}
location.href = suggestUrl;
};