CINXE.COM
マイケル・ジョーダン物語 - 街の本屋の在庫検索 - 全国書店案内 - 東京都書店商業組合青年部
<!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/Dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="keywords" content="東京都書店地図,東京都書店商業組合青年部,東京組合青年部,東書商青年部,書店案内,配達案内,本の配達,東京,書店組合,書店,本屋,配達,本, ,東京都書店商業組合,東京組合,東書商,書店地図"> <meta name="description" content="東京都書店商業組合青年部がその総力を結集して作成した全国全書店の地図です。 2016年11月現在全国役3900店舗の書籍のリアルタイム在庫検索と1店舗の雑誌の在庫検索が可能です。 店のアイコンをクリックすると電話番号、営業時間やオリジナルHP、注文HPなどが表示されネットからも注文できます。 また、配達してくれる店まで分かります。 書店組合に加盟している店だけでなく元来商売敵である組合非加盟店についても情報収集して登録しています。 書店総合案内です。"> <!--修正箇所1--> <title>マイケル・ジョーダン物語 - 街の本屋の在庫検索 - 全国書店案内 - 東京都書店商業組合青年部</title> <link rel="StyleSheet" href="mapstyle.css"> <!-- leaflet用CSS --> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin=""> <!-- leaflet用Script --> <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script> <script src="https://ajax.googleapis.com/ajax/libs/yui/2.9.0/build%2Fyuiloader%2Fyuiloader-min.js" type="text/javascript"></script> <script src="stateinfo_leaf.js" type="text/javascript"></script> <!--[if gte IE 4]> <script type="text/javascript"> function cnv_mapoffset_x(x){ return(x); } function cnv_mapoffset_y(y){ return(y); } </script> <![endif]--> <![if ! gte IE 4]> <script type="text/javascript"> function cnv_mapoffset_x(x){ return(x - 25); } function cnv_mapoffset_y(y){ return(y - 28); } </script> <![endif]> <script type="text/javascript"> //<![CDATA[ // 引数解析用汎用クラス var locationsearch; function CLocationSearch(sSource) { /* 初期化処理 */ var sAry = new Array(); /* アイテム配列を追加 */ { var nCur = 0, nRet = 0; //sSource = 'http://192.168.0.2/seinenbu/kumiaimap_utf8.htm?bkey=%8E%80%82%C9%82%BD%82%AD%82%C8%82%C1%82%BD%82%E7%81A%82%B1%82%EA%82%F0%93%C7%82%DF%81I'; //sSource = decodeURI('?bkey=ウイキペディア'); //sSource = escape('http://192.168.0.2/seinenbu/kumiaimap_utf8.htm?bkey=%8E%80%82%C9%82%BD%82%AD%82%C8%82%C1%82%BD%82%E7%81A%82%B1%82%EA%82%F0%93%C7%82%DF%81I'); //sSource = decodeURI('?bkey=ウイキペディア'); //var decodedSource = decodeURI(sSource); //alert("坂の上の雲のエンコード" + decodedSource); sSource = decodeURI(sSource); var sSearch = sSource.substr(1); var sName, sValue; nRet = sSearch.indexOf('=', nCur) // 最初の'='を検索 while(nRet >= 0) { // '='以前が変数名 sName = sSearch.substring(nCur, nRet); //if (sName.substring(0,1) == '%'){ // sName = unescape(sName); //} nCur = nRet + 1; // 値を取り出す nRet = sSearch.indexOf('&', nCur); // 変数の区切りを検索 if (nRet == -1) nRet = sSearch.length + 1; // なければ最後まで sValue = sSearch.substring(nCur, nRet); //if (sValue.substring(0,1) == '%'){ // sValue = unescape(sValue); //} // 配列に格納 sAry[sName] = sValue; // 次を検索 nCur = nRet + 1; nRet = sSearch.indexOf('=', nCur); } } /* 値 */ this.valueOf = function () { return decodedSource; } /* 値を取り出すメソッド */ this.item = function (sVarname) { try { return sAry[sVarname]; //あれば返す } catch(e) { return ''; //なければ空文字を返す } } /* 要素数 */ this.length = function () { return sAry.length; } /* toString */ this.toString = function () { return this.length + ''; } } function moji_chks(InputStr){ return !(isNaN(InputStr)); } var keyword_japanese = { "表示選択": "showkind", "検索キーワード": "bkey", "検索種別": "mode_cnv", "緯度": "lat", "経度": "lng", "縮尺": "zoom", "都道府県": "state", "支部名": "blockname" } var select_items = { "全てのお店": "0", "配達してくれるお店": "1", "ネット注文可能店": "2", "「Honya Club」受け取り店": "3", "「e-hon」受け取り店": "4", "東京都書店商業組合加盟店": "5", "書店商業組合加盟店": "6", "書店商業組合青年部加盟店": "7", "店内在庫のわかる店(書籍)": "8", "店内在庫のわかる店(雑誌)": "9", "掘り出し選書加盟店": "10", "掘り出し選書グループ1": "11", "掘り出し選書グループ2": "12", "掘り出し選書グループ3": "13", "掘り出し選書グループ4": "14", "掘り出し選書グループ5": "15", "掘り出し選書グループ6": "16", "掘り出し選書グループ7": "17", "掘り出し選書グループ8": "18" }; var blocks = { cyd: "千代田", cuo: "中央", mnt: "港・渋谷", bnk: "文京", tit: "台東", sng: "品川", oot: "大田", mgr: "目黒・世田谷", szk: "新宿", nkn: "中野・杉並", tsm: "豊島・練馬", itb: "板橋", kta: "北", ark: "荒川・足立", smd: "墨田・葛飾", ktu: "江東・江戸川", msn: "武蔵野", tck: "立川", hcj: "八王子" } // アイコンの元データ {名前: [画像ファイル,幅,高さ]} var ic = {}; const icList = { clearlightblue: ['clearlightblue-s.gif', 12, 16], clearred: ['clearred-s.gif', 12, 18], clear: ['clear-s.gif', 12, 16], lightblue: ['lightblue-s.gif', 12, 18], lightblue_hole: ['lightblue_hole-s.gif', 12, 18], blinkred300: ['blinkred300-s.gif', 12, 18], blinkred500: ['blinkred500-s.gif', 12, 18], blinkred1000: ['blinkred1000-s.gif', 12, 18], blinkorange300: ['blinkorange300-s.gif', 12, 18], blinkorange500: ['blinkorange500-s.gif', 12, 18], blinkorange1000: ['blinkorange1000-s.gif', 12, 18], blinkblue300: ['blinkblue300-s.gif', 12, 18], blinkblue500: ['blinkblue500-s.gif', 12, 18], blinkblue1000: ['blinkblue1000-s.gif', 12, 18], redyellow3: ['redyellow3-s.gif', 12, 18], redyellow2: ['redyellow2-s.gif', 12, 18], redyellow: ['redyellow-s.gif', 12, 18], red: ['red-s.gif', 12, 18], sarmon: ['sarmon-s.gif', 12, 18], sarmon_hole: ['sarmon_hole-s.gif', 12, 18], orange: ['orange-s.gif', 12, 18], orange_hole: ['orange_hole-s.gif', 12, 18], yellow: ['yellow-s.gif', 12, 18], white: ['white-s.gif', 12, 18], cleargray: ['cleargray.gif', 12, 16] }; var startTimeout = function() { // setTimeout(実行する関数名, ミリ秒) setTimeout(example, 1440000); }; var example = function() { alert("画面表示後24分が経過しました。セッションが終了し、在庫検索が出来なくなりますので、一旦画面を閉じます。大変お手数ですが、再度画面を開き直して下さい。"); window.open('about:blank', '_self').close(); }; startTimeout(); var ehon_af = 'none' //'a8' or 'vc 'or 'none'; var shops = new Array(); var arg_selectid; //引数select=? var arg_block; //引数blockname=??? var arg_shopid; //引数shopid=??? var arg_horidashi; //引数horidashi=? var arg_event; //引数event=10 var arg_bkey; //引数bkey=? var arg_mode_cnv; //引数mode_cnv=? var arg_lat; //引数lat=? var arg_lng; //引数lng=? var arg_zoom; //引数scale=? var arg_state; //引数state=? 都道府県名 var defurl_vc_readershop_1 = 'http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=3109772&pid=' ;//e-honの組合代表書店のページ1/3(valuecommerceの場合) var defurl_vc_readershop_2 = '882639465'; //e-honの組合代表書店のページ2/3(valuecommerceの場合) var defurl_vc_readershop_3 = '&vc_url=http%3A%2F%2Fwww.e-hon.ne.jp%2Fbec%2FSF%2FShotenHome%3FshotenCode%3D94509%26List%26TohanShotenHome'; //e-honの組合代表書店のページ3/3(valuecommerceの場合) var defurl_A8_readershop_1 = 'https://px.a8.net/svt/ejp?a8mat=2ZW5X8+GAFZN6+3TDU+BW8O2&a8ejpredirect=' ;//e-honの組合代表書店のページ1/3(A8の場合) var defurl_A8_readershop_2 = ''; //e-honの組合代表書店のページ2/3(A8の場合) var defurl_A8_readershop_3 = 'http%3A%2F%2Fwww.e-hon.ne.jp%2Fbec%2FSF%2FShotenHome%3FshotenCode%3D94509%26List%26TohanShotenHome'; //e-honの組合代表書店のページ3/3(A8の場合) var defurl_none_readershop = 'http://www.e-hon.ne.jp/bec/SF/ShotenHome?shotenCode=94509&List&TohanShotenHome'; //e-honの組合代表書店のページ(アフィなしの場合) var defurl_ls = 'http://linksynergy.jrs5.com/fs-bin/click?id=JJgkxMbqfus&subid=&offerid=236754.1&type=10&tmpid=8177&u1='; // + cur_shop["店番号"] + '&RD_PARM1=' + hc_url + '%3Fetcaff%3DAFI-LS'; var defurl_honto_sp = 'http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=3109772&pid=884095738&vc_url=https%3A%2F%2Fhonto.jp%2F'; //丸善ジュンクのアフィリエイトサンプルページ var defurl_kino_sp = 'http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=3109772&pid=882941500&vc_url=http%3A%2F%2Fwww.kinokuniya.co.jp%2F'; //紀伊國屋のアフィリエイトサンプルページ var defurl_honto_kt= 'https://honto.jp/reg.html?cid=ip_hb_hm_05'; //hontoの会員登録のページ var defurl_kino_kt= 'https://www.kinokuniya.co.jp/member/CMmMemberEntry.jsp'; //紀伊國屋の会員登録のページ var ehon_book_url_parts = 'Detail?refISBN='; //var ehon_book_url_parts = 'Detail%3FrefISBN%3D'; var ehon_magazin_url_parts = 'DetailZasshi?refShinCode=090000000'; //var ehon_magazin_url_parts = 'DetailZasshi%3FrefShinCode%3D090000000'; var defurl_ehon_bd_vc = 'http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=3109772&pid=882639465&vc_url=http%3A%2F%2Fwww.e-hon.ne.jp%2Fbec%2FSA%2F<BOOKorMAG>'; var defurl_ehon_bd_a8 = 'https://px.a8.net/svt/ejp?a8mat=2ZW5X8+GAFZN6+3TDU+BW8O2&a8ejpredirect=http%3A%2F%2Fwww.e-hon.ne.jp%2Fbec%2FSA%2F<BOOKorMAG>'; var defurl_ehon_bd_none = 'https://www.e-hon.ne.jp/bec/SA/<BOOKorMAG>'; var defurl_honto_bd = 'http://honto.jp/netstore/pd-book__INSERT_LOCALCODE.html'; var defurl_kino_bd = 'http://www.kinokuniya.co.jp/f/dsg-01-_INSERT_ISBN'; var target; var target0; var target1; var target2; var shoplist; var defLat = 35.681099; var defLng = 139.767084; var defZoom = 13; var defState = 'tokyo'; var ehon_registed = false; var cookies; var specified_centerstate; //最初の表示中心の県 var cur_centerstate;//現在の表示中心の県 var is_send2_box; var now_moveing = false;//コールバック動作中(スレッドの排他制御の為。注意!!書き込みはイベントコールバックに限る!!) function calc_centerstate(){ var ret; if (map !== undefined){ var min_distance = (180 * 180) + (180 * 180); for(var state in shops){ var w_disty = stateinfo[state]['center'][0] - map.getCenter().lat; if (w_disty < 0) w_disty * (-1); var w_distx = stateinfo[state]['center'][1] - map.getCenter().lng; if (w_distx < 0) w_distx * (-1); var w_dist = ((w_disty * w_disty) + (w_distx * w_distx)); if (w_dist < min_distance){ min_distance = w_dist; ret = state; } } } return ret; } function set_centerstate(new_centerstate){ if (new_centerstate === undefined) cur_centerstate = specified_centerstate; if (cur_centerstate != new_centerstate){ cur_centerstate = new_centerstate; var ii = 0; var html_str = new Array(); html_str[ii++] = '<div style="width:'; html_str[ii++] = stateinfo[cur_centerstate]['mapsize_x']; html_str[ii++] = 'px;"><img src="js/'; html_str[ii++] = cur_centerstate; html_str[ii++] = '-s.jpg" name="tizu2-s" usemap="#mainMap" style="border-style:none;">'; html_str[ii++] = '<!--[if gte IE 4]>'; html_str[ii++] = '<map name="mainMap" onclick="statemap_click(event.offsetX,event.offsetY)">'; html_str[ii++] = '<![endif]-->'; html_str[ii++] = '<![if ! gte IE 4]>' html_str[ii++] = '<map name="mainMap" onclick="statemap_click(event.layerX-' html_str[ii++] = (200-stateinfo[cur_centerstate]['mapsize_x'])/2; html_str[ii++] = ',event.layerY)">'; html_str[ii++] = '<![endif]>'; html_str[ii++] = '<area shape="rect" coords="0,0,'; html_str[ii++] = stateinfo[cur_centerstate]['mapsize_x']; html_str[ii++] = ','; html_str[ii++] = stateinfo[cur_centerstate]['mapsize_y']; html_str[ii++] = '">'; html_str[ii++] = '</map></div>'; document.getElementById('statemap').innerHTML = html_str.join(''); } } function sort_states(){ shops.sort( function(a,b){ var aName = a["s_key"]; var bName = b["s_key"]; if( a < b ) return -1; if( a > b ) return 1; return 0; } ); } function get_showstates(){ //現在表示中の県の配列を取得 var ret = new Array(); for (var cur_state in shops){ ret.push(cur_state); } return ret; } function copy_states(){ //load済みの県のデータをshopsにセット var changed = false; for (var cur_state in stateinfo){ if (!shops[cur_state] && stateinfo[cur_state]['loaded'] == 1){ //load指示が出ていてかつshopsがない。反対のunloadの場合は同期で終了するのでここで処理する必要なし shops[cur_state] = stateinfo[cur_state]['shop_data']; if (avastate) init_avas(cur_state);//在庫検索モードなら在庫表示テーブルを初期化する changed = true; } } return changed; } function show_statestring(){ //現在表示中の県の配列を画面に表示 var w_array = new Array(); for (var cur_state in stateinfo){ if (shops[cur_state]){ w_array.push(stateinfo[cur_state]['name']); } } var new_str; var old_str = document.getElementById('cur_state').innerHTML; if (w_array.length == 1){ new_str = w_array.join('、'); } else if (w_array.length == 0){ new_str = '書店データはなく、地図だけ'; } else { new_str = stateinfo[cur_centerstate]['name'] + 'の地図と' + w_array.join('、'); } if (old_str != new_str){ document.getElementById('cur_state').innerHTML = new_str; } } function load_state(cur_state, afterfunc, caller){ var changed = false; if (!caller) caller = 'load_state'; if (stateinfo[cur_state] === undefined) cur_state = "tokyo"; if (stateinfo[cur_state]['loaded'] === undefined || (stateinfo[cur_state]['loaded'] == 0 && stateinfo[cur_state]['shop_data'] === undefined)){ //undefine:初期値,2:load指示中,1:load完了,0:unload後(実体が残っている場合と削除している場合とがある(stateinfo[cur_state]['shop_data'])で判定) //alert('js/' + cur_state + '.js'); var state_elm = document.createElement('script'); state_elm.src = 'js/' + cur_state + '.js'; state_elm.id = cur_state; if (window.ActiveXObject) { state_elm.onreadystatechange = function(){ //alert(cur_state + "データload処理終了"); stateinfo[cur_state]['shop_data'] = eval(cur_state); stateinfo[cur_state]['loaded'] = 1;//load指示をloadにセット if (state_elm.readyState == 'complete' || state_elm.readyState == 'loaded'){ if (afterfunc) afterfunc(caller); } }; } else { state_elm.onload = function(){ //alert(cur_state + "データload処理終了"); stateinfo[cur_state]['shop_data'] = eval(cur_state); stateinfo[cur_state]['loaded'] = 1;//load指示をloadにセット if (afterfunc) afterfunc(caller); }; } //alert(cur_state + "データload処理開始"); var s = document.getElementsByTagName( 'script' )[ 0 ]; stateinfo[cur_state]['loaded'] = 2; document.getElementById("loading_state").innerHTML = stateinfo[cur_state]['name']; document.getElementById("loading_sign").style.display = "block"; s.parentNode.insertBefore( state_elm, s ); starttimer(10); } else if(stateinfo[cur_state]['loaded'] == 0 && stateinfo[cur_state]['shop_data']){//一回はloadしたことがあり、実体は残っている。 shops[cur_state] = stateinfo[cur_state]['shop_data'];//shops[cur_state]をセット if (avastate) init_avas(cur_state);//在庫検索モードなら在庫表示テーブルを初期化する changed = true; } else if(stateinfo[cur_state]['loaded'] == 1){//load完了後の場合、shops[cur_state]をセット shops[cur_state] = stateinfo[cur_state]['shop_data']; if (avastate) init_avas(cur_state);//在庫検索モードなら在庫表示テーブルを初期化する changed = true; } else {//load指示中の場合は何もしない } return(changed); } function unload_state(cur_state){ delete shops[cur_state]; stateinfo[cur_state]['loaded'] = 0;//load指示をunlloadにセット show_statestring(); //画面の文字表示を変更 } function is_loading(){ for (var cur_state in stateinfo){ if (stateinfo[cur_state]['loaded'] == 2) return(true); } return(false); } /* function overwrap(sourse, target){ //2つの矩形の重なりをチェック if (sourse.getSouthWest().lat() < target.getNorthEast().lat() && sourse.getNorthEast().lat() > target.getSouthWest().lat()){ if (sourse.getSouthWest().lng() < target.getNorthEast().lng() && sourse.getNorthEast().lng() > target.getSouthWest().lng()){ return true; } } return(false); } */ function get_states(){ //表示範囲に入っている都道府県のデータをロード var changed = false; for(var state in stateinfo){ var state_overwrap = false; var statemesh = new Array(); if (stateinfo[state]['mesh'] === undefined){ statemesh[0] = stateinfo[state]['bound']; } else { statemesh = stateinfo[state]['mesh']; } for(var boundindex=0; boundindex<statemesh.length; boundindex++ ){ if (area.overlaps(statemesh[boundindex])){ state_overwrap = true; } } if (state_overwrap){ if (shops[state] === undefined){ if (load_state(state)){ changed = true; } } } else { if (shops[state]){ unload_state(state); changed = true; } } } return(changed); } var status_area; var alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; var map; var area; function convert_html(cur_shop, cur_state){ // var dist_html = cur_shop['marker_html']; var html_str = new Array(); var ii = 0; if (avastate){ //在庫検索モードなら document.getElementById('bookinfo' + cur_shop['店番号']).innerHTML = ava_title; } else { document.getElementById('bookinfo' + cur_shop['店番号']).innerHTML = ''; } if (cur_shop["店舗分類"] == "組合員"){ //組合員は店内在庫、詳細ページ、オリジナルHP、取り寄せ表示、宅配表示全て表示 if (avastate){ let type = selecticon(cur_shop, "brink", 'infowindow_shop'); var insertstr = '<img src="' + icList[type][0] + '">' + get_avatext(cur_shop); html_str[ii++] = '<img src="./img/tennaizaiko.gif">' + insertstr + '<br'; } var order_url = cur_shop["取次在庫検索URL"]; if (order_url){ var insertstr1 = '本は問屋からこの店に配送します。'; var insertstr2 = '本は問屋から自宅にお送りします。'; if (avastate){ if (order_url.search(/honyaclub/) != -1){ tori_icon_url = selecticonimage_tori('hc'); tori_avatext = avatext_hc; } else if (order_url.search(/e-hon/) != -1){ tori_icon_url = selecticonimage_tori('ehon'); tori_avatext = avatext_ehon; } else if (order_url.search(/honto/) != -1){ tori_icon_url = selecticonimage_tori('honto'); tori_avatext = avatext_honto; } else if (order_url.search(/kinokuniya/) != -1){ tori_icon_url = selecticonimage_tori('kino'); tori_avatext = avatext_kino; } else { tori_icon_url = "sarmon_hole-s.gif"; tori_avatext = "在庫不明"; } insertstr1 = '<img src="' + tori_icon_url + '">' + tori_avatext + ':' + image2str_toritsugi(tori_icon_url, 'toriyose'); insertstr2 = '<img src="' + tori_icon_url + '">' + tori_avatext + ':' + image2str_toritsugi(tori_icon_url, 'takuhai'); } if ((!(order_url.search(/kinokuniya/) !== -1 && avastate_kino != 1)) && (!(order_url.search(/honyaclub/) !== -1 && (order_url.match(/isb%3D[0-9]{6,10}%2526/) !== null && order_url.match(/isb%3D[0-9]{6,10}%2526/)[0] !== 'isb%3D9999999999%2526')))){ //紀伊國屋とhanyaclub囲い込み店(有隣堂とコーチャンフォー)は取り寄せ機能なし var w_url_shop = get_toritsugi_url(cur_shop["取次在庫検索URL"], cur_shop["店番号"], cur_shop["店舗分類"], '01', cur_shop['ヴァリューコマースのPID']); html_str[ii++] = '<a href=' + w_url_shop[0] + ' target="_cyuumon"><img src="./img/toriyose.gif">書店受取(<span id="' + cur_shop["店番号"] + 'avatonya">' + insertstr1 + '</span>)' + w_url_shop[1] + '</a><br'; } var w_url_tori = get_toritsugi_url(cur_shop["取次在庫検索URL"], cur_shop["店番号"], cur_shop["店舗分類"], '02', cur_shop['ヴァリューコマースのPID']); html_str[ii++] = '<a href=' + w_url_tori[0] + ' target="_cyuumon"><img src="./img/takuhai.gif">宅配(' + insertstr2 + ')' + w_url_tori[1] + '</a><br'; if (order_url.search(/honyaclub/) != -1){ order_url = get_toritsugi_url(order_url, cur_shop["店番号"], cur_shop["店舗分類"], '03', cur_shop['ヴァリューコマースのPID']); //本屋クラブの初めての方にのページ } else if (order_url.search(/e-hon/) != -1){ order_url = get_toritsugi_url(order_url, cur_shop["店番号"], cur_shop["店舗分類"], '03', cur_shop['ヴァリューコマースのPID']); //e-honの会員登録のページ } else if (order_url.search(/honto/) != -1){ order_url = get_toritsugi_url(order_url, cur_shop["店番号"], cur_shop["店舗分類"], '03', cur_shop['ヴァリューコマースのPID']); //丸善ジュンク堂の会員登録のページ } else if (order_url.search(/kinokuniya/) != -1){ order_url = get_toritsugi_url(order_url, cur_shop["店番号"], cur_shop["店舗分類"], '03', cur_shop['ヴァリューコマースのPID']); //紀伊國屋の会員登録のページ } //html_str[ii++] = '<a href="' + order_url[0] + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。' + order_url[1] + '</a><br><font color="red"><b>詳細ページが表示されない時は別タブで<a href="https://www.e-hon.ne.jp/bec/EB/Top" target="ehon">e-hon</a>を開き書誌検索をし、画面を閉じずに再度お試し下さい。</b></font></br'; html_str[ii++] = '<a href="' + order_url[0] + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。' + order_url[1] + '</a><br'; } else { //if (cur_shop["ヴァリューコマースのPID"]){ //分配希望あり if (avastate){ tori_icon_url = selecticonimage_tori('ehon'); tori_avatext = avatext_ehon; var insertstr2 = '<img src="' + tori_icon_url + '">' + tori_avatext + ':' + image2str_toritsugi(tori_icon_url, 'takuhai'); var w_url_tori = get_toritsugi_url('', cur_shop["店番号"], cur_shop["店舗分類"], '02', cur_shop['ヴァリューコマースのPID']); html_str[ii++] = '<div style="background-color:#e3f0fb;"><a href="' + w_url_tori[0] + '"target="_cyuumon"><img src="./img/takuhai.gif">宅配(' + insertstr2 + ')' + w_url_tori[1] + '</a><br'; order_url = get_toritsugi_url('', cur_shop["店番号"], cur_shop["店舗分類"], '03', cur_shop['ヴァリューコマースのPID']); //e-honの会員登録のページ html_str[ii++] = '<a href="' + order_url[0] + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。' + order_url[1] + '</a><br'; //html_str[ii++] = '<font color=\"red\"><b>詳細ページが表示されない時は別タブで<a href="https://www.e-hon.ne.jp/bec/EB/Top" target="ehon">e-hon</a>を開き書誌検索をし、画面を閉じずに再度お試し下さい。</b></font><br><font style=\"font-size:80%;\">書店組合青年部がe-honを使ってお送りします。このお店とのお取引きにはなりません。このお店からお買いになりたい場合は直接お店にご連絡をお願いいたします。</font></div'; html_str[ii++] = '<font style=\"font-size:80%;\">書店組合青年部がe-honを使ってお送りします。このお店とのお取引きにはなりません。このお店からお買いになりたい場合は直接お店にご連絡をお願いいたします。</font></div'; } else { //ノーマルモード html_str[ii++] = '<span></span'; } //} else { //分配希望せず // html_str[ii++] = '<span></span'; //} } if (avastate){ html_str[ii++] = '<a href="shop/' + cur_state + '/' + cur_shop["店番号"] + '?ISBN=' + ava_isbn + '" class="button b_map" target="_shotenlist">この書店の詳細情報</a'; } else { html_str[ii++] = '<a href="shop/' + cur_state + '/' + cur_shop["店番号"] + '" class="button b_map" target="_shotenlist">この書店の詳細情報</a'; } if (cur_shop["URL"]){ html_str[ii++] = '、<a href="' + cur_shop["URL"] + '" class="button b_reg" target="_originalhp">オリジナルホームページ</a'; } else { html_str[ii++] = '<span></span'; } } else { //非組合員 if (avastate){ let type = selecticon(cur_shop, "brink", 'infowindow_shop'); //let type = 'cleargray'; //非組合員は強制的に在庫不明 var insertstr = '<img src="' + icList[type][0] + '">' + get_avatext(cur_shop); html_str[ii++] = '<span><img src="./img/tennaizaiko.gif">' + insertstr + '</span'; } else { html_str[ii++] = '<span><img src="./img/tennaizaiko.gif"></span'; } } var link_streetview = 'https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=' + cur_shop["緯度"] + '%2C' + cur_shop["経度"]; html_str[ii++] = '、<a href="' + link_streetview + '" class="button b_sv" target="_streetview">ストリートビューを表示</a><br'; if (cur_shop["動画"]){ html_str[ii++] = '<a href="' + cur_shop["動画"] + '" class="button b_mv" target="_douga">紹介動画</a><br'; } var ins_html = html_str.join('>'); document.getElementById('shopinfo' + cur_shop['店番号']).innerHTML = ins_html; } function showhtml2(arg_shopID) { //alert(arg_shopID); for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["店番号"] == arg_shopID){ var point = L.latLng(cur_shop["緯度"], cur_shop["経度"]); if (area && !area.contains(point)){ // 地図に該当書店が無い場合 map.once('moveend', function() { showhtml2(arg_shopID); }); map.panTo(point); } else { // 地図に該当書店が有る場合 if (cur_shop["marker"].getPopup()) return; var infowindow = L.popup().setContent(cur_shop['marker_html']); cur_shop["marker"].on('popupopen', function() { convert_html(cur_shop, cur_state); open_send2window(infowindow, cur_shop); }); //完全に開いた後の処理 cur_shop["marker"].bindPopup(infowindow).openPopup(); } return; } } } } // function selecticonimage(cur_shop, mode, caller){ function selecticon(cur_shop, mode, caller){ var type; if (!avastate || caller == "showshoplist"){//0:ノーマル状態、1:検索モード if (arg_shopid == cur_shop["店番号"]){ type = "yellow"; } else { if (cur_shop["店舗分類"] == "組合員"){ if (cur_shop["店舗の有無"] && cur_shop["店舗の有無"] != "無"){ if (cur_shop["組合内分類"] == "青年部員"){ if (mode == "nobrink"){ type = "orange"; } else { type = "orange"; } } else if(cur_shop["組合内分類"] == "古書店"){ type = "lightblue"; } else { if (mode == "nobrink"){ type = "orange"; } else { type = "orange"; } } } else { if (cur_shop["近隣配達サービス (雑誌定期購読の場合)"] || cur_shop["近隣配達サービス(雑誌・書籍単品の場合)"]){ if(cur_shop["組合内分類"] == "古書店"){ type = "clearlightblue"; } else { type = "clearred"; } } else { type = "clear"; } } } else { if (cur_shop["店舗の有無"] && cur_shop["店舗の有無"] != "無"){ type = "cleargray"; } else { type = "clear"; } } } } else { var shoseki; //書籍の場合はTrue、雑誌の場合はFalse if ((ava_isbn.length != 13 && ava_isbn.length != 12 ) || ava_isbn.substring (0, 4) != '4910'){ shoseki = true; } else { shoseki = false; } var w_avas = calc_ava(cur_shop, caller); //alert("in selecticon!!!: cur_shop[marker_avastate]=" + cur_shop["marker_avastate"] + ":w_avas=" + w_avas +":shopIndex=" + shopIndex + ":avastate_ehon=" + avastate_ehon + ":avastate_hc=" + avastate_hc); switch (cur_shop["marker_avastate"]){//-4:在庫非表示、-3:在庫検索指示中(検索未開始)、-2:在庫検索中、-1<=:在庫検索終了 case -4:;//在庫非表示 alert("内部矛盾!!"); break; case -3:;//在庫検索指示中(検索未開始) case -2:;//在庫検索中 if (cur_shop["店舗の有無"] && cur_shop["店舗の有無"] != "無"){ if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"])){ type = "white"; } else { type = "white"; } } else { if (cur_shop["近隣配達サービス (雑誌定期購読の場合)"] || cur_shop["近隣配達サービス(雑誌・書籍単品の場合)"]){ if(cur_shop["組合内分類"] == "古書店"){ type = "clearlightblue"; } else { type = "clearred"; } } else { type = "clear"; } } break; default:;//在庫検索終了 if (cur_shop["店舗分類"] == "組合員" || caller == 'infowindow_toritsugi'){ if ((cur_shop["店舗の有無"] && cur_shop["店舗の有無"] != "無") || caller == 'infowindow_toritsugi'){ if (cur_shop["組合内分類"] == "古書店"){ type = "lightblue"; } else { //alert("caller=" + caller + ":" + "shopIndex=" + shopIndex + ":" + "店名=" + cur_shop["店名"] + ":" + "w_avas=" + w_avas); switch (w_avas){ case 0:;//店内在庫あり if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "yellow"; } else { type = "red"; } break; case 3:;//問屋から取り寄せ if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "sarmon"; } else { type = "sarmon_hole"; } break; case 7:;//版元から取り寄せ if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "orange"; } else { type = "orange_hole"; } break; case 10:;//版元から取り寄せ(取次扱いなし等、不安要因あり) if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "orange"; } else { type = "orange_hole"; } break; case 49:;//店内在庫なし if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "white"; } else { type = "white"; } break; case 79:;//検索エラー if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "white"; } else { type = "white"; } break; case 99:;//絶版又は品切れ重版未定 if ((shoseki && cur_shop["自店在庫検索URL"]) || (!shoseki && cur_shop["自店雑誌検索URL"]) || caller == 'infowindow_toritsugi'){ type = "lightblue"; } else { type = "lightblue_hole"; } break; default:; break; } } } else { if (cur_shop["近隣配達サービス (雑誌定期購読の場合)"] || cur_shop["近隣配達サービス(雑誌・書籍単品の場合)"]){ if(cur_shop["組合内分類"] == "古書店"){ type = "clearlightblue"; } else { type = "clearred"; } } else { type = "clear"; } } } else { //非組合員の処理。在庫検索で有の場合のみ点滅させるが、 //現在は非組合員の場合初めから在庫を検索しないので無効 if (cur_shop["店舗の有無"] && cur_shop["店舗の有無"] != "無"){ if (w_avas == 0){ //店内在庫ありの場合だけは点滅させる type = "yellow"; } else { type = "cleargray"; } } else { type = "clear"; } } break; } if (caller != 'infowindow_toritsugi') cur_shop["marker_avas"] = w_avas; } //alert(type); return(type); } function selecticonimage_tori(ehon_or_hc){ var image; var w_avastete; if (ehon_or_hc == 'hc'){ w_avastete = avastate_hc; } else if (ehon_or_hc == 'honto'){ w_avastete = avastate_honto; } else if (ehon_or_hc == 'kino'){ w_avastete = avastate_kino; } else { w_avastete = avastate_ehon; } if (!avastate){//0:ノーマル状態、1:検索モード image = "orange-s.gif"; } else { switch (w_avastete){//-4:在庫非表示、-3:在庫検索指示中(検索未開始)、-2:在庫検索中、-1<=:在庫検索終了 case -4:;//在庫非表示 alert("内部矛盾!!"); break; case -3:;//在庫検索指示中(検索未開始) case -2:;//在庫検索中 image = "white-s.gif"; break; default:;//在庫検索終了 switch (avaconv_tonya(w_avastete)){ case 0:;//店内在庫あり image = "yellow-s.gif"; break; case 3:;//問屋から取り寄せ image = "sarmon-s.gif"; break; case 7:;//版元から取り寄せ image = "orange-s.gif"; break; case 10:;//版元から取り寄せ(取次扱いなし等、不安要因あり) image = "orange-s.gif"; break; case 49:;//店内在庫なし image = "white-s.gif"; break; case 79:;//検索エラー image = "white-s.gif"; break; case 99:;//絶版又は品切れ重版未定 image = "lightblue-s.gif"; break; case 100:;//不明 image = "lightblue-s.gif"; break; default:; break; } break; } } //alert(image); return image; } function overlay_marker(cur_shop){ if (!cur_shop["marker_isoverlay"]){ cur_shop["marker"].addTo(map); cur_shop["marker_isoverlay"] = true; } //alert("in overlay_marker 店名=" + cur_shop["店名"] + "cur_shop[marker_isoverlay]=" + cur_shop["marker_isoverlay"]); } function remove_marker(cur_shop){ //alert("in remove_marker 店名=" + cur_shop["店名"] + "cur_shop[marker_isoverlay]=" + cur_shop["marker_isoverlay"]); if (cur_shop["marker_isoverlay"]){ cur_shop["marker"].remove(); cur_shop["marker_isoverlay"] = false; } } // 書店情報のHTMLを作成 function create_htmls() { for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (marker_is_show(cur_shop)) { if (!cur_shop['marker_html']) { var ii = 0; var html_str = new Array(); html_str[ii++] = '<div><span style="color: #000099; font-size: 120%; font-weight: bold;">' + cur_shop["店名"] + '</span><span id="bookinfo' + cur_shop['店番号'] + '"></span><br>'; if (cur_shop["会員写真"]){ if (cur_shop["会員写真"].substring(0,7) == 'http://'){ html_str[ii++] = '<img src="' + cur_shop["会員写真"] + '" width="120" align="left">'; } else { html_str[ii++] = '<img src="img/shop/tokyo/' + cur_shop["会員写真"] + '" width="120" align="left">'; } } if (cur_shop["店頭写真"]){ if (cur_shop["店頭写真"].substring(0,7) == 'http://'){ html_str[ii++] = '<img src="' + cur_shop["店頭写真"] + '" width="120" align="left">'; } else { html_str[ii++] = '<img src="img/shop/tokyo/' + cur_shop["店頭写真"] + '" width="120" align="left">'; } } html_str[ii++] = '<span style="font-size:100%;font-weight:normal;">'; var zipcode = cur_shop["郵便番号"]; if (!zipcode) zipcode = ""; var addr = cur_shop["住所"]; if (!addr) addr = ""; html_str[ii++] = zipcode + addr + '<br>'; var telno = '<a href="tel:' + cur_shop["電話番号"] + '" target="_blank">' + cur_shop["電話番号"] + '</a>'; if (cur_shop["電話番号"]) html_str[ii++] = 'TEL:' + telno + '<br>'; var faxno = cur_shop["FAX番号"]; if (faxno) html_str[ii++] = 'FAX:' + faxno + '<br>'; var servicetime = cur_shop["営業時間"]; if (servicetime) html_str[ii++] = '【営業時間】' + servicetime + '<br>'; var holyday = cur_shop["定休日"]; if (holyday) html_str[ii++] = '【定休日】' + holyday + '<br>'; html_str[ii++] = '<span id="shopinfo' + cur_shop['店番号'] + '"></span>'; html_str[ii++] = '</span></div>'; cur_shop["marker_html"] = html_str.join(''); //alert(cur_shop["marker_html"]); } } } } } function cleat_takuhai_html(){ var ii = 0; var out_html; var takuhaiava_str; var title_str; var html_str = new Array(); if (avastate){ var icon_url = selecticonimage_tori('ehon'); takuhaiava_str = '<img src="' + icon_url + '">' + avatext_ehon + ':<span style="font-size:80%;">' + image2str_toritsugi(icon_url) + '</span>'; title_str = '<div align="center">(' + ava_title + ')</div' } else { takuhaiava_str = '<span style="font-size:100%;">本は問屋から自宅にお送りします。</span><br'; title_str = '<div></div'; } html_str[ii++] = title_str; w_tori_url = get_toritsugi_url2(); html_str[ii++] = '<a href="' + w_tori_url[0] + '" target="_cyuumon"><img src="./img/takuhai.gif">宅配(<span id="avatonya">' + takuhaiava_str + '</span>)' + w_tori_url[1] + '</a><br'; if (ehon_af == 'a8'){ //html_str[ii++] = '<a href="' + defurl_A8_readershop_1 + defurl_A8_readershop_2 + defurl_A8_readershop_3 + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。</a><br><font color="red"><b>詳細ページが表示されない時は別タブで<a href="https://www.e-hon.ne.jp/bec/EB/Top" target="ehon">e-hon</a>を開き書誌検索をし、画面を閉じずに再度お試し下さい。</b></font><br'; html_str[ii++] = '<a href="' + defurl_A8_readershop_1 + defurl_A8_readershop_2 + defurl_A8_readershop_3 + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。</a><br'; } else if (ehon_af == 'vc'){ //html_str[ii++] = '<a href="' + defurl_vc_readershop_1 + defurl_vc_readershop_2 + defurl_vc_readershop_3 + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。</a><br><font color="red"><b>詳細ページが表示されない時は別タブで<a href="https://www.e-hon.ne.jp/bec/EB/Top" target="ehon">e-hon</a>を開き書誌検索をし、画面を閉じずに再度お試し下さい。</b></font><br'; html_str[ii++] = '<a href="' + defurl_vc_readershop_1 + defurl_vc_readershop_2 + defurl_vc_readershop_3 + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。</a><br'; } else { //html_str[ii++] = '<a href="' + defurl_none_readershop + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。</a><br><font color="red"><b>詳細ページが表示されない時は別タブで<a href="https://www.e-hon.ne.jp/bec/EB/Top" target="ehon">e-hon</a>を開き書誌検索をし、画面を閉じずに再度お試し下さい。</b></font><br'; html_str[ii++] = '<a href="' + defurl_none_readershop + '" target="_cyuumon"><img src="./img/kaiintouroku.gif">宅配には会員登録が必要です。</a><br'; } html_str[ii++] = '</div></div'; out_html = html_str.join('>') + '>'; var w_html = document.getElementById("send_box2_sale_message"); w_html.innerHTML = out_html; } function open_honyaclub_by_gcode(gcode_honyaclub, order_url){ //var gcode; //gcode = xml.documentElement.getElementsByTagName("HonyaClubGCode"); //ava_gcode_honyaclub = gcode[0].firstChild.nodeValue; //http://linksynergy.jrs5.com/fs-bin/click?id=E0N6YW4zA7k&subid=&offerid=233526.1&type=10&tmpid=8177&RD_PARM1=http%3A%2F%2Fwww.honyaclub.com%2Fshop%2Fdefault.aspx%3Fetcaff%3DAFI-LS //http://linksynergy.jrs5.com/fs-bin/click?id=E0N6YW4zA7k&subid=&offerid=233526.1&type=10&tmpid=8177&RD_PARM1=http%3A%2F%2Fwww.honyaclub.com%2Fshop%2Fgoods%2Fgoods.aspx%3Fgoods%3D14109024%2526etcaff%3DAFI-LS //http://linksynergy.jrs5.com/fs-bin/click?id=E0N6YW4zA7k&subid=&offerid=233526.1&type=10&tmpid=8177&RD_PARM1=http%3A%2F%2Fwww.honyaclub.com%2Fshop%2Fdefault.aspx%3Fisb%3D513882%2526etcaff%3DAFI-LS //http://linksynergy.jrs5.com/fs-bin/click?id=E0N6YW4zA7k&subid=&offerid=233526.1&type=10&tmpid=8177&RD_PARM1=http%3A%2F%2Fwww.honyaclub.com%2Fshop%2Fgoods%2Fgoods.aspx%3Fisb%3D513882%2526goods%3D14109024%2526etcaff%3DAFI-LS var url1 = order_url.substr(0, order_url.indexOf('default.aspx')); var url2 = 'goods%2Fgoods.aspx%3F'; var url_gcode_str = 'goods%3D' + gcode_honyaclub; var url_isb_str =''; //店id。現状有林堂だけが持っている。2011/9/9 var start_pt; var match_obj = order_url.match(/isb%3D[0-9]{6,10}%2526/); if (match_obj){ url_isb_str = match_obj[0]; } else { url_isb_str = 'isb=9999999999%2526'; } var url3 = '%2526etcaff%3DAFI-LS'; //var wurl = url1 + url2 + url_isb_str + url_gcode_str + url3; var wurl = url1 + url2 + url_gcode_str + url3; //alert(wurl); window.open(wurl, "_cyuumon"); } function open_honyaclub_by_isbn(mode, isbn, cur_shop){ //mode=1:個店ポップアップからの呼び出し、mode=2:一覧画面からの詳細画面呼び出し(必ずgcodeを取得する) if (ava_shopid_honyaclub){ alert(cur_shop["店名"] + 'のHonyaClub商品新コード取り出し中です。少し経ってから再度やり直して下さい。'); } else { if (mode == 1 && ava_gcode_honyaclub){ //商品コード取り出し処理重複チェック open_honyaclub_by_gcode(ava_gcode_honyaclub, cur_shop["取次在庫検索URL"]); } else { if (mode == 1){ ava_shopid_honyaclub = cur_shop['店番号']; } else { ava_shopid_honyaclub = 999999; } var url = "./seinen/zaiko_yori.php?i=" + isbn; url += "&s=t5&m=g&t=" + new Date().getTime(); //alert("Call!" + url); //GDownloadUrl(url, gcode_callback_hoyaclub); if (mode == 1){ var conn = YAHOO.util.Connect.asyncRequest("GET", url, gcode_callback_hoyaclub); } else { var conn = YAHOO.util.Connect.asyncRequest("GET", url, gcode_callback_hoyaclub_mode2); } document.getElementById("getgcode_sign").style.display = "block"; } } } var gcode_callback_hoyaclub = { success : function(o) { if (!o.responseXML.documentElement) { return; } var xml = o.responseXML; var gcode = xml.documentElement.getElementsByTagName("HonyaClubGCode"); if (gcode[0]){ ava_gcode_honyaclub = gcode[0].firstChild.nodeValue; //alert("honyaclub商品コード検索を終了しました。商品コード=" + ava_gcode_honyaclub + "購入中のShopIndex=" + ava_shopid_honyaclub); loop1: for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop['店番号'] == ava_shopid_honyaclub){ open_honyaclub_by_gcode(ava_gcode_honyaclub, cur_shop["取次在庫検索URL"]); break loop1; } } } } else { alert("honyaclub商品コード検索が失敗しました。商品コード=" + xml.documentElement.getElementsByTagName("HonyaClubGCode") + "購入中のShopIndex=" + ava_shopid_honyaclub); } ava_shopid_honyaclub = 0; document.getElementById("getgcode_sign").style.display = "none"; }, failure : function(o) { //alert("in gcode_callback_hoyaclub callback!. error!"); ava_shopid_honyaclub = 0; document.getElementById("getgcode_sign").style.display = "none"; //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); } } var gcode_callback_hoyaclub_mode2 = { success : function(o) { if (!o.responseXML.documentElement) { return; } var xml = o.responseXML; var gcode = xml.documentElement.getElementsByTagName("HonyaClubGCode"); if (gcode[0]){ //alert("honyaclub商品コード検索を終了しました。商品コード=" + gcode[0].firstChild.nodeValue); open_honyaclub_by_gcode(gcode[0].firstChild.nodeValue, "http://www.honyaclub.com/shop/default.aspx"); } else { alert("honyaclub商品コード検索が失敗しました。gcode[0]=" + xml.documentElement.getElementsByTagName("HonyaClubGCode") + "購入中のShopIndex=" + ava_shopid_honyaclub); } ava_shopid_honyaclub = 0; document.getElementById("getgcode_sign").style.display = "none"; }, failure : function(o) { //alert("in gcode_callback_hoyaclub callback!. error!"); ava_shopid_honyaclub = 0; document.getElementById("getgcode_sign").style.display = "none"; //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); } } function parseURL(url) { var parser = document.createElement('a'), searchObject = {}, queries, split, i; // Let the browser do the work parser.href = url; // Convert query string to object queries = parser.search.replace(/^\?/, '').split('&'); for( i = 0; i < queries.length; i++ ) { split = queries[i].split('='); searchObject[split[0]] = split[1]; } return { protocol: parser.protocol, host: parser.host, hostname: parser.hostname, port: parser.port, pathname: parser.pathname, search: parser.search, searchObject: searchObject, hash: parser.hash }; } function cnv_only_hclink(in_hclink, link_kind){ var out_hclink; var goods = ''; var def_hcurl = parseURL(in_hclink); if (def_hcurl['searchObject']['isb'] === undefined) def_hcurl['searchObject']['isb'] = '9999999999'; //店コード指定の場合以外コードは常に指定 def_hcurl['searchObject']['isb'] = '9999999999'; //上は店コード指定の場合以外だが、店コード指定の場合はアフィリ不可の為、コードは常に指定 if (def_hcurl['port'] !== undefined) out_hclink += ':' + def_hcurl['port']; if (link_kind != '03'){ if (avastate){ out_hclink = 'http://www.honyaclub.com/shop/goods/goods.aspx'; if (avalink_hc) goods = avalink_hc.substr(-8,8); } else { if (def_hcurl['hostname'].substr(-1, 1) !== '/') def_hcurl['hostname'] += '/'; out_hclink = def_hcurl['protocol'] + '//' + def_hcurl['hostname']; if (def_hcurl['pathname']) out_hclink += def_hcurl['pathname']; //if (def_hcurl['port']) out_hclink += ':' + def_hcurl['port']; } } else { out_hclink = 'http://www.honyaclub.com/shop/guide/beginner.aspx'; } //out_hclink += '?isb=' + def_hcurl['searchObject']['isb']; //isb=は最初に定義 //if (goods !== '') out_hclink += '&goods=' + goods; //goodsはその次に最初に定義 if (goods !== '') out_hclink += '?goods=' + goods; //goodsはその次に最初に定義 var w_param = ''; for (var key in def_hcurl['searchObject']){ if (key == 'isb' || key == 'goods' || key == 'etcaff') continue; w_param += '&'; var w_item = def_hcurl['searchObject'][key]; if (w_item === undefined) w_item = ''; w_param += key + '=' + w_item; } out_hclink += w_param; //out_hclink += '&etcaff=AFI-LS'; //etcaffは必ず最後に定義 return(out_hclink); } function cnv_hclink(in_hclink, in_shopid, link_kind){ var out_hclink; if (in_hclink.search(/linksynergy/) != -1){ //定義がリンクシェアアフィリエイトか var def_lsurl = parseURL(in_hclink); if (def_lsurl['hostname'].substr(-1, 1) !== '/') def_lsurl['hostname'] += '/'; out_hclink = def_lsurl['protocol'] + '//' + def_lsurl['hostname']; if (def_lsurl['pathname']) out_hclink += def_lsurl['pathname']; //if (def_lsurl['port']) out_hclink += ':' + def_lsurl['port']; var w_parm = ''; for (var key in def_lsurl['searchObject']){ if (w_parm == '') w_parm = '?'; else w_parm += '&'; var w_item = def_lsurl['searchObject'][key]; if (w_item === undefined) w_item = ''; if (key == 'RD_PARM1'){ w_parm += 'u1=' + link_kind + '_' + in_shopid + '&'; //RD_PARM1の前にu1=店番号を指定 w_item = cnv_only_hclink(decodeURIComponent(w_item.replace(/%2526/g, '%26')), link_kind); w_item = encodeURIComponent(w_item.replace(/&/g, '%26')); } w_parm += key + '=' + w_item; } out_hclink += w_parm; } else { //out_hclink = defurl_ls + link_kind + '_' + in_shopid + '&RD_PARM1='; //out_hclink += encodeURIComponent(cnv_only_hclink(in_hclink, link_kind).replace(/&/g, '%26')); out_hclink = cnv_only_hclink(in_hclink, link_kind).replace(/&/g, '%26'); } out_hclink = "http://seinenbu.tokyo-shoten.or.jp/seinen/lib/af_redirect.php?url=" + encodeURIComponent(out_hclink) + "&shop_id=" + in_shopid return([out_hclink, '']); } function cnv_only_vccllink(in_vccllink, link_kind, mode){ var out_vccllink; if (avastate){ if (link_kind != '03'){ //会員登録ページ以外の場合 if (mode == 'ehon'){ out_vccllink = decodeURIComponent(avalink_ehon); } else if (mode == 'honto'){ out_vccllink = decodeURIComponent(avalink_honto); } else if (mode == 'kino'){ out_vccllink = decodeURIComponent(defurl_kino_bd.replace(/_INSERT_ISBN/, ava_isbn)); } else { out_vccllink = decodeURIComponent(avalink_ehon); } } else { //会員登録ページの場合 if (mode == 'ehon'){ out_vccllink = in_vccllink; } else if (mode == 'honto'){ out_vccllink = defurl_honto_kt; } else if (mode == 'kino'){ out_vccllink = defurl_kino_kt; } else { out_vccllink = in_vccllink; } } } else { if (link_kind != '03'){ //会員登録ページ以外の場合 if (mode == 'ehon'){ if (ehon_registed){ //e-honの会員登録されていればトップページへ、会員登録されていなければ定義された(会員登録)ページへ。 out_vccllink = 'http://www.e-hon.ne.jp/'; } else { out_vccllink = in_vccllink; } } else { out_vccllink = in_vccllink; } } else { //会員登録ページの場合 if (mode == 'ehon'){ out_vccllink = in_vccllink; } else if (mode == 'honto'){ out_vccllink = defurl_honto_kt; } else if (mode == 'kino'){ out_vccllink = defurl_kino_kt; } else { out_vccllink = in_vccllink; } } } return(out_vccllink); } function cnv_vclink(in_vclink, in_shopid, link_kind, mode, define_vc_pid){ var out_vclink; var out_vcimgparts_1 = '<img src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid='; var out_vcimgparts_2 = '&pid='; var out_vcimgparts_3 = '" height="1px" width="1px" border="0">'; var out_vcimg; var out_vc_pid; var out_vc_sid; if (in_vclink.search(/valuecommerce/) != -1){ //定義がウァリューコマースアフィリエイトか var def_vcurl = parseURL(in_vclink); if (def_vcurl['hostname'].substr(-1, 1) !== '/') def_vcurl['hostname'] += '/'; out_vclink = def_vcurl['protocol'] + '//' + def_vcurl['hostname']; if (def_vcurl['pathname']) out_vclink += def_vcurl['pathname']; //if (def_vcurl['port']) out_vclink += ':' + def_vcurl['port']; var w_parm = ''; for (var key in def_vcurl['searchObject']){ if (w_parm == '') w_parm = '?'; else w_parm += '&'; var w_item = def_vcurl['searchObject'][key]; if (w_item === undefined) w_item = ''; if (key == 'vc_url'){ w_item = cnv_only_vccllink(decodeURIComponent(w_item), link_kind, mode); w_item = encodeURIComponent(w_item); } else if (mode == 'ehon' && key == 'pid' && define_vc_pid){ //ehonの場合は広告スペースIDを定義されたものと変換する if (w_item == '882639465'){ w_item = define_vc_pid; out_vc_pid = define_vc_pid; } else { out_vc_pid = w_item; } } else if (key == 'sid'){ out_vc_sid = w_item; } w_parm += key + '=' + w_item; } out_vclink += w_parm; } else { var detail_url; if (mode == 'ehon'){ detail_url = defurl_vc_readershop_1 + define_vc_pid + defurl_vc_readershop_3; } else if (mode == 'honto'){ detail_url = defurl_honto_sp; } else if (mode == 'kino'){ detail_url = defurl_kino_sp; } else { detail_url = defurl_vc_readershop_1 + define_vc_pid + defurl_vc_readershop_3; } var w_1 = detail_url.search(/vc_url\=/); out_vclink = detail_url.substring(0, w_1+7); out_vclink += encodeURIComponent(cnv_only_vccllink(in_vclink, link_kind, mode)); } out_vcimg = out_vcimgparts_1 + out_vc_sid + out_vcimgparts_2 + out_vc_pid + out_vcimgparts_3; //out_vcimg = '<img src="testimg.jpg">'; out_vclink = "http://seinenbu.tokyo-shoten.or.jp/seinen/lib/af_redirect.php?url=" + encodeURIComponent(out_vclink) + "&shop_id=" + in_shopid; return([out_vclink, out_vcimg]); } function cnv_only_cllink(in_cllink, link_kind, mode){ var out_cllink; if (avastate){ if (link_kind != '03'){ //会員登録ページ以外の場合 if (mode == 'ehon'){ out_cllink = decodeURIComponent(avalink_ehon); } else { out_cllink = decodeURIComponent(avalink_ehon); } } else { //会員登録ページの場合 if (mode == 'ehon'){ out_cllink = in_cllink; } else { out_cllink = in_cllink; } } } else { if (link_kind != '03'){ //会員登録ページ以外の場合 if (mode == 'ehon'){ if (ehon_registed){ //e-honの会員登録されていればトップページへ、会員登録されていなければ定義された(会員登録)ページへ。 out_cllink = 'http://www.e-hon.ne.jp/'; } else { out_cllink = in_cllink; } } else { out_cllink = in_cllink; } } else { //会員登録ページの場合 if (mode == 'ehon'){ out_cllink = in_cllink; } else { out_cllink = in_cllink; } } } return(out_cllink); } function cnv_link(in_link, in_shopid, link_kind, mode, define_vc_pid){ var out_link = ''; var out_imgparts = '<img border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=2ZW5X8+GAFZN6+3TDU+BW8O2" alt="">'; var out_img; out_link += encodeURIComponent(cnv_only_cllink(in_link, link_kind, mode)); out_img = out_imgparts; //out_link = "http://seinenbu.tokyo-shoten.or.jp/seinen/lib/af_redirect.php?url=" + encodeURIComponent(out_link) + "&shop_id=" + in_shopid; out_link = "http://seinenbu.tokyo-shoten.or.jp/seinen/lib/af_redirect.php?url=" + out_link + "&shop_id=" + in_shopid; return([out_link, out_img]); } function cnv_only_A8cllink(in_A8cllink, link_kind, mode){ var out_A8cllink; if (avastate){ if (link_kind != '03'){ //会員登録ページ以外の場合 if (mode == 'ehon'){ out_A8cllink = decodeURIComponent(avalink_ehon); } else { out_A8cllink = decodeURIComponent(avalink_ehon); } } else { //会員登録ページの場合 if (mode == 'ehon'){ out_A8cllink = in_A8cllink; } else { out_A8cllink = in_A8cllink; } } } else { if (link_kind != '03'){ //会員登録ページ以外の場合 if (mode == 'ehon'){ if (ehon_registed){ //e-honの会員登録されていればトップページへ、会員登録されていなければ定義された(会員登録)ページへ。 out_A8cllink = 'http://www.e-hon.ne.jp/'; } else { out_A8cllink = in_A8cllink; } } else { out_A8cllink = in_A8cllink; } } else { //会員登録ページの場合 if (mode == 'ehon'){ out_A8cllink = in_A8cllink; } else { out_A8cllink = in_A8cllink; } } } return(out_A8cllink); } function cnv_A8link(in_A8link, in_shopid, link_kind, mode, define_vc_pid){ var out_A8link; var out_A8imgparts = '<img border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=2ZW5X8+GAFZN6+3TDU+BW8O2" alt="">'; var out_A8img; if (in_A8link.search(/a8\.net/) != -1){ //定義がA8アフィリエイトか var def_A8url = parseURL(in_A8link); if (def_A8url['hostname'].substr(-1, 1) !== '/') def_A8url['hostname'] += '/'; out_A8link = def_A8url['protocol'] + '//' + def_A8url['hostname']; if (def_A8url['pathname']) out_A8link += def_A8url['pathname']; //if (def_A8url['port']) out_A8link += ':' + def_A8url['port']; var w_parm = ''; for (var key in def_A8url['searchObject']){ if (w_parm == '') w_parm = '?'; else w_parm += '&'; var w_item = def_A8url['searchObject'][key]; if (w_item === undefined) w_item = ''; if (key == 'a8ejpredirect'){ w_item = cnv_only_A8cllink(decodeURIComponent(w_item), link_kind, mode); w_item = encodeURIComponent(w_item); } else if (key == 'a8mat'){ out_A8mat = w_item; } w_parm += key + '=' + w_item; } out_A8link += w_parm; } else { var detail_url; if (mode == 'ehon'){ detail_url = defurl_A8_readershop_1 + defurl_A8_readershop_2 + defurl_A8_readershop_3; } else { detail_url = defurl_A8_readershop_1 + defurl_A8_readershop_2 + defurl_A8_readershop_3; } var w_1 = detail_url.search(/a8ejpredirect\=/); out_A8link = detail_url.substring(0, w_1+14); out_A8link += encodeURIComponent(cnv_only_A8cllink(in_A8link, link_kind, mode)); } out_A8img = out_A8imgparts; //out_A8img = '<img src="testimg.jpg">'; out_A8link = "http://seinenbu.tokyo-shoten.or.jp/seinen/lib/af_redirect.php?url=" + encodeURIComponent(out_A8link) + "&shop_id=" + in_shopid; return([out_A8link, out_A8img]); } function get_toritsugi_url(order_url, shop_id, shop_kind, link_kind, vc_pid){ var def_order_url; if (ehon_af == 'a8'){ def_order_url = defurl_A8_readershop_1 + defurl_A8_readershop_2 + defurl_A8_readershop_3; } else if (ehon_af == 'vc'){ def_order_url = defurl_vc_readershop_1 + vc_pid + defurl_vc_readershop_3; } else { def_order_url = defurl_none_readershop; } if (order_url !== undefined){ order_url = order_url.replace(/\&\;/g, '&'); order_url = order_url.replace(/\ \;/g, ' '); order_url = order_url.replace(/\<\;/g, '<'); order_url = order_url.replace(/\>\;/g, '>'); } if (shop_kind == "組合員"){ if (order_url){ if (order_url.search(/honyaclub/) != -1){ // 本屋クラブ order_url_array = cnv_hclink(order_url, shop_id, link_kind); } else if (order_url.search(/e-hon/) != -1){ // e-hon if (ehon_af == 'a8'){ order_url_array = cnv_A8link(order_url, shop_id, link_kind, 'ehon', ''); } else if (ehon_af == 'vc'){ order_url_array = cnv_vclink(order_url, shop_id, link_kind, 'ehon', vc_pid); } else { order_url_array = cnv_link(order_url, shop_id, link_kind, 'ehon', ''); } } else if (order_url.search(/honto/) != -1){ // honto order_url_array = cnv_vclink(order_url, shop_id, link_kind, 'honto', vc_pid); } else if (order_url.search(/kinokuniya/) != -1){ // kinokuniya order_url_array = cnv_vclink(order_url, shop_id, link_kind, 'kino', vc_pid); } else { //ehon、honyaclub以外が定義されている場合、定義をそのまま生かす。 if (ehon_af == 'a8'){ order_url_array = cnv_A8link(order_url, shop_id, link_kind, 'ehon', ''); } else if (ehon_af == 'vc'){ order_url_array = cnv_vclink(order_url, shop_id, link_kind, 'ehon', vc_pid); } else { order_url_array = cnv_link(order_url, shop_id, link_kind, 'ehon', ''); } } } else { if (ehon_af == 'a8'){ order_url_array = cnv_A8link(def_order_url, shop_id, link_kind, 'ehon', ''); } else if (ehon_af == 'vc'){ order_url_array = cnv_vclink(def_order_url, shop_id, link_kind, 'ehon', vc_pid); } else { order_url_array = cnv_link(def_order_url, shop_id, link_kind, 'ehon', ''); } } } else { //非組合員はe-honの組合会員登録ページ if (ehon_af == 'a8'){ order_url_array = cnv_A8link(def_order_url, '', link_kind, 'ehon', ''); } else if (ehon_af == 'vc'){ order_url_array = cnv_vclink(def_order_url, '', link_kind, 'ehon', vc_pid); } else { order_url_array = cnv_link(def_order_url, '', link_kind, 'ehon', ''); } } //alert(order_url_array); return(order_url_array); } function get_toritsugi_url2(){ if (ehon_af == 'a8'){ return(cnv_A8link(defurl_A8_readershop_1 + defurl_A8_readershop_2 + defurl_A8_readershop_3, '', '', 'ehon', '')); } else if (ehon_af == 'vc'){ return(cnv_vclink(defurl_vc_readershop_1 + defurl_vc_readershop_2 + defurl_vc_readershop_3, '', '', 'ehon', '')); } else { return(cnv_link(defurl_none_readershop, '', '', 'ehon', '')); } } function image2str_toritsugi(image, mode){ var message; if (mode == 'toriyose'){ message = '本は問屋からこの店に配送します。'; } else { message = '本は問屋からご自宅にお送りします。'; } var icons = { "clearlightblue-s.gif" : '内部矛盾', "clearred-s.gif" : '内部矛盾', "clear-s.gif" : '内部矛盾', "lightblue-s.gif" : '取寄せ不可。', "lightblue_hole-s.gif" : '店頭在庫不明', "blinkred1000-s.gif" : '内部矛盾', "blinkred500-s.gif" : '内部矛盾', "blinkred300-s.gif" : '内部矛盾', "blinkorange1000-s.gif" : '内部矛盾', "blinkorange500-s.gif" : '内部矛盾', "blinkorange300-s.gif" : '内部矛盾', "blinkblue1000-s.gif" : '内部矛盾', "blinkblue500-s.gif" : '内部矛盾', "blinkblue300-s.gif" : '内部矛盾', "redyellow-s.gif" : '内部矛盾', "redyellow2-s.gif" : '内部矛盾', "redyellow3-s.gif" : '内部矛盾', "red-s.gif" :'内部矛盾', "sarmon-s.gif" : '3日以内に' + message, "sarmon_hole-s.gif" : message, "orange-s.gif" : '7日以内に' + message, "orange_hole-s.gif" : message, "yellow-s.gif" : '店頭在庫あり', "white-s.gif" : '在庫検索中!', "cleargray.gif" : '内部矛盾' } return icons[image]; } function get_avatext(cur_shop){ var addstr = ''; if (cur_shop['店舗分類'] == '組合員'){ if (cur_shop['marker_avatext']){ addstr += cur_shop['marker_avatext']; if (cur_shop['近隣配達サービス(雑誌・書籍単品の場合)']) addstr += '(近隣配達サービスあり)'; if (cur_shop['marker_avastate'] == 1){ if (cur_shop["検索注文URL"] && cur_shop["検索注文URL"].search(/shoten.co.jp\/nisho/) == -1){ if (cur_shop["検索注文URL"].search(/honto/) !== -1 || cur_shop["検索注文URL"].search(/kinokuniya/) !== -1){ //丸善ジュンクと紀伊国屋はアフィリエイト+在庫検索モード対応にする var w_url_pickup = get_toritsugi_url(cur_shop["検索注文URL"], cur_shop["店番号"], cur_shop["店舗分類"], '04', cur_shop['ヴァリューコマースのPID']); addstr += ':<a href="' + w_url_pickup[0] + '" target="_cyuumon">こちらから直接ご注文ください。' + w_url_pickup[1] + '</a>'; } else { addstr += ':<a href="' + cur_shop["検索注文URL"] + '" target="_cyuumon">こちらから直接ご注文ください。</a>'; } } else { addstr += ':<b><a href="tel:' + cur_shop['電話番号'] + '" target="_blank">電話</a></b>で直接お取り置きください。'; } } else if (cur_shop['marker_avastate'] == 9){ addstr += ':<b><a href="tel:' + cur_shop['電話番号'] + '" target="_blank">電話</a></b>で直接お問い合わせください。'; } else { addstr += ':<b><font color="red">取り寄せ</font></b>または<b><font color="goldenrod">宅配</font></b>にてご購入ください。'; } } else { addstr += '在庫不明'; if (cur_shop['近隣配達サービス(雑誌・書籍単品の場合)']) addstr += '(近隣配達サービスあり)'; if (cur_shop["検索注文URL"] && cur_shop["検索注文URL"].search(/shoten.co.jp\/nisho/) == -1){ addstr += '(<a href="' + cur_shop["検索注文URL"] + '" target="_cyuumon">こちらから直接ご注文ください。</a>)'; } else { addstr += '(詳細は<b><a href="tel:' + cur_shop['電話番号'] + '" target="_blank">電話</a></b>で直接お問い合わせください。)'; } } } else { if (cur_shop['marker_avatext']){ addstr += cur_shop['marker_avatext']; if (cur_shop['marker_avastate'] == 1){ addstr += ''; } else if (cur_shop['marker_avastate'] == 9){ addstr += ''; } else { addstr += ':<b><font color="red">取り寄せ</font></b>または<b><font color="goldenrod">宅配</font></b>にてご購入ください。'; } } else { addstr += '在庫不明'; } } return addstr; } // マーカーに書店情報を付ける function attachMessage(cur_shop, cur_state) { cur_shop["marker"].on('click', function() { if (cur_shop["marker"].getPopup()) return; var infowindow = L.popup({autoPanPadding:[60,60]}).setContent(cur_shop['marker_html']); cur_shop["marker"].on('popupopen', function() { convert_html(cur_shop, cur_state); open_send2window(infowindow, cur_shop); }); //完全に開いた後の処理 cur_shop["marker"].bindPopup(infowindow).openPopup(); }); } function open_send2window(in_infowindow, cur_shop){ if (avastate){ if (cur_shop["店舗分類"] == "組合員"){ if (cur_shop["取次在庫検索URL"]){ //何もしない(infowindowの中に取り寄せと宅配を表示) } else { //if (cur_shop["ヴァリューコマースのPID"]){ // //何もしない(infowindowの中に宅配を表示) //} else { // show_send2(in_infowindow); //} } } else { show_send2(in_infowindow); } } } function createmarker(cur_shop, cur_state, caller) { var type; // if (cur_shop['if'] === true){ // convert_html(cur_shop, cur_state); // } if (arg_shopid){ //店指定の場合はその店のみ点滅 type = selecticon(cur_shop, "nobrink", caller); } else { type = selecticon(cur_shop, "brink", caller); } if (cur_shop["marker"]) { if (ic[type] != cur_shop["marker"].getIcon()) { cur_shop["marker"].setIcon(ic[type]); } if (cur_shop["marker"].isPopupOpen()) { convert_html(cur_shop, cur_state); } } else { cur_shop["marker"] = L.marker([cur_shop["緯度"], cur_shop["経度"]], {icon: ic[type], title: cur_shop["店名"], id: cur_shop["店番号"]}); attachMessage(cur_shop, cur_state); } } function deletemarker(cur_shop) { if (cur_shop["marker"]) { //alert("in deletemarker 店名=" + cur_shop["店名"]); remove_marker(cur_shop); delete cur_shop["marker"]; } } function marker_is_show(cur_shop) { if (!cur_shop["緯度"] || !cur_shop["経度"]) return false; var today = new Date(); var point = L.latLng(cur_shop["緯度"], cur_shop["経度"]); var seldate = Math.floor(today.getTime()/86400000); if (!cur_shop["開店日シリアル値"] || cur_shop["開店日シリアル値"] <= seldate){ if (!cur_shop["閉店日シリアル値"] || seldate <= cur_shop["閉店日シリアル値"]){ if (!area || area.contains(point)) { //alert("marker_is_show:" +cur_shop["店名"] + "のmarker_isselectedは" + cur_shop["marker_isselected"]); if (cur_shop["marker_isselected"]) { //alert("true"); return true; } } } } return false; } function starttimer(timeout_sec){ var interval = 1600; var times = parseInt(timeout_sec * 1000 / 1600) + 1; if (ava_timer == -1){ ava_timer = setInterval(timer_func_str, interval); ava_timer_times = times; //alert("starttimer::ava_timer_times:" + times + ':timerID=' + ava_timer); } else { //alert("ava_timer_times:" + times); ava_timer_times = times; } } function create_markers(caller){ if (is_send2_box === true){ cleat_takuhai_html(); } //alert("in_create_markers avastate=" + avastate); if (avastate && avastate_ehon < -2){//在庫検索指示中なら、在庫を検索する var isbn = ava_isbn; var url = "./seinen/zaiko.php?i=" + isbn; url += "&s=t1&m=j&t=" + new Date().getTime(); //console.log("Call!" + url); //alert("Call!" + url); var conn = YAHOO.util.Connect.asyncRequest("GET", url, ava_callback_e_hon2); avastate_ehon = -2; avatext_ehon = '検索リクエスト返信待ち'; document.getElementById("search_sign").style.display = "block"; starttimer(30); } if (avastate && avastate_hc < -2){ var isbn = ava_isbn; var url = "./seinen/zaiko.php?i=" + isbn; url += "&s=t5&m=j&t=" + new Date().getTime(); //console.log("Call!" + url); //alert("Call!" + url); var conn = YAHOO.util.Connect.asyncRequest("GET", url, ava_callback_honya_town2); avastate_hc = -2; avatext_hc = '検索リクエスト返信待ち'; document.getElementById("search_sign").style.display = "block"; starttimer(30); } if (avastate && avastate_honto < -2){ //if ((ava_isbn.length != 13 && ava_isbn.length != 12 ) || ava_isbn.substring (0, 4) != '4910'){//書籍? var isbn = ava_isbn; var url = "./seinen/zaiko.php?i=" + isbn; url += "&s=t6&m=j&t=" + new Date().getTime(); //console.log("Call!" + url); //alert("Call!" + url); var conn = YAHOO.util.Connect.asyncRequest("GET", url, ava_callback_honto2); avastate_honto = -2; avatext_honto = '検索リクエスト返信待ち'; document.getElementById("search_sign").style.display = "block"; starttimer(30); //} } if (avastate && avastate_kino < -2){ if ((ava_isbn.length != 13 && ava_isbn.length != 12 ) || ava_isbn.substring (0, 4) != '4910'){//書籍? var isbn = ava_isbn; var url = "./seinen/zaiko.php?i=" + isbn; url += "&s=t7&m=j&t=" + new Date().getTime(); //console.log("Call!" + url); //alert("Call!" + url); var conn = YAHOO.util.Connect.asyncRequest("GET", url, ava_callback_kino2); avastate_kino = -2; avatext_kino = '検索リクエスト返信待ち'; document.getElementById("search_sign").style.display = "block"; starttimer(30); } } //在庫検索可能店が地図内に25店舗以上ある場合は在庫検索不可とする ava_shop_count = 0; for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (marker_is_show(cur_shop)){ if (avastate && ((!cur_shop["marker_avastate"]) || cur_shop["marker_avastate"] < -2)){ //if (cur_shop["店舗分類"] == "組合員"){ if (cur_shop["自店在庫検索URL"]){ ava_shop_count ++; } //} } } } } if (ava_shop_count >= 25){ alert("在庫検索可能店が地図内に25店以上ある場合はサーバー負荷軽減の為、在庫検索を停止しています。画面サイズを小さくしてから再度検索して下さい。"); for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (marker_is_show(cur_shop)){ createmarker(cur_shop, cur_state, caller); } else { deletemarker(cur_shop); } } } } else { for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (marker_is_show(cur_shop)){ if (avastate && ((!cur_shop["marker_avastate"]) || cur_shop["marker_avastate"] < -2)){ //if ((ava_isbn.length != 13 && ava_isbn.length != 12 ) || ava_isbn.substring (0, 4) != '4910'){//書籍? //if (cur_shop["店舗分類"] == "組合員"){ if (cur_shop["自店在庫検索URL"]){ var isbn = ava_isbn; var url = "./seinen/zaiko.php?i=" + isbn; url += "&s=" + cur_shop["店番号"]; url += "&m=j&t=" + new Date().getTime(); //console.log("Call!" + url); //alert("Call!" + url); var conn = YAHOO.util.Connect.asyncRequest("GET", url, ava_callback2); cur_shop["marker_avastate"] = -2; cur_shop["marker_avatext"] = '検索リクエスト返信待ち'; document.getElementById("search_sign").style.display = "block"; starttimer(30); //alert("in create_markers1. after GDownloadUrl. caller=" + caller); } //} //} else {//雑誌? //if (cur_shop["店舗分類"] == "組合員"){ //if (cur_shop["自店雑誌検索URL"]){ //var isbn = ava_isbn; //var url = "./seinen/zaiko.php?i=" + isbn; //url += "&s=" + cur_shop["店番号"]; //url += "&m=j&t=" + new Date().getTime(); //console.log("Call!" + url); //alert("Call!" + url); //var conn = YAHOO.util.Connect.asyncRequest("GET", url, ava_callback2); //cur_shop["marker_avastate"] = -2; //cur_shop["marker_avatext"] = '検索リクエスト返信待ち'; //document.getElementById("search_sign").style.display = "block"; //starttimer(30); //} //} //} } createmarker(cur_shop, cur_state, caller); } else { deletemarker(cur_shop); } } } } } function showmarkers(){ //メインの地図の範囲の書店のアイコンだけを入れて地図を表示する。 for (var cur_state in shops) { var ii = 0; for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (marker_is_show(cur_shop)){ overlay_marker(cur_shop); } else { remove_marker(cur_shop); } //if (ii % 100 == 0){ status = ii + "個目のマーカー表示中"; //} ii++; } } } function showshoplist(){ var html_base = new Array(); var ii = 0; var today = new Date(); html_base[ii++] = '<table cellpadding="0" cellspacing="0"'; var seldate = Math.floor(today.getTime()/86400000); for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; //alert(seldate); if (!cur_shop["開店日シリアル値"] || cur_shop["開店日シリアル値"] <= seldate){ if (!cur_shop["閉店日シリアル値"] || seldate <= cur_shop["閉店日シリアル値"]){ if (cur_shop["marker_isselected"]) { var type; if (arg_shopid){ //店指定の場合はその店の点滅 type = selecticon(cur_shop, "nobrink", "showshoplist"); } else { type = selecticon(cur_shop, "brink", "showshoplist"); } //alert(type); if (cur_shop["URL"]){ html_base[ii++] = '<tr><td><IMG src="hpmark.gif" onClick="window.open(' + "'" + cur_shop["URL"] + "', 'hptour');" + '"></td'; } else { html_base[ii++] = '<tr><td></td'; } if (cur_shop["店舗分類"] == "組合員"){ html_base[ii++] = '<td><IMG src=' + icList[type][0] + ' width="10" height="16" onClick="showhtml2(' + "'" + cur_shop["店番号"] + "')"+ '"></td'; html_base[ii++] = '<td><a href="javascript:showhtml2(' + "'" + cur_shop["店番号"] + "')" + '"><B'; html_base[ii++] = cur_shop["店名"] + '</B></a></td></tr'; } else { html_base[ii++] = '<td></td><td><a href="javascript:showhtml2(' + "'" + cur_shop["店番号"] + "')" + '"><B'; html_base[ii++] = cur_shop["店名"] + '</B></a></td></tr'; } //alert(html_base); } //} //alert(cur_shop["店名"] + "のループ終了"); } } } } html_base[ii++] = '</table'; //html_base += "</xmp>"; target0 = document.getElementById("shoplist"); target0.innerHTML = html_base.join('>') + '>'; //alert("関数showshoplist終了"); } function showshops(caller) { if (caller == 'timer'){ if (now_moveing){ //alert("他スレッド実行中のためタイマーabout"); return;//イベントのコールバック動作中は何もしない } } else { now_moveing = true; } //alert('caller=' + caller + ':ava_timer_times=' + ava_timer_times + ':timerid=' + ava_timer); //alert('caller=' + caller + ' status = "都道府県地図と状態文字列表示開始"'); if (caller == 'first_load_state'){ set_centerstate(specified_centerstate); } if (caller != 'load_state' && caller != 'first_load_state'){ //alert('stateデータのセット'); if (copy_states()){ //stateデータのセット(load後のタイマーでload完了していた場合の為の処理) //sort_states(); //店リストの並び順を整える var w_state = calc_centerstate(); //削除の方が早いので全県がなくなってしまうタイミングがある。その間は何もしない。 if (w_state) set_centerstate(w_state); //alert('画面の文字表示を変更'); show_statestring(); //画面の文字表示を変更 //alert('マーカー表示非表示データを初期化'); set_marker_isselected(); //alert('店リストを表示'); showshoplist(); //alert('copy_state=' + true); if (arg_block){ //支部名を指定した場合はデータを全ての店の中心から表示 mapcenter = calc_center(arg_block); map.setView(mapcenter, 13); } else if (arg_horidashi){ //掘り出し選書グループを指定した場合も全表示店の中心に地図を移動させる mapcenter = calc_center(); map.setView(mapcenter, 10); } } else { //alert('copy_state=' + false); } //status = "都道府県地図と状態文字列表示終了"; } if (caller != 'load' && caller != 'load_state' && caller != 'first_load_state' && caller != 'timer'){ //alert('status = "表示範囲取得開始"'); var w_area = map.getBounds(); if (w_area !== undefined){ area = w_area; } status = "表示範囲取得終了"; } if (caller != 'load_state'){ //alert('status = "必要都道府県データ取得開始"'); if (get_states()){ //sort_states(); //店リストの並び順を整える if (caller != 'first_load_state'){ var w_state = calc_centerstate(); //削除の方が早いので全県がなくなってしまうタイミングがある。その間は何もしない。 if (w_state) set_centerstate(w_state); } show_statestring(); //画面の文字表示を変更 set_marker_isselected(); showshoplist(); //alert('get_state=' + true); } else { //alert('get_state=' + false); } //status = "必要都道府県データ取得終了、"; } //alert('status = "html作成開始"'); create_htmls(); //alert('tatus = "html作成終了、マーカー作成開始"'); create_markers(caller); status = "マーカー作成終了"; if (caller == 'load' || caller == 'load_state' || caller == 'change_selectform'){ //alert('status = "店リスト表示開始"'); showshoplist(); status = "店リスト表示終了"; } //alert('status = "マーカー表示開始"'); showmarkers(); //alert('status = "マーカー表示終了"'); if (caller != 'timer'){ now_moveing = false; } } function set_bounds(){ area = map.getBounds(); } function statemap_click(x, y){ //修正箇所2 //左上の東京都の地図(320x125)をクリックした時に呼ばれる処理。 //左上の東京都の地図座標から位置を計算してその周りの書店のアイコンだけを入れて地図を表示する。 //修正する場合は小さい地図画像を作成し、その左上と右下の座標をここに入れる //左上の東京都の地図の左上端35.829644,139.167559 //左上の東京都の地図の右下端35.510990,139.918013 x = cnv_mapoffset_x(x); y = cnv_mapoffset_y(y); //alert(x + "," + y + ";"); var mainmap_x = stateinfo[cur_centerstate]['mapsize_x']; var mainmap_y = stateinfo[cur_centerstate]['mapsize_y']; var mainmap_lu_lat = Number(stateinfo[cur_centerstate].bound[1][0]); var mainmap_lu_lng = Number(stateinfo[cur_centerstate].bound[1][1]); var mainmap_rd_lat = Number(stateinfo[cur_centerstate].bound[0][0]); var mainmap_rd_lng = Number(stateinfo[cur_centerstate].bound[0][1]); var mapcenter = [mainmap_lu_lat - (mainmap_lu_lat - mainmap_rd_lat) * y / mainmap_y, mainmap_lu_lng + (mainmap_rd_lng - mainmap_lu_lng) * x / mainmap_x]; map.setView(mapcenter, map.getZoom()); showshops("statemap_click"); } // selectフォームにデータをセット function set_selectform(selectid){ var formobj = document.getElementById("svform1"); formobj.selectkind.selectedIndex = 0; var ii = 0; for (var item in select_items){ //alert("selectid=" + selectid + ":select_items[item]=" + select_items[item]); if (selectid == select_items[item]){ formobj.selectkind.selectedIndex = ii; return; } ii++; } } function creat_selectform(){ if (arg_horidashi || arg_event){ var html = '<form id="svform1" name="svform1" action="" style="display: inline">' + '<span class="hpb-subh01-cell1_3">表示させる店の種類を選ぶ</span>' + '<select id="selectkind" onChange="change_selectform()">' + '<option selected>全てのお店' + '<option>配達してくれるお店' + '<option>ネット注文可能店' + '<option>「Honya Club」受け取り店' + '<option>「e-hon」受け取り店' + '<option>東京都書店商業組合加盟店' + '<option>書店商業組合加盟店' + '<option>書店商業組合青年部加盟店' + '<option>店内在庫のわかるお店(書籍)' + '<option>店内在庫のわかるお店(雑誌)'; if (arg_horidashi){ html += '<option>掘り出し選書参加店' + '<option>掘り出し選書グループ1' + '<option>掘り出し選書グループ2' + '<option>掘り出し選書グループ3' + '<option>掘り出し選書グループ4' + '<option>掘り出し選書グループ5' + '<option>掘り出し選書グループ6' + '<option>掘り出し選書グループ7' + '<option>掘り出し選書グループ8'; } else if(arg_event) { html += '<option>' + arg_event; } html += '</select>' + // '<input id="svbtn1" type="button" onclick="toggle_streetview()" value="ストリートビューを見る" style="margin:0px;padding:1px 0px 1px;"/>' + '</form>'; var formobj = document.getElementById("svform"); formobj.innerHTML = html; } set_selectform(arg_selectid); } /* この下からは在庫表示用の処理 */ var avastate = false; var avaerror_c = 0; //cur_shop['marker_avastate']の使い方:-4:在庫非表示、-3:在庫検索指示中(検索未開始)、-2:在庫検索中、 var avastate_ehon = -4; //-1:在庫問い合わせエラー終了、0:在庫なし、1:在庫あり、2:取り寄せ、9:不明 var avatext_ehon = ''; var avalink_ehon;//現在在庫表示中の本のehon詳細データのURL var avaaflink_ehon; var avastate_hc = -4; var avatext_hc = ''; var avalink_hc;//現在在庫表示中の本のhonyaclub詳細データのURL var avaaflink_hc; var avastate_honto = -4; //-1:在庫問い合わせエラー終了、0:在庫なし、1:在庫あり、2:取り寄せ、9:不明 var avatext_honto = ''; var avalink_honto;//現在在庫表示中の本の詳細データのURL var avaaflink_honto; var avastate_kino = -4; //-1:在庫問い合わせエラー終了、0:在庫なし、1:在庫あり、2:取り寄せ、9:不明 var avatext_kino = ''; var avalink_kino;//現在在庫表示中の本のの紀伊國屋詳細データのURL var avaaflink_kino; var avastate_maker;//現在のところ未使用 var marker_avas = new Array(); //99:絶版又は品切れ重版未定、79:検索エラー //49:店内在庫なし、7:版元から取り寄せ、10:版元から取り寄せ(取扱い不可等不安要因あり)、3:問屋から取り寄せ、 //0:店内在庫あり var ava_timer = -1;//在庫検索タイマーの配列 var ava_timer_times = -1;//在庫検索タイマーの待ち回数 var ava_isbn;//現在在庫表示中の本のISBN var ava_title;//現在在庫表示中の本のタイトル var ava_gcode_honyaclub;//現在在庫表示中の本のHonyaClub用商品コード var ava_shopid_honyaclub = 0;//現在在庫表示中の本の商品コードを取り出している途中のお店の店ID(同時に1店限定とする) function avaconv_maker(ava){ var cnvtable = new Array(100, 100, 100, 100, 100, 7, 7, 7, 100, 100, 100, 100, 100, 100); return(cnvtable[parseInt(ava)+4]); } function avaconv_tonya(ava){ var cnvtable = new Array(100, 100, 100, 100, 99, 3, 7, 7, 100, 100, 100, 100, 100, 100); return(cnvtable[parseInt(ava)+4]); } function avaconv(ava){ //alert("in avaconv. ava=" + ava); var cnvtable = new Array(100, 100, 100, 100, 99, 0, 7, 100, 100, 100, 100, 100, 100, 100); return(cnvtable[parseInt(ava)+4]); } function calc_ava(cur_shop, caller){ var w_avas; //在庫表示値計算処理 //alert("in calc_ava 0: cur_shop[marker_avastate]=" + cur_shop["marker_avastate"]; if (caller != 'infowindow_toritsugi'){ w_avas = cur_shop["marker_avas"]; if (cur_shop["自店在庫検索URL"]){ var w_ava_shop = avaconv(cur_shop["marker_avastate"]); if (w_ava_shop < w_avas){ w_avas = w_ava_shop; } } } else { w_avas = 99; //取次在庫を無理やり出力させるため、店在庫はなしと仮定する } //alert("in calc_ava 1: cur_shop[marker_avastate]=" + cur_shop["marker_avastate"] + "w_avas=" + w_avas); var w_ava_e_hon = avaconv_tonya(avastate_ehon); var w_ava_honya_town = avaconv_tonya(avastate_hc); var w_ava_honto = avaconv_tonya(avastate_honto); var w_ava_kino = avaconv_tonya(avastate_kino); var w_ava_maker_from_e_hon = avaconv_maker(avastate_ehon); var w_ava_maker_from_honya_town = avaconv_maker(avastate_hc); if (cur_shop["取次在庫検索URL"] || caller == 'infowindow_toritsugi'){ var url_str = new String(cur_shop["取次在庫検索URL"]); if (url_str.search(/e-hon/) != -1){ if (w_ava_e_hon < w_avas){ w_avas = w_ava_e_hon; } } else if(url_str.search(/honyaclub/) != -1){ if (w_ava_honya_town < w_avas){ w_avas = w_ava_honya_town; } } else if(url_str.search(/honto/) != -1){ if (w_ava_honto < w_avas){ w_avas = w_ava_honto; } } else if(url_str.search(/kinokuniya/) != -1){ if (w_ava_kino < w_avas){ w_avas = w_ava_kino; } } else { if (caller == 'infowindow_toritsugi'){ w_avas = w_ava_e_hon; } } } //alert("in calc_ava 2: cur_shop[marker_avastate]=" + cur_shop["marker_avastate"] + "w_avas=" + w_avas); if (w_ava_maker_from_e_hon < w_avas){ w_avas = w_ava_maker_from_e_hon; } //alert("in calc_ava 3: cur_shop[marker_avastate]=" + cur_shop["marker_avastate"] + "w_avas=" + w_avas); if (w_ava_maker_from_honya_town < w_avas){ w_avas = w_ava_maker_from_honya_town; } //alert("in calc_ava 4: cur_shop[店番号]=" + cur_shop["店番号"] + "w_avas=" + w_avas); return(w_avas); } var ava_callback_honto2 = { success : function(o) { var js; if (js = is_json(o.responseText)) { honto(js); } else { avastate_honto = -1 avatext_honto = 'honto通信エラー(レスポンステキストがjsonでない)'; alert("通信エラー:honto在庫検索"); } }, failure : function(o) { //alert("in e_hon callback!. error!"); //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); avastate_honto = -1; avatext_honto = 'honto通信エラー(エラーコールバックが呼び出された)'; } }; function honto(js) { //alert("in honto callback!. OK!"); if ('ava' in js) { avastate_honto = String(js.ava); } if (js.link){ avalink_honto = js.link; } if (js.avatext){ avatext_honto = js.avatext; } if (js.aflink){ avaaflink_honto = js.aflink; } //console.log("在庫検索を終了しました。HONTO=" + avastate_honto + "(注文不可:0、あり:1、取り寄せ:2、その他:9)"); //alert("在庫検索を終了しました。HONTO=" + avastate_honto + "(注文不可:0、あり:1、取り寄せ:2、その他:9)"); } var ava_callback_kino2 = { success : function(o) { var js; if (js = is_json(o.responseText)) { kino(js); } else { avastate_kino = -1; avatext_kino = 'kino通信エラー(レスポンステキストがjsonでない)'; alert("通信エラー:紀伊國屋在庫検索"); } }, failure : function(o) { //alert("in e_hon callback!. error!"); //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); avastate_kino = -1; avatext_kino = 'kino通信エラー(エラーコールバックが呼び出された)'; } }; function kino(js) { //alert("in kino callback!. OK!"); if ('ava' in js) { avastate_kino = String(js.ava); } if (js.link){ avalink_kino = js.link; } if (js.avatext){ avatext_kino = js.avatext; } if (js.aflink){ avaaflink_kino = js.aflink; } //console.log("在庫検索を終了しました。KINO=" + avastate_kino + "(注文不可:0、あり:1、取り寄せ:2、その他:9)"); //alert("在庫検索を終了しました。KINO=" + avastate_kino + "(注文不可:0、あり:1、取り寄せ:2、その他:9)"); } var ava_callback_e_hon2 = { success : function(o) { var js; if (js = is_json(o.responseText)) { e_hon(js); } else { avastate_ehon = -1; avatext_ehon = 'ehon通信エラー(レスポンステキストがjsonでない)'; alert("通信エラー:e-hon在庫検索"); } }, failure : function(o) { //alert("in e_hon callback!. error!"); //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); avastate_ehon = -1; avatext_ehon = 'ehon通信エラー(エラーコールバックが呼び出された)'; } }; function e_hon(js) { //alert("in e_hon callback!. OK!"); if ('ava' in js) { avastate_ehon = js.ava; } if (js.link){ avalink_ehon = js.link; } if (js.avatext){ avatext_ehon = js.avatext; } if (js.aflink){ avaaflink_ehon = js.aflink; } //console.log("在庫検索を終了しました。e-hon=" + avastate_ehon + "(注文不可:0、あり:1、取り寄せ:2、その他:9)"); //alert("在庫検索を終了しました。e-hon=" + avastate_ehon + "(注文不可:0、あり:1、取り寄せ:2、その他:9)"); } var ava_callback_honya_town2 = { success : function(o) { var js; if (js = is_json(o.responseText)) { honya_town(js); } else { avastate_hc = -1; avatext_hc = 'HonyaClub通信エラー(レスポンステキストがjsonでない)'; alert("通信エラー:HonyaClub在庫検索"); } }, failure : function(o) { //alert("in honya_town callback!. error!"); //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); avastate_hc = -1; avatext_hc = 'HonyaClub通信エラー(エラーコールバックが呼び出された)'; } } function honya_town(js) { //alert("in honya_town callback!. OK!"); if ('ava' in js) { avastate_hc = String(js.ava); } if (js.link){ avalink_hc = js.link; } if (js.avatext){ avatext_hc = js.avatext; } if (js.aflink){ avaaflink_hc = js.aflink; } //console.log("在庫検索を終了しました。本やタウン(honyaclub)=" + avastate_hc + "(なし:0、あり:1、取り寄せ:2、その他:9)"); //alert("在庫検索を終了しました。本やタウン(honyaclub)=" + avastate_hc + "(なし:0、あり:1、取り寄せ:2、その他:9)"); } var ava_callback2 = { success : function(o) { var js; if ((js = is_json(o.responseText)) && js.shop) { shop_func(js); } else { //alert("通信エラー:書店在庫検索"); if (js.error) console.log(js.error); } }, failure : function(o) { //alert("in shop callback!. error!"); //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); } } function shop_func(js) { for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["店番号"] == js.shop.id) { if ('ava' in js){ cur_shop["marker_avastate"] = String(js.ava); } else { cur_shop["marker_avastate"] = 9; } if (js.avatext) { cur_shop["marker_avatext"] = js.avatext; } else { cur_shop["marker_avatext"] = '検索エラー'; } if (js.link) { cur_shop["marker_avalink"] = js.link; } else { cur_shop["marker_avalink"] = ''; } if (js.aflink) { cur_shop["marker_avaaflink"] = js.aflink; } else { cur_shop["marker_avaaflink"] = ''; } //console.log("在庫検索を終了しました。" + cur_shop["店名"] + "=" + cur_shop["marker_avastate"] + "(なし:0、あり:1、取り寄せ:2、その他:9)"); //alert("在庫検索を終了しました。" + cur_shop["店名"] + "=" + cur_shop["marker_avastate"] + "(なし:0、あり:1、取り寄せ:2、その他:9)"); break; } } } } function get_avastate(){ var maxmode = -99; var now_searching = false; for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["marker_avastate"]) { //console.log("in get_avastate:店名=" + cur_shop["店名"] + "この店のステイタス=" + cur_shop["marker_avastate"] + ":maxmode=" + maxmode); //alert("in get_avastate:店名=" + cur_shop["店名"] + "この店のステイタス=" + cur_shop["marker_avastate"] + ":maxmode=" + maxmode); if (maxmode < cur_shop["marker_avastate"]){ maxmode = cur_shop["marker_avastate"]; } if (cur_shop["marker_avastate"] == -2){ now_searching = true; } } //alert("in get_avastate:LOOPの終了。shopIndex=" + i); } } if (maxmode < avastate_hc){ maxmode = avastate_hc; } if (avastate_hc == -2){ now_searching = true; } if (maxmode < avastate_ehon){ maxmode = avastate_ehon; } if (avastate_ehon == -2){ now_searching = true; } if (maxmode < avastate_honto){ maxmode = avastate_honto; } if (avastate_honto == -2){ now_searching = true; } if (maxmode < avastate_kino){ maxmode = avastate_kino; } if (avastate_kino == -2){ now_searching = true; } if (maxmode <= -4) return(0);//ノーマルモード if (now_searching) return(1);//一部検索から戻っていない return(2);//検索を開始していないか又は終わっている。 } function timeout_avastate(){ //alert("Start timeout_avastate"); for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["marker_avastate"] == -2){ if (avaerror_c < 8){ alert("在庫検索処理がタイムアウトしました。店名:" + cur_shop["店名"]); } else if (avaerror_c == 8){ alert("在庫検索店数が多すぎます。地図の縮尺を小さくして再度検索してください。"); } else { } avaerror_c ++; cur_shop["marker_avastate"] = -1; cur_shop["marker_avatext"] = '検索エラー(タイムアウト)'; } } } if (avastate_hc == -2){ alert("在庫検索処理がタイムアウトしました。店名:本やクラブ"); avastate_hc = -1; } if (avastate_ehon == -2){ alert("在庫検索処理がタイムアウトしました。店名:e-hon"); avastate_ehon = -1; } if (avastate_honto == -2){ alert("在庫検索処理がタイムアウトしました。店名:JUNK"); avastate_honto = -1; } if (avastate_kino == -2){ alert("在庫検索処理がタイムアウトしました。店名:KINO"); avastate_kino = -1; } } /* 'alert("タイマーコールバック起動");' + 'alert("タイマーコールバック終了。タイマー解除確認!");' + 'alert("タイマー解除");' + */ var timer_func_str = '' + 'var w_avastate = get_avastate();' + 'var w_loadstate = is_loading();' + 'if (w_avastate != 1){' + 'document.getElementById("search_sign").style.display = "none";' + '}' + 'if (w_loadstate === false){' + 'document.getElementById("loading_sign").style.display = "none";' + '}' + 'if (w_avastate != 1 && (w_loadstate === false)){' + /*'alert("TimerCB終了!! 終了時点は" + is_loading());' +*/ 'clearInterval(ava_timer);' + 'ava_timer = -1;' + 'ava_timer_times = -1;' + 'showshops("timer");' + '} else {' + 'showshops("timer");' + 'if (ava_timer_times <= 0){' + 'timeout_avastate();' + 'ava_timer_times = -1;' + '} else {' + 'ava_timer_times --;' + '}' + '}' + ''; function init_avas(cur_state) {//各県の在庫表示テーブルを初期化 //alert('init_avas: cur_state=' + cur_state); for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; cur_shop['marker_avas'] = 99;//在庫表示テーブルをまずは絶版にしておく delete cur_shop["marker_avastate"];//在庫検索ステータスを初期状態にしておく } } // JSON文字列か(ゆるく)判定→trueならオブジェクトに変換 function is_json(str) { if (str.slice(0, 1) == '{' && str.slice(-1) == '}') { return JSON.parse(str); } return false; } function is_isbnjan(keyword){ if (moji_chks(keyword) && ( (keyword.length == 13 && (keyword.substring (0, 4) == '9784' || keyword.substring (0, 4) == '4910')) || (keyword.length == 12 && (keyword.substring (0, 4) == '9784' || keyword.substring (0, 4) == '4910')) || (keyword.length == 10 && keyword.substring (0, 1) == '4') || (keyword.length == 9 && keyword.substring (0, 1) == '4') ) ){ return(true); } else { return(false); } } function ava_show(caller, arg_isbn){ //alert("Call ava_show"); var keyword; var formobj = document.getElementById("searchform1"); if (arg_isbn === 0) alert('ISBNコードが不正です'); if (arg_isbn){ keyword = String(arg_isbn); } else { keyword = formobj.bkey.value; } if (is_isbnjan(keyword)){ if (get_avastate() === 2) ava_clear(); if (get_avastate() === 0){ //get_avastate()、0:ノーマル状態、1:検索モード(検索中)、2:検索モード(検索終了後) if (!ehon_registed) show_send(); //document.getElementById("send_box2").style.display = "none"; ava_isbn = keyword; ava_title = formobj.bkey.value; avastate = true; avaerror_c = 0; avastate_hc = -3;//ステイタスを検索指示にする avatext_hc = '検索指示中'; avastate_ehon = -3; avatext_ehon = '検索指示中'; avastate_honto = -3; avatext_honto = '検索指示中'; avastate_kino = -3; avatext_kino = '検索指示中'; for(var cur_state in shops){//全ての在庫表示テーブルを絶版にしておく init_avas(cur_state); } ava_gcode_honyaclub = 0; //本屋クラブの商品コードを初期値(0)にする if (caller != 'arg_bkey') showshops('ava_show'); } else { alert("在庫検索中です。全て終了してから新たな本の検索をして下さい。"); } } else { w_keyword = keyword.replace(/(\s+)|(\-+)/g, ""); if (is_isbnjan(w_keyword)){ if (w_keyword.substring(0,4) == '4910'){ set_search_mode("zasshi"); } else { set_search_mode("shoseki"); } } if (moji_chks(w_keyword) && (w_keyword.length == 13 && w_keyword.substring (0, 5) == '00000') ) { //e-hon検索でコードなし商品の場合にはISBNコードの先頭が00000となるのでこのメッセージを出力する alert("この商品はISBNコードがない為店内在庫を検索できません。"); } else { keyword_search(); } } } function ava_clear() { var state = get_avastate(); if (state === 2) { avastate = false; avaerror_c = 0; avastate_hc = -4;//ステイタスをノーマルモードにする avastate_ehon = -4; avastate_honto = -4; avastate_kino = -4; for (var cur_state in shops) { for (var i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; delete cur_shop["marker_avastate"];//配列の要素を削除 delete cur_shop["marker_avatext"];//配列の要素を削除 } } showshops("ava_clear"); } else if (state === 0) { } else { alert("在庫検索中です。全て終了してから在庫非表示にして下さい。"); } } var reply_id = ''; var reply_keyword; var current_mode = 0; var current_keyword; var current_txt1; var current_txt2; var current_txt3; var current_txt4; var current_txt5; var current_txt6; var current_sel1; var current_sel2; var current_sel3; //var current_sel4; var current_sel4; var limit = 10; function get_keyword(){ var keyword; if (reply_keyword){ keyword = reply_keyword; } else { if (current_mode >= 0 && current_mode <= 2){ keyword = current_keyword; } else { keyword = current_txt1; } } //alert("keyword=" + keyword + "current_mode=" + current_mode + "reply_keyword=" + reply_keyword); return(keyword); } function keyword_search(){ var formobj = document.getElementById("searchform1"); var keyword = formobj.bkey.value; if (!keyword){ return; } document.getElementById("search_box").style.display = "block"; var radioarray = formobj.mode_set; var mode = 0; for (var i=0; i < radioarray.length; i++){ //alert(radioarray[i].value); if (radioarray[i].checked && radioarray[i].value == "zasshi"){//雑誌の場合 mode = '2'; break; } } current_mode = mode; current_keyword = keyword; if (keyword.search(/[0-9]{9,13} /) !== -1) keyword = keyword.trim(); send_search(mode, '', '', keyword); } function detail_search(){ var formobj = document.getElementById("detail_form"); current_txt1 = formobj.txt1.value; current_txt2 = formobj.txt2.value; current_txt3 = formobj.txt3.value; current_txt4 = formobj.txt4.value; current_txt5 = formobj.txt5.value; current_txt6 = formobj.txt6.value; current_sel1 = formobj.sel1.value; current_sel2 = formobj.sel2.value; current_sel3 = formobj.sel3.value; //current_sel4 = formobj.sel4.value; current_mode = 3; if (keyword.search(/[0-9]{9,13} /) !== -1) keyword = keyword.trim(); send_search(3, '', '', '', current_txt1, current_txt2, current_txt3, current_txt4, current_txt5, current_txt6, current_sel1, current_sel2, current_sel3, current_sel4); } function show_search(){ document.getElementById("search_box").style.display = "block"; } function hide_search(){ document.getElementById("search_box").style.display = "none"; hide_detail(); } function chg_page(page){ send_search(current_mode, page, reply_id, reply_keyword, current_txt1, current_txt2, current_txt3, current_txt4, current_txt5, current_txt6, current_sel1, current_sel2, current_sel3, current_sel4); } const pn = ['txt1', 'txt2', 'txt3', 'txt4', 'txt5', 'txt6', 'sel1', 'sel2', 'sel3', 'sel4']; function send_search(mode, page, reply_id, keyword, ...exWords) { document.getElementById("result").style.display = "none"; document.getElementById("loading").style.display = "block"; if (!page) { page = 1; reply_id = ''; } //var url = "search.php"; //var url = "../cgi-bin/redirect.cgi/seinen/search.php"; var url = "./seinen/search.php"; //var url = "http://seinenbu.tokyo-shoten.or.jp/seinen/search.php"; url += "?bkey=" + encodeURI(keyword); //alert(formobj.mode_set); url += "&m=" + mode; url += "&p=" + page; url += "&tmp=" + reply_id; for (let i = 0; i < exWords.length; i++) { if (exWords[i]) { url += '&' + pn[i] + '=' + encodeURI(exWords[i]); } if (i >= 9) break; } url += "&t=" + new Date().getTime(); //console.log(decodeURI(url) + "検索リクエスト送信"); //alert(url + "検索リクエスト送信"); var conn = YAHOO.util.Connect.asyncRequest("GET", url, search_callback); //alert("検索リクエスト送信無事終了"); } var search_callback = { success : function(o) { //console.log("in search_callbak!. success."); //alert("in search_callbak!. success."); if (o.responseXML && o.responseXML.documentElement) { view_result(o.responseXML); } else { alert("検索できませんでした"); hide_search(); } }, failure : function(o) { //console.log("in search_callback!. error!"); //alert("in search_callback!. error!"); //alert("data=" + data + "xml.documentElement=" + xml.documentElement.getElementsByTagName("Error")); hide_search(); } } function view_result(xml) { //alert("検索結果解析"); var html = ''; reply_id = ''; var total; if (xml.getElementsByTagName("TotalResults")[0]){ total = parseInt(xml.getElementsByTagName("TotalResults")[0].firstChild.nodeValue); } if (xml.getElementsByTagName("Keyword")[0].firstChild){ reply_keyword = xml.getElementsByTagName("Keyword")[0].firstChild.nodeValue; } //alert("検索結果表示開始"); var keyword = get_keyword(); if (total > 0) { var tmps = xml.getElementsByTagName("Tmp"); var pags = xml.getElementsByTagName("Page"); if (tmps[0].firstChild) { reply_id = tmps[0].firstChild.nodeValue; } page = parseInt(pags[0].firstChild.nodeValue); var items = xml.getElementsByTagName("Item"); limit = items.length; var p_navi = '<div class="page_navi">'; if (page > 1) { p_navi += '<input type="button" value="前のページ" onclick="chg_page(page-1);" />'; } if (total > page * limit) { p_navi += ' <input type="button" value="次のページ" onclick="chg_page(page+1);" />'; } p_navi += '</div>'; html = "<div class=\"result_title\"><b>" + keyword + "</b> の検索結果<br>"; var from_num = (page - 1) * limit + 1; var to_num; //alert(page); if ((total / limit) < page){ //最終ページか? to_num = total; } else { to_num = page * limit; } //alert("from_num=" + from_num + "to_num=" + to_num); html += "<br>全<b>" + total + "</b>件中<b>" + from_num + "</b>件目から<b>" + to_num + "</b>件目までを表示しています。<br><font color='green'>書名をクリックするとE-honの詳細画面を別ウインドウに表示します。</font><font color='red'>在庫検索ボタンをクリックすると現在地図上に表示されている店の店内在庫を検索します。</font><font color='blue'>表示される在庫は前日の営業終了時から今現在まで店舗によって違いがあります。</font>また、<font color='blue'>万引き等、不慮の事故により必ずしも正確でない場合もあります。</font>詳しくは各店舗にお問い合わせ下さい。</div>"; html += "<ul class=\"book_list\">"; for (var i = 0; i < items.length; i++) { isbn = items[i].getAttribute("ISBN"); if (isbn.substring(0, 4) === '4910'){ url_parts = ehon_magazin_url_parts; } else { url_parts = ehon_book_url_parts; } if (ehon_af == 'a8'){ url_ehon_bd = defurl_ehon_bd_a8.replace("<BOOKorMAG>",encodeURI(url_parts)); } else if (ehon_af == 'vc'){ url_ehon_bd = defurl_ehon_bd_vc.replace("<BOOKorMAG>",encodeURI(url_parts)); } else { url_ehon_bd = defurl_ehon_bd_none.replace("<BOOKorMAG>",url_parts); } html += "<li><a href=\"" + url_ehon_bd + isbn + "\" target=\"_cyuumon\">" + items[i].getAttribute("Title") + '</a><br />'; //alert(html); html += '<span class="ex">'; if (items[i].getAttribute("Author")) { html += items[i].getAttribute("Author") + ' / '; } if (items[i].getAttribute("Publisher")) { html += items[i].getAttribute("Publisher"); } if (items[i].getAttribute("Price")) { html += ' / ' + items[i].getAttribute("Price") + '円'; } if (items[i].getAttribute("Release")) { html += ' / ' + items[i].getAttribute("Release"); } if (items[i].getAttribute("Size")) { html += ' / 版型' + items[i].getAttribute("Size"); } if (items[i].getAttribute("ISBN")) { html += ' / ' + items[i].getAttribute("ISBN"); } if (items[i].getAttribute("ISBN").substring(0,2) !== "BX"){ html += ' / ' + "<a href=\"javascript:void(0)\" onclick=\"sel_isbn(\'" + items[i].getAttribute("ISBN") + "\',\'" + items[i].getAttribute("Title") + "\')\">" + '<img src="kensakubtn2.gif"></a>'; } html += '</span></li>'; } html += "</ul>"; html += p_navi; } else { html = "<div class=\"result_title\"><b>" + keyword + "</b> は見つかりませんでした。</div>"; } document.getElementById("result").innerHTML = html; document.getElementById("loading").style.display = "none"; document.getElementById("result").style.display = "block"; //alert("検索結果表示終了"); } function sel_isbn(isbn, title) { document.getElementById("searchform1").bkey.value = title; hide_search(); ava_show('search_box', isbn); } function show_detail(){ if (true || current_mode == 2){ //詳細検索画面を起動しなくする2013/4/2.検索エンジンのe-hon化の為 //alert("雑誌の詳細検索は現在開発中です。"); alert("詳細検索は現在開発中です。"); return; } var formobj = document.getElementById("searchform1"); keyword = formobj.bkey.value; var detailtxt1obj = document.getElementById("txt1"); detailtxt1obj.value = keyword; document.getElementById("detail_box").style.display = "block"; } function hide_detail() { document.getElementById("detail_box").style.display = "none"; } function set_marker_isselected() { var normal_news_text = ""; //var normal_news_text = '<font color="red">4月16日~6月10日、URLにISBNを指定しての在庫検索でフリーズする不良がありました。現在は修正済です。</font>'; //var normal_news_text = '<font color="red">7月30日15:20頃から16:50頃まで動作しなくなっていました。ご迷惑をおかけいたしますが現在は修正済です。</font>'; //var normal_news_text = '<font color="red">しばらくの間、丸善&ジュンク堂書店の在庫検索ができなくなっていましたが修正済みです(8月19日16:20)。</font>'; //var normal_news_text = '<font color="red">1週間程度前からTSUTAYAの在庫検索ができなくなっていましたが修正済みです(8月7日10:50)。</font>'; //var normal_news_text = '<font color="red">1週間程度前から丸善ジュンク堂書店の在庫検索ができなくなっており、改修中です。(4月19日 9:44)</font>'; //var normal_news_text = '<font color="blue">丸善・ジュンク堂の在庫検索が可能に、また文教堂も新たに可能になりました。(4月21日 15:05)</font>'; //var normal_news_text = '<font color="blue">e-honサイトのリニューアルにより検索が出来なくなっていましたが、修正完了しました。(2月8日 22:00)</font>'; //var normal_news_text = '<font color="blue">hontoのメンテナンスにより丸善、ジュンク堂、文教堂の在庫検索が出来なくなっています。(9月5日 0:00~23:00)</font>'; //var normal_news_text = '<font color="blue">honya_clubの店頭在庫検索が出来なくなっていましたが、既に復旧しています。(9月26日 0:00~9月27日12:00)</font>'; //var normal_news_text = '<font color="blue">※書店データを2017年10月7日時点のものに更新しました。</font>'; //var normal_news_text = '<font color="blue">丸善・ジュンク堂・文教堂の在庫が不明になる動作不良、既に復旧しています。(12月14日 0:00~12月15日9:55)</font>'; //var normal_news_text = '<font color="red">※1月23日現在、書籍の検索が出来なくなっています。修正まで少々お待ち下さい。</font>'; //var normal_news_text = '<font color="blue">※1月23日の書籍の検索が出来ない不具合は修正済です。22:18</font>'; //var normal_news_text = '<font color="blue">11月15日 9:00、honya_clubの在庫検索が出来なくなっており、修正中です。修正までしばらくお待ち下さい。</font>'; //var normal_news_text = '<font color="blue">11月18日 11:44、11月17日よりTSUTAYAの在庫検索が出来なくなっていましたが、修正しました。</font>'; //var normal_news_text = '<font color="blue">11月27日 HonyaClubとその加盟店の在庫検索が出来なくなっていましたが、12月6日(木)修正完了しました。</font>'; //var normal_news_text = '<font color="blue">12月17日(月)未来屋書店300店以上の在庫検索が可能になりました。さらに利便性が向上しています。 </font>'; //var normal_news_text = '<font color="red">1月17日(木)hontoとその加盟店の在庫検索が出来なくなっています。対応中の為しばらくお待ちください。 </font>'; //var normal_news_text = '<font color="blue">1月17日(木)hontoとその加盟店の在庫検索が出来なくなっていまいしたが、修正済みです。 </font>'; //var normal_news_text = '<font color="blue">11月29日(金)ヨドバシカメラの在庫検索が出来なくなっています。現在原因調査中です。</font>'; //var normal_news_text = '<font color="blue">12月16日(月)三省堂書店の全店と東京、神保町のと東京堂書店、廣文館の在庫検索が復活しました。</font>'; //var normal_news_text = '<font color="blue">10月11日(日)e-honとのリンクが9月21日から切れていましたが、本日復活しました。ご迷惑をおかけしました。</font>'; //var normal_news_text = '<font color="blue">10月31日(土)honya_clubの在庫が検索できなくなっています。修正中ですので少々お待ち下さい。</font>'; //var normal_news_text = '<font color="blue">11月3日(火)honya_clubの在庫が検索できなくなっていましたが、修正済みです。</font>'; //var normal_news_text = '<font color="blue">11月24日(火)honya_clubの在庫が検索できなくなっています。修正中ですので少々お待ち下さい。</font>'; //var normal_news_text = '<font color="blue">2月10日(水)大変お待たせいたしました。honya_clubの在庫検索の修正が完了しました。</font>'; //var normal_news_text = '<font color="blue">8月11日(水)5月頃からe-hon本体の在庫検索と書誌検索が部分的に出来なくなっています。修正中です。</font>'; //var normal_news_text = '<font color="blue">8月13日(金)詳細ページが表示されない時は別タブでe-honを開き書誌検索をし、画面を閉じずに再度お試し下さい。</font>'; //var normal_news_text = '<font color="blue">8月15日(日)書誌検索処理と在庫検索処理が遅延していた不良を修正しました。長い間ご迷惑をおかけしました。</font>'; //var normal_news_text = '<font color="blue">9月10日(金)書誌検索とe-honの在庫が見れなくなっています。現在調査中です。しばらくお待ちください。</font>'; //var normal_news_text = '<font color="blue">9月12日(金)e-honの在庫が見れなくなっています。しばらくお待ちください。書誌検索は仮修正終了しています。</font>'; //var normal_news_text = '<font color="blue">9月12日(金)雑誌検索とe-honの在庫が見れなくなっています。関係各所と摺合せ中です。しばらくお待ちください。</font>'; //var normal_news_text = '<font color="blue">10月11日(月)15:00頃から書誌検索が出来なくなっていましたが、10月12日(月)9:20に回復しています。</font>'; //var normal_news_text = '<font color="blue">10月25日(月)書誌検索とe-hon在庫が見れない件全て解決しました。長い間大変ご迷惑をおかけいたしました。</font>'; //var normal_news_text = '<font color="blue">10月27日(水)雑誌検索とe-honの在庫が再度見れなくなっています。調整中です。しばらくお待ちください。</font>'; //var normal_news_text = '<font color="blue">11月6日(土)書誌検索とe-hon在庫が見れない件全て解決しました。長い間大変ご迷惑をおかけいたしました。</font>'; //var normal_news_text = '<font color="blue">11月8日(月)作業ミスにより11月6日(土)夜~11月8日(月)9:20の間書誌検索が出来なくなっていました。解決済。</font>'; //var normal_news_text = '<font color="blue">1月21日(金)出版書誌データベースBooksのリニューアルにより検索できなくなっています。対策中です。</font>'; //var normal_news_text = '<font color="blue">1月22日(土)検索処理を修正しました。出版書誌データベースBooksのリニューアルに対応済みです。</font>'; var normal_news_text = '<font color="blue">6月1日(土)HonyaClubのリンクが切れていたのを修正しました。</font>'; var formobj = document.getElementById("svform1"); //フォームの選択に従って表示フラグをセット var selectkind_index = formobj.selectkind.selectedIndex; switch (Number(selectkind_index)){ case 0:;//全てのお店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 1:;//配達してくれるお店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["近隣配達サービス(雑誌定期購読の場合)"]){ //alert("set_marker_isselected:店名:" + cur_shop["店名"] + "配達あり"); if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } //alert("set_marker_isselected:" + cur_shop["店名"] + "のmarker_isselected:" + cur_shop["marker_isselected"]); } } status_area.innerHTML = "<font color='red'>配達は距離や金額によっできない場合があります。また、東京都以外は調査していません。詳細は各店舗へ!</font>"; break; case 2:;//ネット注文可能店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["自店在庫検索URL"] || cur_shop["取次在庫検索URL"] || cur_shop["検索注文URL"]){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 3:;//「本屋タウン」受け取り店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; var order_str = new String(cur_shop["取次在庫検索URL"]); if (order_str.search(/honyaclub/) != -1){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 4:;//「e-hon」受け取り店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; var order_str = new String(cur_shop["取次在庫検索URL"]); if (order_str.search(/e-hon.ne.jp/) != -1){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 5:;//東京都書店商業組合加盟店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if ((cur_shop["店舗分類"]) == "組合員" && (cur_shop["住所"].match(/東京都/))){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 6:;//書店商業組合加盟店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if ((cur_shop["店舗分類"]) == "組合員"){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 7:;//書店商業組合青年部加盟店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["組合内分類"] == "青年部員"){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 8:;//店内在庫のわかるお店(書籍) for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["自店在庫検索URL"]){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } set_search_mode("shoseki"); status_area.innerHTML = normal_news_text; break; case 9:;//店内在庫のわかるお店(雑誌) for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["自店雑誌検索URL"]){ if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } set_search_mode("zasshi"); status_area.innerHTML = normal_news_text; break; case 10:;//掘り出し選書の場合と風になった伝書猫の場合とで違う。これらは排他条件 if (arg_horidashi){//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } } else if (arg_event){//開催イベントの種類(2012/8/16 風になった伝書猫販売店) for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["開催イベントの種類"]){ w_regexp = new RegExp(arg_event); if (cur_shop["開催イベントの種類"].search(w_regexp) >= 0){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } else { cur_shop["marker_isselected"] = false; } } } } status_area.innerHTML = normal_news_text; break; case 11:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 1){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 12:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 2){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 13:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 3){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 14:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 4){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 15:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 5){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 16:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 6){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 17:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 7){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 18:;//掘り出し選書参加店 for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["掘り出し選書グループ"] == 8){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; case 19:;//イベント参加店(2012/8/16 風になった伝書猫販売店) for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["イベント参加店"].search(/風になった伝書猫/) >= 0){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; default:; for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (!arg_block || cur_shop["支部名"] == blocks[arg_block]){ cur_shop["marker_isselected"] = true; } else { cur_shop["marker_isselected"] = false; } } } status_area.innerHTML = normal_news_text; break; } } function add_event(in_event){ arg_event = in_event; map.setZoom(11); creat_selectform(); set_selectform(10); change_selectform(); } function change_selectform(){ var formobj = document.getElementById("svform1"); //フォームの選択が配達だったらメッセージを注意メッセージを出す var selectkind_index = formobj.selectkind.selectedIndex; if (Number(selectkind_index) === 1){ alert("配達は距離や金額によっできない場合があります。また、配達可能か否かの調査は東京都以外の店舗に対しては行っていません。詳細は各店舗にお問い合わせ下さい。"); } set_marker_isselected(arg_block); showshops("change_selectform"); } function set_search_mode(mode_chr){ var formobj = document.getElementById("searchform1"); var radioarray = formobj.mode_set; var mode = 0; for (var i=0; i < radioarray.length; i++){ //alert(radioarray[i].value); //alert(mode_chr); if (radioarray[i].value == mode_chr){//引数に明示的に雑誌モードでの検索を指定された場合(mode_cnv=zasshi)と //雑誌在庫がわかる店(showkind=0)だけの表示を指定された場合 //検索モードを雑誌モードにする radioarray[i].checked = true; break; } } } function get_latlng() { var w_ret; if (!cookies) cookies = YAHOO.util.Cookie.getSubs("Z"); if (cookies) { w_ret = L.latLng(parseFloat(cookies.lat), parseFloat(cookies.lng)); } return w_ret; } function get_zoom() { var w_ret; if (!cookies) cookies = YAHOO.util.Cookie.getSubs("Z"); if (cookies) { w_ret = parseInt(cookies.zoom); } return w_ret; } function get_ehon_registed() { var w_ret; if (!cookies) cookies = YAHOO.util.Cookie.getSubs("Z"); if (cookies) { if (cookies.ehon == 'true'){ w_ret = true; } else if (cookies.ehon == 'false') { w_ret = false; } } return w_ret; } function set_position() { var w_ehon; if (ehon_registed){ w_ehon = 'true'; } else { w_ehon = 'false'; } if (!arg_horidashi && !arg_block){ if (map !== undefined){ var center = map.getCenter(); defLat = center.lat; defLng = center.lng; defZoom = map.getZoom(); cookies = { lat: defLat, lng: defLng, zoom: defZoom, ehon: w_ehon }; YAHOO.util.Cookie.setSubs("Z", cookies, { path: "/", expires: new Date("December 31, 2025") }); } } } function show_example() { document.getElementById("example_box").style.display = "block"; } function hide_example() { document.getElementById("example_box").style.display = "none"; } function show_send() { document.getElementById("send_box").style.display = "block"; } function hide_send() { document.getElementById("send_box").style.display = "none"; } function show_send2(infowindow) { document.getElementById("send_box2").style.display = "block"; is_send2_box = true; cleat_takuhai_html(); } function hide_send2() { document.getElementById("send_box2").style.display = "none"; is_send2_box = false; } function regist_ehon() { ehon_registed = true; } window.onload = function() { var loader = new YAHOO.util.YUILoader({ require: ["cookie", "connection"], base: "https://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/", onSuccess: function() { initialize(); } }); loader.insert(); } // 初期設定 function initialize() { // 色々な種類のアイコンを準備…ic[名前] for (let key in icList) { let x = icList[key]; ic[key] = L.icon({ iconUrl: x[0], iconSize: [x[1], x[2]], iconAnchor: [parseInt(x[1] / 2), x[2]], popupAnchor: [0, -x[2] - 4] }); } //ステイタス表示領域初期化 status_area = document.getElementById("status_area") //表示選択テーブル設定 locationsearch = new CLocationSearch(location.search); arg_horidashi = locationsearch.item("horidashi"); //引数の取得 arg_event = locationsearch.item("event"); //引数の取得 arg_selectid = locationsearch.item(keyword_japanese["表示選択"]); //引数の取得 arg_bkey = locationsearch.item(keyword_japanese["検索キーワード"]); //引数の取得 if (arg_bkey){ var w_bkey = arg_bkey.replace('-', ''); if (w_bkey.search(/[0-9]{9,13}/) !== -1) arg_bkey = arg_bkey + ' '; //if (w_bkey.search(/[0-9]{9,13}/) !== -1) arg_bkey = arg_bkey; //書誌情報データベースbooksがリニューアルされている為、応急的に一旦書籍名を表示せずにそのまま書店在庫検索させる } arg_mode_cnv = locationsearch.item(keyword_japanese["検索種別"]); //引数の取得 if (arg_state = locationsearch.item(keyword_japanese["都道府県"])){ if (stateinfo[arg_state] !== undefined){ specified_centerstate = arg_state; //引数の取得 } } arg_block = locationsearch.item(keyword_japanese["支部名"]); //引数の取得 if (arg_block && blocks[arg_block]) { document.title = "東京都書店商業組合「" + blocks[arg_block] + "」支部の地図"; specified_centerstate = 'tokyo'; } else { arg_block = null; } if (arg_horidashi){ arg_selectid = 10 + Number(arg_horidashi); specified_centerstate = 'tokyo'; } else if (arg_event){ arg_selectid = 10; } arg_shopid = locationsearch.item("shopid"); //引数の取得 var w_ehon = get_ehon_registed(); if (w_ehon) ehon_registed = w_ehon; if (arg_bkey){ var formobj = document.getElementById("searchform1"); formobj.bkey.value = arg_bkey; ava_show('arg_bkey', arg_bkey); } //alert('都道府県呼び出し前'); //引数のエラーチェック load_state(specified_centerstate, dataloaded_function, 'first_load_state'); //最初に指定された県のデータをロード creat_selectform(); } function calc_center(block) { var maxlat = 0; var maxlng = 0; var minlat = 360; var minlng = 360; for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; if (cur_shop["marker_isselected"]) { if (cur_shop["緯度"] && cur_shop["経度"]) { if (!block || (block && cur_shop["支部名"] == blocks[arg_block])) { if (cur_shop["緯度"] > maxlat){ maxlat = cur_shop["緯度"]; } if (cur_shop["緯度"] < minlat){ minlat = cur_shop["緯度"]; } if (cur_shop["経度"] > maxlng){ maxlng = cur_shop["経度"]; } if (cur_shop["経度"] < minlng){ minlng = cur_shop["経度"]; } } } } } } return [(Number(maxlat) + Number(minlat))/2, (Number(maxlng) + Number(minlng))/2]; } function dataloaded_function(){ //alert('creat_selectform()呼び出し前'); //左側の店一覧のターゲットを取得 //var geocoder = new GClientGeocoder(); //住所から緯度・経度変換処理 var mapcenter; var maplat; var maplng; var mapzoom; //表示中心点 東京駅<引数(state=)<GPS又はGPSがなければ前回終了時点の中心<引数(lat=、lng=) maplat = stateinfo.tokyo.center[0];//東京駅をセット maplng = stateinfo.tokyo.center[1]; if (specified_centerstate){ maplat = stateinfo[specified_centerstate].center[0];//state=の引数 maplng = stateinfo[specified_centerstate].center[1]; } // if(navigator.geolocation){ // Geolocation APIに対応している。現在位置を取得できる場合の処理 // alert( "あなたの端末では、現在位置を取得することができます。" ) ; // // 現在地を取得 // navigator.geolocation.getCurrentPosition( // // [第1引数] 取得に成功した場合の関数 // function( position ){ // // 取得したデータの整理 // var data = position.coords ; // // データの整理 // maplat = data.latitude ; // maplng = data.longitude ; // // アラート表示 // alert( "あなたの現在位置は、[" + maplat + "," + maplng + "]です。" ) ; // set_mapopt(maplat, maplng); // }, // // [第2引数] 取得に失敗した場合の関数 // function( error ){ // var w_center; // if (w_center = get_latlng()){//前回終了時の中心 // maplat = w_center.lat; // maplng = w_center.lng; // } // // エラーコード(error.code)の番号 // // 0:UNKNOWN_ERROR 原因不明のエラー // // 1:PERMISSION_DENIED 利用者が位置情報の取得を許可しなかった // // 2:POSITION_UNAVAILABLE 電波状況などで位置情報が取得できなかった // // 3:TIMEOUT 位置情報の取得に時間がかかり過ぎた… // // // エラー番号に対応したメッセージ // var errorInfo = [ // "原因不明のエラーが発生しました…。" , // "位置情報の取得が許可されませんでした…。" , // "電波状況などで位置情報が取得できませんでした…。" , // "位置情報の取得に時間がかかり過ぎてタイムアウトしました…。" // ] ; // // // エラー番号 // var errorNo = error.code ; // // // エラーメッセージ // var errorMessage = "[エラー番号: " + errorNo + "]" + errorInfo[ errorNo ] + "前回終了時の場所を表示します。"; // // // アラート表示 // alert( errorMessage ) ; // set_mapopt(maplat, maplng); // }, // // [第3引数] オプション // { // "enableHighAccuracy": false, // "timeout": 8000, // "maximumAge": 2000, // } // // ); // } else { // Geolocation APIに対応していない。現在位置を取得できない場合の処理 var w_center; if (w_center = get_latlng()){//前回終了時の中心 maplat = w_center.lat; maplng = w_center.lng; } // alert( "あなたの端末では、現在位置を取得できません。前回終了時の場所を表示します。" ) ; set_mapopt(maplat, maplng); // } } function set_mapopt(maplat, maplng){ if (arg_lat = parseFloat(locationsearch.item(keyword_japanese["緯度"]))) maplat = arg_lat; //引数の取得 if (arg_lng = parseFloat(locationsearch.item(keyword_japanese["経度"]))) maplng = arg_lng; //引数の取得 mapzoom = defZoom; var w_zoom; if (w_zoom = get_zoom()) mapzoom = w_zoom; if (w_zoom = parseInt(locationsearch.item(keyword_japanese["縮尺"]))) mapzoom = w_zoom; //引数の取得 if (arg_event == "風になった伝書猫"){ mapzoom = 11; } else if (Number(arg_selectid) == 9){ arg_mode_cnv = "zasshi"; mapzoom = 11; } map = L.map('map', {zoomControl: false}); L.control.zoom({position: 'bottomright'}).addTo(map); L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', { attribution: "Map data © <a href=\"https://maps.gsi.go.jp/development/ichiran.html\">地理院タイル</a>" }).addTo(map); map.setView([maplat, maplng], mapzoom); area = map.getBounds(); map.on('moveend', showshops); map.on('zoomend', showshops); if (arg_shopid) showhtml2(arg_shopid); //alert('最初のアラート' + arg_bkey); set_search_mode(arg_mode_cnv); showshops('first_load_state'); } function showlatlngtable(){ //店の緯度・経度の表を作る処理 target1 = document.getElementById("shoplist2"); var html_base; target1.innerHTML = "<LI>目的の店の緯度・経度一覧。(HP作成作業用)<br>"; html_base = '<table>'; for (var cur_state in shops) { for (let i = 0; i < shops[cur_state].length; i++) { var cur_shop = shops[cur_state][i]; html_base += ""; html_base += "<tr>"; html_base += "<td>" + cur_shop["緯度"] + "</td>"; html_base += "<td>" + cur_shop["経度"] + "</td>"; html_base += "</tr>"; //alert(html_base); } } html_base += '</table>'; target1.innerHTML += html_base; } function comasial(w_keyword, w_mode_cnv){ //alert(w_keyword); set_search_mode(w_mode_cnv); document.getElementById("searchform1").bkey.value = w_keyword; ava_show('comasial'); return(true); } //]]> </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-110020889-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-110020889-1'); </script> <script> window.addEventListener("beforeunload", (e) => { document.cookie = "PHPSESSID=; path=/; max-age=0"; }); </script> <meta name="google-site-verification" content="TqA2zwFIc2CFUI1HNP1xtASgb-h3yLh-XNiuub3t5X4" /> </head> <body onunload="set_position();"> <style type="text/css"> <!-- #example_box { width: 380px; left: 487px; top: 128px; position: absolute; padding: .5em; background: #fff; border-top: 1px solid #999; border-left: 1px solid #999; border-right: 2px solid #999; border-bottom: 2px solid #999; text-align: center; } #send_box { width: 380px; left: 487px; top: 128px; position: absolute; padding: .5em; background: #fff; border-top: 1px solid #999; border-left: 1px solid #999; border-right: 2px solid #999; border-bottom: 2px solid #999; text-align: center; } #send_box2 { width: 440px; left: 424px; top: 128px; position: absolute; padding: .5em; background: #fff; border-top: 1px solid #999; border-left: 1px solid #999; border-right: 2px solid #999; border-bottom: 2px solid #999; text-align: left; } #search_box { width: 680px; left: 50px; top: 20px; position: absolute; padding: .5em; background: #fff; border-top: 1px solid #999; border-left: 1px solid #999; border-right: 2px solid #999; border-bottom: 2px solid #999; text-align: center; } #detail_box { width: 420px; height: 220px; left: 530px; top: 60px; position: absolute; padding: .5em; background: #fff; border-top: 1px solid #999; border-left: 1px solid #999; border-right: 2px solid #999; border-bottom: 2px solid #999; text-align: left; } .result_title { margin: .5em; text-align: left; } ul.book_list { margin: .5em; text-align: left; width: 600px; height: 400px; overflow-y: scroll; font-size: 95%; } ul.book_list li { margin: .5em 0em; } ul.book_list .ex { margin-left: 1em; font-size: 80%; } #search_sign { width: 184px; height: 48px; left: 468px; top: 288px; position: absolute; color: #ff0000; font-weight: bold; padding: 0px 0px 0px 0px; text-align: center; } #loading_sign { width: 196px; height: 96px; left: 462px; top: 192px; position: absolute; color: #0000ff; font-weight: bold; padding: 0px 0px 0px 0px; text-align: center; } #getgcode_sign { width: 196px; height: 96px; left: 462px; top: 288px; position: absolute; color: #ff0000; font-weight: bold; padding: 0px 0px 0px 0px; text-align: center; } .button { margin-right: 4px; padding: 1px; border-radius: 5px; box-shadow: 1px 1px 0px #ccc; font-size: 80%; } .b_zai { background: red; color: yellow; background: linear-gradient(to bottom, #f33, #ff8080 30%, #c00); } .b_shop { background: blue; color: #cff; background: linear-gradient(to bottom, #33f, #8080ff 30%, #00c); } .b_home { background: yellow; color: red; background: linear-gradient(to bottom, #f8f800, #ffc 30%, #e8e800); } .b_deli { background: yellow; color: orange; background: linear-gradient(to bottom, #f8f800, #ffc 30%, #e8e800); } .b_reg { display: inline-block; background: #ce9; color: #03f !important; background: linear-gradient(to bottom, #ccf099, #f0ffcc 30%, #9c6); text-decoration: none; } .b_map { display: inline-block; background: red; color: #fff !important; background: linear-gradient(to bottom, #f33, #ff8080 30%, #c00); text-decoration: none; } .b_sv { display: inline-block; background: blue; color: #fff !important; background: linear-gradient(to bottom, #33f, #8080ff 30%, #00c); text-decoration: none; } .b_mv { display: inline-block; background: green; color: #333 !important; background: linear-gradient(to bottom, #3f3, #80ff80 30%, #0c0); text-decoration: none; } --> </style> <div id="example_box" style="font-size:90%;display:none;z-index:999;"> <div align="right">在庫検索結果の表示方法 <a href="javascript:void(0)" onclick="hide_example()">× 閉じる</a></div> <div align="left"> <img src="yellow-s.gif" width="10">在庫あり。<br> <img src="sarmon_hole-s.gif" width="10">店頭在庫不明。<img src="sarmon-s.gif" width="10">店頭在庫なし。取寄せる場合は3日以内が目安。<br> <img src="orange_hole-s.gif" width="10">店頭在庫不明。<img src="orange-s.gif" width="10">店頭在庫なし。取寄せる場合は7日以内が目安。<br> <img src="lightblue_hole-s.gif" width="10">店頭在庫不明。<img src="lightblue-s.gif" width="10">取寄せ不可。(品切又は絶版) </div> </div> <div id="send_box" style="font-size:90%;display:none;z-index:999;"> <div align="right"><b>宅配のご案内</b> <a href="javascript:void(0)" onclick="hide_send()">× 閉じる</a></div> <div align="left"> お近くに本屋がない場合、お寄りいただけない場合は宅配もできます。<br> <a href="http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=3109772&pid=882639465&vc_url=http%3A%2F%2Fwww.e-hon.ne.jp%2Fbec%2FSF%2FShotenHome%3FshotenCode%3D94509%26amp%3BList%26amp%3BTohanShotenHome" target="_chuumon" ><img src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=3109772&pid=882639465" height="1px" width="1px" border="0"><b>こちら</b>で<img src="img/kaiintouroku.gif"></a>をしてから、各書店のアイコンをクリックしてください。<br> 既に会員登録がお済みの方は<a href="javascript:void(0)" onclick="regist_ehon()"><b>こちら</b><img src="img/hihyouji.gif"></a>をクリックすると以後このメッセージが表示されなくなります。 </div> </div> <div id="send_box2" style="font-size:100%;display:none;z-index:999;"> <div align="right"><b>東京都書店商業組合青年部より 宅配のご案内 </b> <a href="javascript:void(0)" onclick="hide_send2()">× 閉じる</a> </div> <div id="send_box2_sale_message"></div> </div> <div id="detail_box" style="display:none;z-index:1001;"> <div align="right"><a href="javascript:void(0)" onclick="hide_detail()">× 閉じる</a></div> <div> <form id="detail_form" name="detail_form" onsubmit="detail_search();return false;"> <table id="sch_dtl"> <tr><th>書名:</th><td><input type="text" name="txt1" id="txt1" size="34" /> <select id="sel1" name="sel1"><option value="4">あいまい検索</option><option value="1">先頭一致検索</option><option value="2">末尾一致検索</option><option value="3">完全一致検索</option></select></td></tr> <tr><th>著者名:</th><td><input type="text" name="txt2" id="txt2" size="34" /> <select id="sel2" name="sel2"><option value="4">あいまい検索</option><option value="1">先頭一致検索</option><option value="2">末尾一致検索</option><option value="3">完全一致検索</option></select></td></tr> <tr><th>発売年月:</th><td><input type="text" name="txt3" id="txt3" size="13" />~<input type="text" name="txt4" id="txt4" size="13" /> <span class="sample">(例:2009/07)</span></td></tr> <tr><th>出版社:</th><td><input type="text" name="txt5" id="txt5" size="34" /> <select id="sel3" name="sel3"><option value="4">あいまい検索</option><option value="1">先頭一致検索</option><option value="2">末尾一致検索</option><option value="3">完全一致検索</option></select></td></tr> <tr><th>ISBNコード:</th><td><input type="text" name="txt6" id="txt6" size="34" /></td></tr> <!-- <tr><th>表示行数:</th><td><select id="sel4" name="sel4"><option value="10">10行</option><option value="20">20行</option><option value="40">40行</option><option value="80">80行</option></select></td></tr> --> </table> <input type="submit" value=" 検索 " /> </form> </div> </div> <div id="search_box" style="display:none;z-index:1000;"> <div align="right"> <a href="javascript:void(0)" onclick="show_detail()">詳細検索</a> <a href="javascript:void(0)" onclick="hide_search()">× 閉じる</a></div> <div id="result"></div> <div id="loading" style="display:none; padding:3em">サーバと通信中です。<br> <img src="img/loading.gif" /></div> </div> <div id="search_sign" style="display:none;z-index:992;"> <div style="padding:3em">店内在庫検索中<br><img src="img/loading.gif" /></div> </div> <div id="loading_sign" style="display:none;z-index:992;"> <div style="padding:3em"><span id="loading_state"></span>読み込み中<br><img src="img/loading.gif" /></div> </div> <div id="getgcode_sign" style="display:none;z-index:992;"> <div style="padding:3em">HonyaClub商品コード検索中<br><img src="img/loading.gif" /></div> </div> <!-- <div id="title" style="width : 548px; z-index : 5; height : 23px;" id="Layer1"> --> <div id="title" style="width : 1000px; z-index : 5; height : 23px;" id="Layer1"> <!--修正箇所4--> <p><a href="index.htm" target="_blank" class="hpb-subh01-cell1_6"><B>東京都書店商業組合青年部へようこそ♪</B></a> <!--</P>--> </div> <!-- <table width="1096px" border="0" cellspacing="0" cellpadding="0" class=".hpb-subh01"> --> <table width="1322px" border="0" cellspacing="0" cellpadding="0" class=".hpb-subh01"> <TBODY> <tr height="102"> <td VALIGN="TOP" width="240" rowspan="3" class="hpb-subh01-cell1_4_1"> <center> <div id="statemap" style="width:234px;height:100px;"> <div style="width:200px"> <img src="img/tokyo-s.jpg" name="tizu2-s" usemap="#mainMap" style="border-style:none;"> <!--[if gte IE 4]> <map name="mainMap" onclick="statemap_click(event.offsetX,event.offsetY)"> <![endif]--> <![if ! gte IE 4]> <map name="mainMap" onclick="statemap_click(event.layerX,event.layerY)"> <![endif]> <area shape="rect" coords="0,0,200,100"> </map> </div> </div> </center> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tbody><tr height="30"><td valign="top"><div style="color:black;font-size:90%;">現在<b><span id="cur_state">東京都</span></b>を表示しています</div> </td></tr> <tr><td valign="top" class="hpb-subh01-cell1_4"> <div style="height:98px;"> <li><font color="black"><b>店名リスト(全店表示)</b></font>(検索はブラウザの検索メニュー(Ctrl+f)で検索)<br> 凡例:<img src="hpmark.gif">該当店のHP(MouseOver)、 <img src="clear-s.gif" width="7" height="12">休業店、 <img src="clearred-s.gif" width="7" height="12"><img src="clearlightblue-s.gif" width="7" height="12">配達専門店(無店舗)、<img src="sarmon-s.gif" width="7" height="12">書店組合加盟店、 <img src="sarmon-s.gif" width="7" height="12">書店組合青年部員の店、 アイコンなし(地図上では<img src="cleargray.gif" width="7" height="12">で表示):書店組合非加盟店、 <img src="lightblue-s.gif" width="7" height="12">古書店。 </div> </td></tr> <tr><td valign="top" class="hpb-subh01-cell1_2"> <div id="shoplist" style="height:352px; overflow-y:scroll;"> <!-- <div id="shoplist" style="height:576px; overflow-y:scroll;"> --> </div> </td></tr></tbody> </table> </td> <!-- <td VALIGN="TOP" width="320"> <div id="shoplist2" onclick="showlatlngtable()" style="height:576px; overflow-y:scroll;"> </div> </td> --> <td valign="top" width="640" class="hpb-subh01-cell1_4" height="102"> <LI>左の地図の目的の場所をクリックするとその付近を表示します。<br> <LI>目的の店のマーカーをクリックすると説明がでます。<BR> <LI>目的の店のマーカー付近をダブルクリックすると1段階拡大し、そこが地図の中心にきます。<BR> <LI>拡大する場合は目的の場所を地図の中心にした上で、左上の拡大縮小バーのアンカーを上方向にドラックします。<BR> <form id="searchform1" name="searchform1" onsubmit="ava_show('button');return false;" style="display: inline"> <span class="hpb-subh01-cell1_3">店内在庫検索</span> <input type="text" name="bkey" value="" style="width:160px;margin:0px;padding:1px 0px 1px;"> <input type="radio" name="mode_set" id="shoseki" value="shoseki" checked style="margin:0px;padding:1px 0px 1px;">書籍 <input type="radio" name="mode_set" id="zasshi" value="zasshi" style="margin:0px;padding:1px 0px 1px;">雑誌 <input type="submit" value="検索" style="margin:0px;padding:1px 0px 1px;"/> </form> <form id="searchform2" name="searchform2" onsubmit="ava_clear();return false;" style="display: inline"> <input type="submit" value="解除" style="margin:0px;padding:1px 0px 1px;"/> </form> <!-- <span id="example" onmousedown="show_example()"><u>凡例:<img src="yellow-s.gif" width="7" height="12">在庫あり<img src="sarmon_hole-s.gif" width="7" height="12"><img src="sarmon-s.gif" width="7" height="12">3日以内<img src="orange_hole-s.gif" width="7" height="12"><img src="orange-s.gif" width="7" height="12">7日<img src="lightblue_hole-s.gif" width="7" height="12"><img src="lightblue-s.gif" width="7" height="12">品切又は絶版</u></span> --> <a href="javascript:void(0)" onclick="show_example()"><u>凡例<img src="yellow-s.gif" width="7" height="12">在庫あり<img src="sarmon_hole-s.gif" width="7" height="12"><img src="sarmon-s.gif" width="7" height="12">3日以内<img src="orange_hole-s.gif" width="7" height="12"><img src="orange-s.gif" width="7" height="12">7日<img src="lightblue_hole-s.gif" width="7" height="12"><img src="lightblue-s.gif" width="7" height="12">品切絶版</u></a> <br> <span id="svform" name="svform"> <form id="svform1" name="svform1" action="" style="display: inline"> <span class="hpb-subh01-cell1_3">表示させる店の種類を選ぶ</span> <select id="selectkind" onChange="change_selectform()"> <option selected>全てのお店 <option>配達してくれるお店 <option>ネット注文可能店 <option>「Honya Club」受け取り店 <option>「e-hon」受け取り店 <option>東京都書店商業組合加盟店 <option>書店商業組合加盟店 <option>書店商業組合青年部加盟店 <option>店内在庫のわかるお店(書籍) <option>店内在庫のわかるお店(雑誌) </select> <!--<input id="svbtn1" type="button" onclick="toggle_streetview()" value="ストリートビュー" style="margin:0px;padding:1px 0px 1px;"/>--> </form> </span> <form id="show_search_btn" name="show_search_btn" onsubmit="show_search();return false;" style="display: inline"> <input type="submit" value="検索結果表示" style="margin:0px;padding:1px 0px 1px;"/> </form> <!-- <form id="svform1" runat="server" style="display: inline"> <input id="svbtn1" type="button" value="ストリートビューを見る/解除する"/> </form> --> </td> <td rowspan="4" valign="top"> <!-- <td width="424" rowspan="4" valign="top"> --> <!-- <img src="img/wanted.gif"><br> --> <div style="width:442px;"> <script type="text/javascript" src="ad2.php"></script> </div> <!-- <img src="img/wanted.gif"><br> <img src="img/wanted.gif"><br> --> </td> </tr> <tr height="448"> <td valign="top" height="448"> <div style="position:relative;top:0px;left:0px;"> <div id="map" style="width:640px;height:448px;position:relative;top:0px;left:0px;"></div> <!-- ここからが東京都書店商業組合青年部のロゴです。このソースファイルを利用する場合、必ず表示して下さい。--> <div style="width:80px;height:25px;position:absolute;top:413px;left:80px;z-index:999;"> <a href="http://www.tokyo-shoten.or.jp/" target="_blank"> <img src="seinenbuicon.gif" style="border-style:none;" width="80px" height="25px"> </a> </div> <!-- ここまでが東京都書店商業組合青年部のロゴです。このソースファイルを利用する場合、必ず表示して下さい。--> </td> </tr> <tr height="28"><td valign="top" class="hpb-subh01-cell1" height="28"> <div id="status_area" style="font-size:120%;width:640px;height:14px;"></div> <div style="font-size:100%;font-weight:normal;width:640px;height:14px;"> この地図に載っていない本やさんや実際にない本やさんがあったら<a href="mailto:mail@tokyo-shoten.or.jp">こちら</a>まで教えて下さい。速やかに登録、削除させて頂きます。 </div> </div> </td> </tr> <tr height="2048"> <td colspan="2" valign="top"> <table border="0" width="100%"> <tr> <td width="133" valign="top"> <table border="1"> <TBODY> <tr> <td width="110px" align="center" style="text-align:center;font-size:100%;"><FONT face="HGP創英角ポップ体" color="#ff0000">不定期連載開始♪<br></font><FONT face="HGP創英角ポップ体" color="green">みこ</font><FONT face="HGP創英角ポップ体" color="#0000ff">さんの作品です</FONT> </td> <td align="center" style="text-align:center;font-size:100%;"> <align="center"><A href="honyanohonyasan/001/" target="_honyasan">第1話</A><br> <align="center"><A href="honyanohonyasan/018/" target="_honyasan">第18話</A> </td> </tr> <tr> <td width="133" height="334" colspan="2"> <A href="honyanohonyasan/014/" target="_honyasan"> <IMG src="honyanohonyasan/titleimage.jpg" border="0"> </a></td> </tr> </TBODY> </table> </td> <td width="747" valign="top"> <div style="width=747px;"> <script type="text/javascript" src="ad2_under_denshoneko.php"></script> </div> </td> </tr> </table> </td> </tr> <tr></tr> </TBODY> </table> </body> </html>