//グローバル変数 if(!window.NIFTY){ NIFTY = {}; } if(!NIFTY.niftop){ NIFTY.niftop = {}; } //OS Check var checkOsType=function(){ this.Win=(navigator.appVersion.indexOf("Win")!==-1); this.Mac=(navigator.appVersion.indexOf("Mac")!==-1); this.Unix=(navigator.appVersion.indexOf("X11")!==-1); } var checkOsTypeW=function(){ var os, ua = navigator.userAgent; this.WinX=ua.match(/Win(dows )?(NT 5\.1|XP)/); this.WinV=ua.match(/Win(dows )?NT 6\.0/); this.Win7=ua.match(/Win(dows )?NT 6\.1/); } //Cookieの保存 var saveCookie=function(key, value, limitDays) { var cookieLife = arguments.length > 2? limitDays: "200"; // limitDaysがパラメータにない場合は、デフォルト値 var tmpDate = new Date(); tmpDate.setTime(tmpDate.getTime() + 1000 * 60 * 60 * 24 * (cookieLife)); var exp = tmpDate.toGMTString(); document.cookie = key + "=" + escape(value) + "; expires=" + exp + "; path=/;"; } //Cookieの保存(セッション) var saveSessionCookie=function(key, value) { document.cookie = key + "=" + escape(value) + "; path=/;"; } //Cookieの取得 var loadCookie=function(key, update) { var tem = document.cookie; if (!tem || tem.indexOf(key) < 0) { return ""; } var value; var temAry = tem.split(";"); for (var i = 0,l = temAry.length; i < l; i++) { if (-1 < temAry[i].indexOf(key + "=")) { value = temAry[i].substring((temAry[i].indexOf("=") + 1), temAry[i].length); if(arguments.length < 2 || update) { saveCookie(key, value); } return value; } } return ""; } //Cookieの削除 var deleteCookie=function(key) { var tmpDate = new Date(); tmpDate.setTime(tmpDate.getTime() - (1000 * 60 * 60 * 24 * 1)); var exp = tmpDate.toGMTString(); document.cookie = key + "=; " + "expires=" + exp + "; path=/;"; } //ユーザ情報の保存 var saveData=function() { var len = arguments.length; if(len !== 0 && (len % 2) === 0){ var b = $("body"); var para=""; for(var i=0; i < len; i+=2){ // 保存するデータの数ループ var key = arguments[i]; // ログイン中の場合はCGIでサーバに保存する // 未ログインの場合でもオリジナルDockの情報はCGIからCookieに保存する if(b.data("udata") && (b.data("udata").ret === "1" || key.match(/^dbt[1-5]$/))){ //サーバ(オリジナルDockの場合はCookie)にユーザ情報を保存するためのパラメータ作成 para += key + "=" + arguments[i+1]; if(len - 2 !== i){ para+="&"; } } // 未ログインの場合、オリジナルDock以外はCookieに保存する else{ //Cookieにユーザ情報を保存 saveCookie(key,arguments[i+1]); } } // パラメータがあればCGIからユーザ情報を保存 if(para){ //ユーザ情報設定CGI呼び出し callUserDataCGI(para); } } }; //ユーザ情報の返却 var loadData=function(key, update) { var value = ""; var b = $("body"); if(b.data("udata") && (b.data("udata").ret==="1" || key.match(/^dbt[1-5]$/))){ //bodyから値を取得 value = eval('b.data("udata").data.' + key); if(typeof value === "undefined"){ value = ""; } } else{ //Cookieから値を取得 value = loadCookie(key,update); } return value; }; //テストIDとユーザグループを設定 var setGrp = function(){ var tsEnv=new tsEnvDef(); var grptag=tsEnv.grptg; var grpmax=tsEnv.grp; var ctime=tsEnv.tm; var userGroup=loadCookie("ugid",false); var groupTag=loadCookie("grptg",false); //通常デザインの判定は行わない // var dsn = getDesignCooke(); // var dsn = loadCookie("dsn"); // if(!dsn || dsn==="a000"){ // if(!dsn || dsn==="0"){ if(groupTag !== grptag || !userGroup){ userGroup = String(Math.floor((Math.random() * grpmax)) + 1); if(userGroup.length === 1){ userGroup = "0" + userGroup; } saveCookie("ugid",userGroup,ctime); saveCookie("grptg",grptag,ctime); } // } } //ユーザグループとパターンをマッチングして返却 //マッチしない場合はdefaultを返却 var getTestPatern = function(){ var tsEnv=new tsEnvDef(); var patern=tsEnv.ptrn; var testPatern = "default"; //通常デザインでdefaultを返却する処理を削除 //// var dsn = getDesignCooke(); // var dsn = loadCookie("dsn"); //// if(dsn && dsn!=="a000"){ // if(dsn && dsn!=="0"){ // return "default"; // } if(patern.pt === "none" || !patern.pt[0].name){ return "default"; } //取得したCookie値を返却する var beta=loadCookie("beta",false); if(beta !== ""){ var ret = "default"; if(beta !== "0"){ ret = beta; } return ret; } var userGroup=loadCookie("ugid",false); if(!userGroup){ return "default"; } for(var i=0;i'+NIFTY.niftop.srchType[NIFTY.niftop.srchType.index[i]].label+'\n'; }else{ str+='
  • '+NIFTY.niftop.srchType[NIFTY.niftop.srchType.index[i]].label+'
  • \n'; } } $('#searchType').html(str); str=""; var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if (sugC === "0"){ str+=''; }else{ str+=''; } $('#searchText').html(str); NIFTY.niftop.searchType = type; rebindSuggestEvent(); } var setSearch=function(type){ var bType=new checkBrowserType(); var osType=new checkOsType(); if(osType.Mac&&bType.IE){ return; } if(!type){ type="web"; } if($('#srchTxt').get(0)){ NIFTY.niftop.srchKeyword.normal=document.forms.srchForm.srchTxt.value; } writeHTML(type); if($('#srchTxt').get(0)){ $('#srchTxt').val(""); } $('#srchTxt').val(NIFTY.niftop.srchKeyword.normal); NIFTY.niftop.srchKeyword.normal = ""; if(0 <= location.href.indexOf("#")){ return; } if(NIFTY.niftop.focusFlg){ if(!bType.Safari){ setTimeout('searchFocusExe("' + type + '")', 1); } else{ searchFocusExe(type); } } else if($("#fancybox-wrap").is(':hidden')){ // Fancybox使用中はフォーカスしない $('#srchTxt').focus(); NIFTY.niftop.focusFlg = true; } } /* 使ってなさそう */ var searchBtnAllover=function(obj , mode){ if(! navigator.userAgent.match(/MSIE/)){return;} if(mode==="add"){ obj .className += 'Hover'; } else if(mode==="del"){ tmpclassname = obj .className.split('Hover'); obj .className = tmpclassname[0]; } } // カウントリンク関数 var seachCL=function(ftFlg){ //CL変数 var srchCL = "http://clink.nifty.com/r/www/"; if(ftFlg!==1){ srchCL+="top1"; } else{// フッタ検索 srchCL+="top_ft_srch"; } var tp= getTestPatern(); if(tp !== "" && tp !== "default"){ srchCL = srchCL + "_" + tp; } var ug= loadCookie("ugid",false); if(ug !== ""){ srchCL = srchCL + "_u" + ug; } srchCL += "/?"; return ""; // return srchCL; } //検索実行時に呼ばれる関数 var searchExe=function(ftFlg){ //検索実行時にサジェストのクリア sgClear(); // カウントリンク取得 var sCL = seachCL(ftFlg); //フォームのID var srchId = "#srchTxt"; // フッタ検索 // if(ftFlg===1){ // searchExeBtm(ftFlg); // return; // } var urlStr=NIFTY.niftop.srchType[NIFTY.niftop.searchType].url+"?"; for(var j in NIFTY.niftop.srchType[NIFTY.niftop.searchType].hiddenVal){ if(j!=="cflg"){ if(j === "ss" && NIFTY.niftop.sgSS.length !== 0){ urlStr+=j + "=" + NIFTY.niftop.sgSS + "&"; } else if(j === "pos" && NIFTY.niftop.srchType[NIFTY.niftop.searchType].hiddenVal[j] === ""){ } else{ urlStr+=j + "=" + NIFTY.niftop.srchType[NIFTY.niftop.searchType].hiddenVal[j] + "&"; } } else{ urlStr+=j + "=" + encodeURI(NIFTY.niftop.srchType[NIFTY.niftop.searchType].hiddenVal[j]) + "&"; } } var chkWord = $(srchId).val(); chkWord=encodeURIComponent(chkWord); //入力ワードのみをエンコード urlStr+="Text="+chkWord; if(NIFTY.niftop.searchType === "web" && NIFTY.niftop.sgOtype.length !== 0){ urlStr += "&otype=" + NIFTY.niftop.sgOtype; } location.href = sCL + urlStr; return false; } //検索タブ変更時に呼ばれる関数 var searchFocusExe=function(type){ if($('#srchTxt').val().length === 0){ $('#srchTxt').focus(); } else{ searchExe(); } } //検索タブ押下時に呼ばれる変数 var searchExecute=function(type){ var srchClnkUrl=seachCL() + NIFTY.niftop.srchType[type].alturl;// カウントリンクとalturlを取得 if(type === "web" && $('#srchTxt').val().length===0){ $("#srchTxt").val(""); location.href=srchClnkUrl; return false; }else{ searchExe(); } } /* 使ってなさそう */ var getValueArray=function(value){ var bType=new checkBrowserType(); if(!bType.Safari){ return value.split(/[  ]/); } else{ value = value.replace(/ /g, " "); return value.split(/[ ]/); } } /*************************************************************************** 下部検索窓 ***************************************************************************/ NIFTY.niftop.srchKeywordBtm=new Object; NIFTY.niftop.srchKeywordBtm.normal=""; NIFTY.niftop.focusFlgBtm = false; NIFTY.niftop.srchOthrFlgBtm = ""; //検索タブ(下部検索窓) NIFTY.niftop.srchTypeBtm = { index:["web","image","movie"], "web":{"url":NIFTY.niftop.searchURL01,"hiddenVal":{"ss":"nifty_top_footer","select2":"select","cflg":"検索","pos":""},"label":"ウェブ","alturl":NIFTY.niftop.atsearchURL,"ttl":"ウェブを検索します", "className":""}, "image":{"url":NIFTY.niftop.searchURL01,"hiddenVal":{"ss":"nifty_top_footer","select47":"select","cflg":"検索"},"label":"画像","alturl":NIFTY.niftop.atsearchURL,"ttl":"画像を検索します", "className":""}, "movie":{"url":NIFTY.niftop.searchURL01,"hiddenVal":{"ss":"nifty_top_footer","select73":"select","cflg":"検索"},"label":"動画","alturl":NIFTY.niftop.atsearchURL,"ttl":"動画を検索します", "className":""} }; NIFTY.niftop.searchTypeBtm = "web"; /* * 検索タブのHTMLを作成し描写する * 下部検索窓の対応をこの中で行うか別関数にするか */ var writeHTMLBtm=function(type){ var str=""; for(var i=0,l=NIFTY.niftop.srchTypeBtm.index.length;i'+NIFTY.niftop.srchTypeBtm[NIFTY.niftop.srchTypeBtm.index[i]].label+'\n'; }else{ str+='
  • '+NIFTY.niftop.srchTypeBtm[NIFTY.niftop.srchTypeBtm.index[i]].label+'
  • \n'; } } $('#searchTypeBtm').html(str); str=""; var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if (sugC === "0"){ str+=''; }else{ str+=''; } $('#searchTextBtm').html(str); NIFTY.niftop.searchTypeBtm = type; rebindSuggestEvent(); } var setSearchBtm=function(type){ var bType=new checkBrowserType(); var osType=new checkOsType(); if(osType.Mac&&bType.IE){ return; } if(!type){ type="web"; } if($('#srchTxtBtm').get(0)){ NIFTY.niftop.srchKeywordBtm.normal=document.forms.srchFormBtm.srchTxtBtm.value; } writeHTMLBtm(type); if($('#srchTxtBtm').get(0)){ $('#srchTxtBtm').val(""); } $('#srchTxtBtm').val(NIFTY.niftop.srchKeywordBtm.normal); NIFTY.niftop.srchKeywordBtm.normal = ""; if(0 <= location.href.indexOf("#")){ return; } if(NIFTY.niftop.focusFlgBtm){ if(!bType.Safari){ setTimeout('searchFocusExeBtm("' + type + '")', 1); } else{ searchFocusExeBtm(type); } }else{ NIFTY.niftop.focusFlgBtm = true; } } //検索実行時に呼ばれる関数 var searchExeBtm=function(ftFlg){ //検索実行時にサジェストのクリア sgClearBtm(); // カウントリンク取得 var sCL = seachCL(ftFlg); //フォームのID var srchId = "#srchTxtBtm"; var urlStr=NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].url+"?"; for(var j in NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal){ if(j!=="cflg"){ if(j === "ss"){ if(NIFTY.niftop.sgSSBtm.length !== 0){ urlStr+=j + "=" + NIFTY.niftop.sgSSBtm + "&"; } else { urlStr+=j + "=" + NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal[j] + "&"; } } else if(j === "pos" && NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal[j] === ""){ } else { urlStr+=j + "=" + NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal[j] + "&"; } } else { urlStr+=j + "=" + encodeURI(NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal[j]) + "&"; } } var chkWord = $(srchId).val(); chkWord=encodeURIComponent(chkWord); //入力ワードのみをエンコード urlStr+="Text="+chkWord; if(NIFTY.niftop.searchTypeBtm === "web" && NIFTY.niftop.sgOtypeBtm.length !== 0){ urlStr += "&otype=" + NIFTY.niftop.sgOtypeBtm; } location.href = sCL + urlStr; return false; } //検索タブ変更時に呼ばれる関数 var searchFocusExeBtm=function(type){ if($('#srchTxtBtm').val().length === 0){ $('#srchTxtBtm').focus(); } else { searchExeBtm(); } } //検索タブ押下時に呼ばれる変数 var searchExecuteBtm=function(type){ var srchClnkUrl=seachCL() + NIFTY.niftop.srchTypeBtm[type].alturl;// カウントリンクとalturlを取得 if(type === "web" && $('#srchTxtBtm').val().length===0){ $("#srchTxtBtm").val(""); location.href=srchClnkUrl; return false; } else { searchExeBtm(); } } /**************************************************************************** 上部検索窓・下部検索窓共通 ****************************************************************************/ NIFTY.niftop.richSuggestData = []; NIFTY.niftop.normalSg = { Status:0, //通常 初期(通信前)0,成功1,失敗-1→エラー|タイムアウト|制限 JSON:undefined, //通常サジェストのJSON StatusBtm:0, //通常 初期(通信前)0,成功1,失敗-1→エラー|タイムアウト|制限 JSONBtm:undefined //通常サジェストのJSON } // リッチサジェスト t.iuchi --> NIFTY.niftop.richSg = { Status:0, //通常 初期(通信前)0,成功1,失敗-1→エラー|タイムアウト|制限 JSON:undefined //通常サジェストのJSON // StatusBtm:0, //通常 初期(通信前)0,成功1,失敗-1→エラー|タイムアウト|制限 // JSONBtm:undefined //通常サジェストのJSON }; // <-- リッチサジェスト t.iuchi $('body').live("click", function(e){ sgCloseList(e); sgCloseListBtm(e); }); // サジェストの初期化処理(初回表示時と上部タブの切り替え時に呼ばれる) var suggestInit = function(){ //back-forword cache対策 window.onunload = function(){}; var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookie("srchSg"); if(sugC !== "0"){ rebindSuggestEvent(); // 初期化時にサジェストAPIを呼ぶ // - 初回表示時のタイムラグを減らすため // - 上部タブを切り替えて、ウェブ以外に飛んだ時に // 履歴サジェストを表示しなくするため // (sgCallAPIを呼ぶとウェブ検索以外の場合は履歴を取らずに // サジェスト表示部分の生成が呼ばれるため、履歴の表示がクリアされる) sgCallAPI(undefined, $("#srchTxt").val(), true, false); // sgCallAPIBtm(undefined, $("#srchTxtBtm").val(), true, false); } NIFTY.niftop.sgOtype=''; NIFTY.niftop.sgSS=''; // NIFTY.niftop.sgOtypeBtm=''; // NIFTY.niftop.sgSSBtm=''; $("#srchTxt").bind("keypress", function(e){ if(e.keyCode == 13){ if($("#srchAssistLists").css("display") == 'none'){ return; } // リッチサジェスト押下時のダイレクトリンクの挙動規定 if($('#srchAssistDisp .list li a.on').parent().hasClass('RichSuggest')){ location.href = $('#srchAssistDisp .list li a.on').attr('href'); return false; }; } }); $("#srchBtn").bind("click", function(e){ if($("#srchAssistLists").css("display") == 'none'){ return; } // リッチサジェスト押下時のダイレクトリンクの挙動規定 if($('#srchAssistDisp .list li a.on').parent().hasClass('RichSuggest')){ location.href = $('#srchAssistDisp .list li a.on').attr('href'); return false; }; }); } var rebindSuggestEvent = function(){ $("#srchTxt").unbind(); $("#srchTxt").keydown(function(e){sgKeyChkDown(e.keyCode)}); $("#srchTxt").keyup(function(e){sgKeyChk(e.keyCode,$("#srchTxt").val())}); $("#srchTxt").keydown(function(e){sgKeyUpDown(e.keyCode)}); $("#srchTxt").bind("keypress", function(e){ if(e.keyCode == 13){ if($("#srchAssistLists").css("display") == 'none'){ return; } // リッチサジェスト押下時のダイレクトリンクの挙動規定 if($('#srchAssistDisp .list li a.on').parent().hasClass('RichSuggest')){ location.href = $('#srchAssistDisp .list li a.on').attr('href'); return false; }; } }); // $("#srchTxtBtm").unbind(); // $("#srchTxtBtm").keydown(function(e){sgKeyChkDownBtm(e.keyCode)}); // $("#srchTxtBtm").keyup(function(e){sgKeyChkBtm(e.keyCode,$("#srchTxtBtm").val())}); // $("#srchTxtBtm").keydown(function(e){sgKeyUpDownBtm(e.keyCode)}); } //全角・半角認識して文字数カウント var countLength = function(str) { var r = 0; for (var i = 0; i < str.length; i++) { var c = str.charCodeAt(i); // Shift_JIS: 0x0 - 0x80, 0xa0, 0xa1 - 0xdf, 0xfd - 0xff // Unicode : 0x0 - 0x80, 0xf8f0, 0xff61 - 0xff9f, 0xf8f1 - 0xf8f3 if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { r += 1; } else { r += 2; } } return r; } var escapeHTML = function(val) { return $('
    ').text(val).html(); }; var unescapeHTML = function(val) { return $('
    ').html(val).text(); }; //jQueryのtrimはIE7で全角スペースを消してくれない var trimString = function(str) { //引数がstring以外だったらそのまま返す if(typeof(str) !== 'string'){ return str; } return str.replace(/^[\s ]+|[\s ]+$/g, ''); } var nsgCallAPI = function(str, n, callback) { if(typeof(callback) === 'undefined'){ callback = 'nifsas'; } if(typeof(n) === 'undefined'){ n = 10; } //APIを呼び出すタグを作成してヘッダに追加 var sc = document.createElement("script"); sc.setAttribute("type","text/javascript"); sc.charset = 'UTF-8'; sc.src = '//search.goo.ne.jp/sgt_search.jsp?CL=nifty_search&callback=sgtLoadJsonp&MT=' + encodeURIComponent(str) document.getElementsByTagName("head").item(0).appendChild(sc); //$("head").append(sc) } var richSuggest = function(json) { if(typeof(json) !== 'undefined'){ NIFTY.niftop.richSuggestData = json; } }; // リッチサジェスト t.iuchi --> var rsgCallAPI = function(str, maxRichSuggest) { // memo: 固定のJSONPではなくAPI化したら、ここでAPIを呼び出す // リッチサジェストのJSONからキーワードにヒットするものを抜き出す var getRichSuggestData = function(keyword, richSuggestJson) { var richSuggestData = []; // 入力キーワードをスペースで区切った各ワードで表示判定を行う var keywordList = keyword.split(/[\s ]+/); // 最大表示個数を超えたら終了 for (var i = 0, l = keywordList.length; (i < l) && (richSuggestData.length < maxRichSuggest); i++) { // キーワードが空文字でない場合、ヒットチェックを行う if (keywordList[i].length !== 0) { for (var j = 0, m = richSuggestJson.length; (j < m) && (richSuggestData.length < maxRichSuggest); j++) { // 既に表示対象ではなくリッチサジェストがヒットしていれば、表示対象にする if (!isContainRichSuggest(richSuggestData, richSuggestJson[j]) && isHitRichSuggest(keywordList[i], richSuggestJson[j].tags)) { richSuggestData.push(richSuggestJson[j]); } } } } return richSuggestData; }; // キーワードがリッチサジェストにヒットしているかをチェックする var isHitRichSuggest = function(keyword, richSuggestTags) { for (var i = 0, l = richSuggestTags.length; i < l; i++) { if (richSuggestTags[i].toLowerCase().indexOf(keyword.toLowerCase()) === 0) { return true; } } return false; }; // リッチサジェストが既に表示対象になっているかチェックする var isContainRichSuggest = function(array, obj) { for (var i = 0, l = array.length; i < l; i++) { if (obj === array[i]) { return true; } } return false; }; var richSuggestResult = getRichSuggestData(trimString(str), NIFTY.niftop.richSuggestData); nifrsas(richSuggestResult); }; // <-- リッチサジェスト t.iuchi var sgOnOff = function(value){ NIFTY.niftop.atsearch.atsrchStyle_setCookie("srchSg",value); if(NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg") === "0"){ //「ON→OFF」 //検索履歴追加対応の為、上部検索窓のautocompleteを削除する処理をコメントアウト //$("#srchTxt").removeAttr("autocomplete"); // $("#srchTxtBtm").removeAttr("autocomplete"); var html = '

    キーワード入力補助がOFFになっています。

    ' + sgDispMainAssist(); $("#srchAssistSuggest").html(html); // var html = '

    キーワード入力補助がOFFになっています。

    ' + sgDispMainAssistBtm(); // $("#srchAssistBtmSuggest").html(html); $("#srchTxt").unbind(); // サジェストOFF時にキー操作でメッセージが自動的に閉じなくなるため // keyupイベントだけは残す $("#srchTxt").keyup(function(e){sgKeyChk(e.keyCode,this.value)}); $("#srchAssistNone, #srchAssistDisp").hide(); sgDispSubAssistChenge('open'); // $("#srchTxtBtm").unbind(); // サジェストOFF時にキー操作でメッセージが自動的に閉じなくなるため // keyupイベントだけは残す // $("#srchTxtBtm").keyup(function(e){sgKeyChkBtm(e.keyCode,this.value)}); // $("#srchAssistBtmNone, #srchAssistBtmDisp").hide(); // sgDispSubAssistChengeBtm('open'); } else { //「OFF→ON」 $("#srchTxt").attr("autocomplete", "off"); // $("#srchTxtBtm").attr("autocomplete", "off"); rebindSuggestEvent(); sgCallAPI(undefined, $("#srchTxt").val(), true, false); // sgCallAPIBtm(undefined, $("#srchTxtBtm").val(), true, false); } // サジェストのON、OFF切替処理で検索窓に登録した // 検索履歴のイベント処理が削除されている為 // このタイミングで再度登録を行う rebindHistoryEvent(); } /** * リッチサジェストimpcount用 入力したことのあるキーワード */ NIFTY.niftop.sgInputKeywordList = []; /** * リッチサジェスト表出結果によるimpcount出力 * @param {Object} json 表出するリッチサジェストのjson * @param {String} sgPlace リッチサジェストが表示される位置 * h : 上部検索窓 * f : 下部検索窓 * @param {String} keyword */ var rsgtImpcount = function(json, sgPlace, keyword) { // それぞれのリッチサジェストについてimpcount呼び出し if (isImpcountTarget(keyword) && document.images) { //リッチサジェストが1件もなかった場合は //noneでimpcountを出力する if (json.length === 0) { json.push({"extParam": {"impcountId": "none"}}); } for (var i = 0, l = json.length; i < l; i++) { var rsgtId = json[i].extParam.impcountId; if(typeof(rsgtId) !== "undefined"){ // リッチサジェスト表出を集計するためにimpcountにアクセスする var tmp = "https://search.nifty.com/webapp/impcount?rsgttop"; tmp += "_" + sgPlace; tmp += "_" + rsgtId; tmp += "?" + getSessionId(); tmp += "_" + encodeURIComponent(keyword); (new Image()).src = tmp; } } //入力したことのあるキーワードリストに追加 NIFTY.niftop.sgInputKeywordList.push(keywordNormalize(keyword)); } }; var keywordNormalize = function(keyword){ return trimString(keyword).split(/[\s ]+/).sort().join(" "); } /** * 入力されたキーワードがリッチサジェストのimpcount出力条件に当てはまるか判定する * @param {String} keyword 入力されたキーワード * @returns {boolean} true:条件に当てはまる false:条件に当てはまらない */ var isImpcountTarget = function(keyword) { var result = true; // 20%のユーザでimpcountを出力 //impcountを呼び出すCookieの値 var targetUgid = ["01", "02", "03", "04"]; //正規化したキーワード //前後の全/半空白を削除→全/半空白で分割→語順をソート→スペースで連結 var normalizeKeyword = keywordNormalize(keyword); //ugidが表示対象の値でない時はimpcountを呼び出さない if (jQuery.inArray(loadCookie("ugid"), targetUgid) === -1) { result = false; } //一度呼び出したキーワードと同じキーワードの場合、impcountを呼び出さない if (jQuery.inArray(normalizeKeyword, NIFTY.niftop.sgInputKeywordList) !== -1) { result = false; } //キーワードが全角/半角スペースのみの場合、impcountを呼び出さない if (normalizeKeyword === "") { result = false; } //キーワードが半角換算で256文字以上の場合、impcountを呼び出さない //正規化してないキーワードで判定 if (256 <= countLength(keyword)) { result = false; } return result; }; /** * atsearchのsidに相当する値を生成する * @return {String} Unixtime(ミリ秒) + ランダム文字列(数字のみ6ケタ) + ホスト固定の文字列(数字のみ) */ var getSessionId = function(){ var sid = "" + new Date().getTime() + Math.random().toString(10).slice(-6) + parseInt("niftop", 36); getSessionId = function(){return sid;}; return getSessionId(); }; /**************************************************************************** 上部検索窓 ※ 修正の際は、下部検索窓に対する修正を忘れないようにすること ****************************************************************************/ NIFTY.niftop.sgCount; //サジェスト結果リストを選択したカウント NIFTY.niftop.sgTimer; //サジェストAPIを呼び出す間隔 NIFTY.niftop.sgAPIStr; //検索文字列 NIFTY.niftop.sgDownKey=''; //onkeydownのキーコード NIFTY.niftop.sgOtype=''; //サジェスト使用時のotype NIFTY.niftop.sgSS=''; //サジェスト使用時のss NIFTY.niftop.writeSgTimer; //APIが返ってきているかの確認のためsetIntervalする NIFTY.niftop.sgMouseOverNum; //マウスオーバーで色変更のための順序番号作成用 //リストが開いている場合のみリストを閉じる var sgCloseList=function(e){ if (!!$("#srchAssistDisp").get(0)) { var disp = $("#srchAssistDisp").css("display"); if (disp === 'block') { sgDispList(); } } } // 日本語入力中かどうかのチェック var sgKeyChkDown = function(k){ NIFTY.niftop.sgDownKey = k; /* * Firefoxで検索窓に日本語入力をした時、サジェストが表示されない問題への対処 * Firefoxのバージョンは19.0.2 * * Firefoxでは、日本語入力中にキーイベントが発生しない。(keyup,keydown) * しかし、最初の一回のみ、keydownイベントが発生し、keycode=0がとれるため、 * その場合は強制的にkeyupしたときと同じ処理を行い、setIntervalによる検索窓のチェックを * させるようにした。これにより、検索窓の入力に合わせてサジェストが表示されるようになる。 */ if (NIFTY.niftop.atsearch.browserType.Firefox === true && NIFTY.niftop.sgDownKey === 0) { sgKeyChk(k, $("#srchTxt").val()); } } // 文字入力時に実行 var sgKeyChk = function(k, str) { //「サジェストOff」の場合は終了 var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if(sugC === "0"){ sgCloseList(); return; } //「Enterキー」、「日本語変換中」の場合は終了 if (k === 13){ if( NIFTY.niftop.sgDownKey !== 229){ return; } } if(k === 38 || k === 40){ return; } //タイマーがセットされていないかつ、上下キー以外が押下された場合 if (!NIFTY.niftop.sgTimer) { //タイマーをセットし、APIを呼び出す NIFTY.niftop.sgTimer = setInterval(function(k, str) {sgCallAPI(k, str, false, true)}, 500); // sgCallAPI(k, str, false, true); } else { //タイマーをリセットすることで、連続したキー入力中はAPIを呼び出さないように制限をかける clearInterval(NIFTY.niftop.sgTimer); NIFTY.niftop.sgTimer = setInterval(function(k, str) {sgCallAPI(k, str, false, true)}, 500); } } // 上下キー入力時に実行 var sgKeyUpDown = function(k) { if(k !== 38 && k !== 40){ return; } //検索結果ありでかつ、上下キーが押下された場合 if ($("#srchAssistDisp .list li").size() !== 0) { sgSelectList(k); NIFTY.niftop.srchType["web"].hiddenVal.pos = NIFTY.niftop.sgCount; //タイマーストップ clearInterval(NIFTY.niftop.sgTimer); //ハンドラをクリア NIFTY.niftop.sgTimer = ''; NIFTY.niftop.sgSS = "nifty_top_tp_sg"; // ここではotypeの設定が不要なのでコメントアウト。 // テスト用グループに付与するotypeはinitSuggestで設定され、 // 通常のotype(web_nifty_1)はgosearch.cgiで設定される。 // NIFTY.niftop.sgOtype='web_nifty_1'; } else { sgCallAPI(k, $("#srchTxt").val(), false, true, function(){sgKeyUpDown(k);}); } } // Yahoo!APIを呼び出してサジェスト実行する var sgCallAPI = function(k, str, force, show, afterprocess) { //「サジェストOff」の場合は終了 if(NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg") === "0"){ return; } //検索済みである場合は終了 if (force !== true && NIFTY.niftop.sgAPIStr === $("#srchTxt").val()){ return; } //検索文字列を取得する str = str || $("#srchTxt").val(); //検索結果リストのカウントを初期化 NIFTY.niftop.sgCount = -1; //検索文字列をグローバル変数に格納 NIFTY.niftop.sgAPIStr = str; //通常サジェストの取得 NIFTY.niftop.normalSg.Status = 0; NIFTY.niftop.normalSg.JSON = undefined; //キーワードが空かどうか エラー未発生かチェック if (str) { nsgCallAPI(str, 10, 'nifsas'); } else { NIFTY.niftop.normalSg.Status = -1; } // リッチサジェスト t.iuchi --> // リッチサジェストの取得 NIFTY.niftop.richSg.Status = 0; NIFTY.niftop.richSg.JSON = undefined; if (str) { rsgCallAPI(str, 4); } else { NIFTY.niftop.richSg.Status = -1; } // <-- リッチサジェスト t.iuchi if (!NIFTY.niftop.writeSgTimer) { //両方のサジェスト処理の完了をタイマーでチェック NIFTY.niftop.writeSgTimer = setInterval(function() {writeSrchAssistInnerHTML(show, afterprocess)}, 50); writeSrchAssistInnerHTML(show, afterprocess); } return; } // Yahoo!APIのコールバック関数(上部検索窓) var nifsas = function(json) { NIFTY.niftop.normalSg.JSON = json; //成功 NIFTY.niftop.normalSg.Status = 1; } // gooSuggestAPIのコールバック関数 var sgtLoadJsonp = function(json) { NIFTY.niftop.normalSg.JSON = convertJsonData(json); //成功 NIFTY.niftop.normalSg.Status = 1; } // Yahoo!サジェストAPIとgooサジェストAPIの変換 var convertJsonData = function(json) { // nohit 時のデータ作成 if (json === undefined || json === null || json.items === undefined || json.items.length === 0) { return ["nohit",[],[],[]]; } var result = []; result.push(json.MT); var items = []; for (var i = 0; i < json.items.length; i++) { items.push(json.items[i].dispWord); } result.push(items); result.push([]); result.push([]); return result; } // リッチサジェスト t.iuchi --> // memo: 固定のJSONを呼ぶので今の所この関数は無くても良いが、 // API化した時の事を考えてコールバック関数と同じ形で作っておく var nifrsas = function(json) { NIFTY.niftop.richSg.JSON = json; //成功 NIFTY.niftop.richSg.Status = 1; }; // <-- リッチサジェスト t.iuchi //サジェストの表示 var writeSrchAssistInnerHTML = function(show, afterprocess) { // リッチサジェスト t.iuchi --> if (NIFTY.niftop.normalSg.Status === 0 || NIFTY.niftop.richSg.Status === 0) { // <-- リッチサジェスト t.iuchi return; // サジェストの結果が返ってくるまで表示しない } clearInterval(NIFTY.niftop.writeSgTimer); NIFTY.niftop.writeSgTimer = ''; //検索結果が無い場合 // リッチサジェスト t.iuchi --> if ((typeof(NIFTY.niftop.normalSg.JSON) === "undefined" || NIFTY.niftop.normalSg.JSON[1].length === 0) && (typeof(NIFTY.niftop.richSg.JSON) === "undefined" || NIFTY.niftop.richSg.JSON.length === 0)) { // <-- リッチサジェスト t.iuchi var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if(sugC === "0"){ var msg = 'キーワード入力補助がOFFになっています。'; }else{ if($("#srchTxt").val().length === 0){ var msg = ''; } else { var msg = '入力したキーワードに一致する候補はありません。'; } } var html = '

    ' + msg + '

    ' + sgDispMainAssist(); $("#srchAssistSuggest").html(html); //msgが空白の場合に //サジェスト内のタブと検索結果のリストエリアを非表示にする if (msg == "") { $("#searchType").hide(); $("#srchAssistIn").hide(); } else { $("#searchType").show(); $("#srchAssistIn").show(); } //リッチサジェストのimpcount呼び出し //サジェストが有効なときのみ var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if(sugC !== "0"){ rsgtImpcount(NIFTY.niftop.richSg.JSON, "h", NIFTY.niftop.sgAPIStr); } $("#srchAssistNone, #srchAssistDisp").hide(); sgDispSubAssistChenge('open'); } else { var html = ''; var json = ''; NIFTY.niftop.sgMouseOverNum = 0; if ((typeof(NIFTY.niftop.normalSg.JSON) !== "undefined" && !!NIFTY.niftop.normalSg.JSON[1]) || (typeof(NIFTY.niftop.richSg.JSON) !== "undefined" && !!NIFTY.niftop.richSg.JSON)) { html += ''; } html = html + sgDispMainAssist(); $("#srchAssistSuggest").html(html); //サジェストのリストが押下された時のイベントをセットする //押下されたリストのキーワードを保存する $("#srchAssistLists").find("a").bind("click", function(e) { insertOrRotationAtsrchHist($(e.currentTarget).parent("li").attr("title")); setAtsrchHistToLocalStorage(); }); //リッチサジェストのimpcount呼び出し //サジェストが有効なときのみ var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if(sugC !== "0"){ rsgtImpcount(NIFTY.niftop.richSg.JSON, "h", NIFTY.niftop.sgAPIStr); } if (show) { $("#srchAssistDisp").show(); $("#searchType").show(); //サジェストの検索結果が無い場合にサジェスト内のタブを非表示にしている為、検索結果がある場合に表示状態に戻す $("#srchAssistLists").show(); sgDispSubAssistChenge('close'); } else { $("#srchAssistDisp").hide(); $("#srchAssistLists").hide(); sgDispSubAssistChenge('open'); } } if(typeof(afterprocess) === "function"){ afterprocess(); } } var makeSuggestHtml = function(json, className, ss) { var html = ''; var str = json[0]; var str_u = str.toUpperCase(); var str_l = str.toLowerCase(); var subs,subsStr,str_uStr,str_lStr,jStr,jsStr; for (var i=0; i < json[1].length; i++) { if (typeof(json[1][i]) === "undefined") { continue; } //リストを作成 subs = json[1][i].substring(str.length, json[1][i].length); subsStr = subs.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); str_uStr = str_u.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); str_lStr = str_l.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); jStr = json[1][i].replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); jsStr = json[1][i].replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/\\/g, "\\\\").replace(/'/g, "\\\'"); html += '
  • '; //検索URL var selectVal = ""; var url = ""; var cflg = ""; for(var j in NIFTY.niftop.srchType[NIFTY.niftop.searchType].hiddenVal){ if(j!=="cflg" && j!=="ss"){ selectVal = j; }else if(j==="cflg"){ cflg = encodeURI(NIFTY.niftop.srchType[NIFTY.niftop.searchType].hiddenVal[j]); } } url = seachCL() + "https://search.nifty.com/cgi-bin/gosearch.cgi?ss=" + ss + "&" + selectVal +"=select&cflg=" + cflg + "&Text=" + encodeURIComponent(json[1][i]) + "&pos=" + i; html += ''; if (json[1][i] === str_u + subs) { html += '' + str_uStr + ''; html += subsStr; } else if (json[1][i] == str_l + subs) { html += '' + str_lStr + ''; html += subsStr; } else { html += jStr; } html += '
  • '; } return html; } // リッチサジェスト t.iuchi --> var makeRichSuggestListItem = function(item) { var html = ''; var title = item.title; if(title.length > 23){ title = title.substring(0, 22) + "…"; } var description = item.description; if(description.length > 30){ description = description.substring(0, 29) + "…"; } html += '
  • '; html += '' + escapeHTML(title) + ''; // html += '' + escapeHTML(item.title) + '' + escapeHTML(title) + ''; html += ''; html += '' + escapeHTML(title) + ''; html += '' + escapeHTML(description) + ''; html += ''; html += ''; html += '
  • '; return html; }; var makeRichSuggestHtml = function(json) { var html = ''; for (var i = 0, l = json.length; i < l; i++) { html += makeRichSuggestListItem(json[i]); } return html; }; // <-- リッチサジェスト t.iuchi // リストの上下移動 上下キーとマウスオーバーで呼ばれる // マウスオーバーの場合はindexが渡される var sgSelectList = function(k, index) { var lis = $("#srchAssistDisp .list li"); if (k === 38) { if (NIFTY.niftop.sgCount <= -1){ NIFTY.niftop.sgCount = lis.length; } NIFTY.niftop.sgCount --; } else if (k === 40) { if (NIFTY.niftop.sgCount >= (lis.length - 1)){ NIFTY.niftop.sgCount = -2; } NIFTY.niftop.sgCount ++; } else if (typeof(index) !== "undefined") { NIFTY.niftop.sgCount = index; } else { return; } for (var i=0; i < lis.length; i++) { if (i === NIFTY.niftop.sgCount) { if (typeof(index) === "undefined") { // マウスオーバーの場合は検索窓のキーワードを変えない $("#srchTxt").val(lis[i].title); if($(lis[i]).hasClass("RichSuggest")){ $("#srchTxt").val(lis[i].title); } } lis.eq(i).children().addClass("on"); } else { lis.eq(i).children().removeClass("on"); } } if(NIFTY.niftop.sgCount === -1 ){ $("#srchTxt").val(NIFTY.niftop.sgAPIStr); } if (!!$("#srchAssistDisp").get(0)) { var disp = $("#srchAssistDisp").css("display"); if (disp === 'none') { sgDispList(); } } } // リストの表示(アシストボタン(▼)をクリックした場合と枠外をクリックした場合) var sgDispList = function() { var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); var html; //■サジェスト機能がOFFの場合 if (sugC === "0") { //サジェスト機能のONOFFボタンの作成 html = sgDispMainAssist(); $("#srchAssistSuggest").html(html); //ATSEARCH-1045の対応によりサジェスト内のタブと検索結果のリストエリアを非表示にする if ($("#srchAssistDisp").css("display") === 'none') { $("#searchType").css("display","none"); $("#srchAssistDisp").css("display","block"); sgDispSubAssistChenge('close'); } else { $("#srchAssistNone").css("display","none"); $("#srchAssistDisp").css("display","none"); sgDispSubAssistChenge('open'); } return; //■サジェストの結果が無い } else if ($("#srchAssistDisp .list li").size() === 0) { //■検索結果が無い場合(="srchAssistNone" タグが存在する) if (!!$("#srchAssistNone").get(0)) { var disp = $("#srchAssistNone").css("display"); if (disp === 'none') { $("#srchAssistNone").css("display","block"); $("#srchAssistDisp").css("display","block"); sgDispSubAssistChenge('close'); } else { $("#srchAssistNone").css("display","none"); $("#srchAssistDisp").css("display","none"); sgDispSubAssistChenge('open'); allLiClassClear(); } return; //■検索文字が入力されている場合は再度APIを呼び出す } else if ($("#srchTxt").val()) { if (NIFTY.niftop.atsearch.browserType.IE6) { //IE6でCallbackが呼ばれないので、setTimeoutで括って対処 setTimeout(function(){sgCallAPI(undefined, $("#srchTxt").val(), true, true)},30); } else { sgCallAPI(undefined, $("#srchTxt").val(), true, true); } return; //■サジェストが閉じている(assistDispが開いている) } else if (!!$("#srchAssistDisp").get(0)) { var disp = $("#srchAssistDisp").css("display"); if (disp === 'none') { $("#srchAssistNone").css("display","block"); $("#srchAssistDisp").css("display","block"); sgDispSubAssistChenge('close'); } else { $("#srchAssistNone").css("display","none"); $("#srchAssistDisp").css("display","none"); sgDispSubAssistChenge('open'); allLiClassClear(); } return; //■リストが閉じていて、入力が無い場合 } else {//入力が無い場合は履歴サジェストを表示するのでAPI完了時点の表示まで何もしない return; } //■検索結果のリストがある場合 } else if ($("#srchAssistDisp .list li").size() !== 0) { // リッチサジェスト対応 t.iuchi --> var disp = $("#srchAssistLists").css("display"); var url; if (disp === 'none') { $("#srchAssistLists").css("display","block"); $("#searchType").css("display","block"); //サジェストの検索結果が無い場合にサジェスト内のタブを非表示にしている為、検索結果がある場合に表示状態に戻す $("#srchAssistNone").css("display","block"); $("#srchAssistDisp").css("display","block"); sgDispSubAssistChenge('close'); } else { $("#srchAssistLists").css("display","none"); $("#srchAssistNone").css("display","none"); $("#srchAssistDisp").css("display","none"); sgDispSubAssistChenge('open'); allLiClassClear(); } // <-- リッチサジェスト対応 t.iuchi return; //■一致する候補が無い場合 } else if (!!$("#srchAssistNone").get(0)) { var disp = $("#srchAssistNone").css("display"); if (disp === 'none') { $("#srchAssistNone").css("display","block"); $("#srchAssistDisp").css("display","block"); sgDispSubAssistChenge('close'); } else { $("#srchAssistNone").css("display","none"); $("#srchAssistDisp").css("display","none"); sgDispSubAssistChenge('open'); allLiClassClear(); } return; } else { var disp = $("#srchAssistDisp").css("display"); if (disp === 'none') { $("#srchAssistNone").css("display","block"); $("#srchAssistDisp").css("display","block"); sgDispSubAssistChenge('close'); } else { $("#srchAssistNone").css("display","none"); $("#srchAssistDisp").css("display","none"); sgDispSubAssistChenge('open'); allLiClassClear(); } return; } } // アシストリストの表示 (キーワード入力補助 ON/OFF の部分) var sgDispMainAssist = function() { var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if (sugC !== "0") { html='

    キーワード入力補助

    '; }else{ html='

    キーワード入力補助

    '; } return html; } var sgDispSubAssistChenge = function(stat) { var html; if (stat === 'close') { html = 'キーワード補助を閉じる'; $("#srchAssistBtn").addClass("on"); } else { html = 'キーワード補助を開く'; $("#srchAssistBtn").removeClass("on"); } $("#srchAssistBtn").html(html); return; } // サジェスト結果リストにマウスオーバーした際に非選択状態に戻す function allLiClassClear() { NIFTY.niftop.sgCount = -1; $("#srchAssistDisp .list li a").removeClass("on"); } // サジェスト結果リストにマウスオーバーした際に選択状態にする var sgListOver = function(i) { sgSelectList(undefined, i); //タイマーストップ clearInterval(NIFTY.niftop.sgTimer); //ハンドラをクリア NIFTY.niftop.sgTimer = ''; } var sgListClick = function(str) { $("#srchTxt").val(str); sgClear(); } var sgClear = function(){ clearInterval(NIFTY.niftop.sgTimer); NIFTY.niftop.sgTimer = ''; NIFTY.niftop.sgAPIStr=""; }; /**************************************************************************** 下部検索窓 ****************************************************************************/ NIFTY.niftop.sgCountBtm; //サジェスト結果リストを選択したカウント NIFTY.niftop.sgTimerBtm; //サジェストAPIを呼び出す間隔 NIFTY.niftop.sgAPIStrBtm; //検索文字列 NIFTY.niftop.sgDownKeyBtm=''; //onkeydownのキーコード NIFTY.niftop.sgOtypeBtm=''; //サジェスト使用時のotype NIFTY.niftop.sgSSBtm=''; //サジェスト使用時のss NIFTY.niftop.writeSgTimerBtm; //APIが返ってきているかの確認のためsetIntervalする NIFTY.niftop.sgMouseOverNumBtm; //マウスオーバーで色変更のための順序番号作成用 var sgCloseListBtm=function(e){ if (!!$("#srchAssistBtmDisp").get(0)) { var disp = $("#srchAssistBtmDisp").css("display"); if (disp === 'block') { sgDispListBtm(); } } } // 日本語入力中かどうかのチェック var sgKeyChkDownBtm = function(k){ NIFTY.niftop.sgDownKeyBtm = k; /* * Firefoxで検索窓に日本語入力をした時、サジェストが表示されない問題への対処 * Firefoxのバージョンは19.0.2 * * Firefoxでは、日本語入力中にキーイベントが発生しない。(keyup,keydown) * しかし、最初の一回のみ、keydownイベントが発生し、keycode=0がとれるため、 * その場合は強制的にkeyupしたときと同じ処理を行い、setIntervalによる検索窓のチェックを * させるようにした。これにより、検索窓の入力に合わせてサジェストが表示されるようになる。 */ if (NIFTY.niftop.atsearch.browserType.Firefox === true && NIFTY.niftop.sgDownKeyBtm === 0) { sgKeyChkBtm(k, $("#srchTxtBtm").val()); } } // 文字入力時に実行 var sgKeyChkBtm = function(k, str) { //「サジェストOff」の場合は終了 var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if(sugC === "0"){ sgCloseListBtm(); return; } //「Enterキー」、「日本語変換中」の場合は終了 if (k === 13){ if( NIFTY.niftop.sgDownKeyBtm !== 229){ return; } } if(k === 38 || k === 40){ return; } //タイマーがセットされていないかつ、上下キー以外が押下された場合 if (!NIFTY.niftop.sgTimerBtm) { //タイマーをセットし、APIを呼び出す NIFTY.niftop.sgTimerBtm = setInterval(function(k, str) {sgCallAPIBtm(k, str, false, true)}, 500); // sgCallAPIBtm(k, str, false, true); } else { //タイマーをリセットすることで、連続したキー入力中はAPIを呼び出さないように制限をかける clearInterval(NIFTY.niftop.sgTimerBtm); NIFTY.niftop.sgTimerBtm = setInterval(function(k, str) {sgCallAPIBtm(k, str, false, true)}, 500); } } // 上下キー入力時に実行 var sgKeyUpDownBtm = function(k) { if(k !== 38 && k !== 40){ return; } //検索結果ありでかつ、上下キーが押下された場合 if ($("#srchAssistBtmDisp .list li").size() !== 0) { sgSelectListBtm(k); NIFTY.niftop.srchTypeBtm["web"].hiddenVal.pos = NIFTY.niftop.sgCountBtm; //タイマーストップ clearInterval(NIFTY.niftop.sgTimerBtm); //ハンドラをクリア NIFTY.niftop.sgTimerBtm = ''; NIFTY.niftop.sgSSBtm = "nifty_top_tp_sg"; // ここではotypeの設定が不要なのでコメントアウト。 // テスト用グループに付与するotypeはinitSuggestで設定され、 // 通常のotype(web_nifty_1)はgosearch.cgiで設定される。 // NIFTY.niftop.sgOtype='web_nifty_1'; } else { sgCallAPIBtm(k, $("#srchTxtBtm").val(), false, true, function(){sgKeyUpDownBtm(k);}); } } // Yahoo!APIを呼び出してサジェスト実行する var sgCallAPIBtm = function(k, str, force, show, afterprocess) { //「サジェストOff」の場合は終了 if(NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg") === "0"){ return; } //検索済みである場合は終了 if (force !== true && NIFTY.niftop.sgAPIStrBtm === $("#srchTxtBtm").val()){ return; } //検索文字列を取得する str = str || $("#srchTxtBtm").val(); //検索結果リストのカウントを初期化 NIFTY.niftop.sgCountBtm = -1; //検索文字列をグローバル変数に格納 NIFTY.niftop.sgAPIStrBtm = str; //通常サジェストの取得 NIFTY.niftop.normalSg.StatusBtm = 0; NIFTY.niftop.normalSg.JSONBtm = undefined; //キーワードが空かどうか エラー未発生かチェック if (str) { nsgCallAPI(str, 5, 'nifsasBtm'); } else { NIFTY.niftop.normalSg.StatusBtm = -1; } if (!NIFTY.niftop.writeSgTimerBtm) { //サジェスト処理の完了をタイマーでチェック NIFTY.niftop.writeSgTimerBtm = setInterval(function() {writeSrchAssistInnerHTMLBtm(show, afterprocess)}, 50); writeSrchAssistInnerHTMLBtm(show, afterprocess); } return; } // Yahoo!APIのコールバック関数(下部検索窓) var nifsasBtm = function(json) { NIFTY.niftop.normalSg.JSONBtm = json; //成功 NIFTY.niftop.normalSg.StatusBtm = 1; } //サジェストの表示 var writeSrchAssistInnerHTMLBtm = function(show, afterprocess) { if (NIFTY.niftop.normalSg.StatusBtm === 0) { return; // サジェストの結果が返ってくるまで表示しない } clearInterval(NIFTY.niftop.writeSgTimerBtm); NIFTY.niftop.writeSgTimerBtm = ''; //検索結果が無い場合 if ((typeof(NIFTY.niftop.normalSg.JSONBtm) === "undefined" || NIFTY.niftop.normalSg.JSONBtm[1].length === 0)) { var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if(sugC === "0"){ var msg = 'キーワード入力補助がOFFになっています。'; }else{ if($("#srchTxtBtm").val().length === 0){ var msg = 'キーワードが入力されていません。'; } else { var msg = '入力したキーワードに一致する候補はありません。'; } } var html = '

    ' + msg + '

    ' + sgDispMainAssistBtm(); $("#srchAssistBtmSuggest").html(html); $("#srchAssistBtmNone, #srchAssistBtmDisp").hide(); sgDispSubAssistChengeBtm('open'); } else { var html = ''; var json = ''; NIFTY.niftop.sgMouseOverNumBtm = 0; //通常サジェスト if (typeof(NIFTY.niftop.normalSg.JSONBtm) !== "undefined" && !!NIFTY.niftop.normalSg.JSONBtm[1]) { json = NIFTY.niftop.normalSg.JSONBtm; html += '
      '; html += makeSuggestHtmlBtm(json, "assist", "nifty_top_tp_sg"); html += '
    '; } html = html + sgDispMainAssistBtm(); $("#srchAssistBtmSuggest").html(html); if (show) { $("#srchAssistBtmDisp").show(); $("#srchAssistBtmLists").show(); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmDisp").hide(); $("#srchAssistBtmLists").hide(); sgDispSubAssistChengeBtm('open'); } } if(typeof(afterprocess) === "function"){ afterprocess(); } } var makeSuggestHtmlBtm = function(json, className, ss) { var html = ''; var str = json[0]; var str_u = str.toUpperCase(); var str_l = str.toLowerCase(); var subs,subsStr,str_uStr,str_lStr,jStr,jsStr; for (var i=0; i < json[1].length; i++) { if (typeof(json[1][i]) === "undefined") { continue; } //リストを作成 subs = json[1][i].substring(str.length, json[1][i].length); subsStr = subs.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); str_uStr = str_u.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); str_lStr = str_l.replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); jStr = json[1][i].replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/'/g, "'"); jsStr = json[1][i].replace(/&/g, "&").replace(/"/g, """).replace(//g, ">").replace(/\\/g, "\\\\").replace(/'/g, "\\\'"); html += '
  • '; //検索URL var selectVal = ""; var url = ""; var cflg = ""; for(var j in NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal){ if(j!=="cflg" && j!=="ss"){ selectVal = j; }else if(j==="cflg"){ cflg = encodeURI(NIFTY.niftop.srchTypeBtm[NIFTY.niftop.searchTypeBtm].hiddenVal[j]); } } url = seachCL() + "https://search.nifty.com/cgi-bin/gosearch.cgi?ss=" + ss + "&" + selectVal +"=select&cflg=" + cflg + "&Text=" + encodeURIComponent(json[1][i]) + "&pos=" + i; html += ''; if (json[1][i] === str_u + subs) { html += '' + str_uStr + ''; html += subsStr; } else if (json[1][i] == str_l + subs) { html += '' + str_lStr + ''; html += subsStr; } else { html += jStr; } html += '
  • '; } return html; } // リストの上下移動 上下キーとマウスオーバーで呼ばれる // マウスオーバーの場合はindexが渡される var sgSelectListBtm = function(k, index) { var lis = $("#srchAssistBtmDisp .list li"); if (k === 38) { if (NIFTY.niftop.sgCountBtm <= -1){ NIFTY.niftop.sgCountBtm = lis.length; } NIFTY.niftop.sgCountBtm --; } else if (k === 40) { if (NIFTY.niftop.sgCountBtm >= (lis.length - 1)){ NIFTY.niftop.sgCountBtm = -2; } NIFTY.niftop.sgCountBtm ++; } else if (typeof(index) !== "undefined") { NIFTY.niftop.sgCountBtm = index; } else { return; } for (var i=0; i < lis.length; i++) { if (i === NIFTY.niftop.sgCountBtm) { if (typeof(index) === "undefined") { // マウスオーバーの場合は検索窓のキーワードを変えない $("#srchTxtBtm").val(lis[i].title); } lis.eq(i).children().addClass("on"); } else { lis.eq(i).children().removeClass("on"); } } if(NIFTY.niftop.sgCountBtm === -1 ){ $("#srchTxtBtm").val(NIFTY.niftop.sgAPIStrBtm); } if (!!$("#srchAssistBtmDisp").get(0)) { var disp = $("#srchAssistBtmDisp").css("display"); if (disp === 'none') { sgDispListBtm(); } } } // リストの表示(アシストボタン(▼)をクリックした場合と枠外をクリックした場合) var sgDispListBtm = function() { var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); var html; //■サジェスト機能がOFFの場合 if (sugC === "0") { //OFFになっている文言設定 html = '

    キーワード入力補助がOFFになっています。

    ' + sgDispMainAssistBtm(); $("#srchAssistBtmSuggest").html(html); //現在のサジェストの状態に合わせて表示非表示切り替え if ($("#srchAssistBtmDisp").css("display") === 'none') { $("#srchAssistBtmNone").css("display","block"); $("#srchAssistBtmDisp").css("display","block"); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmNone").css("display","none"); $("#srchAssistBtmDisp").css("display","none"); sgDispSubAssistChengeBtm('open'); } return; //■サジェストの結果が無い } else if ($("#srchAssistBtmDisp .list li").size() === 0) { //■検索結果が無い場合(="srchAssistBtmNone" タグが存在する) if (!!$("#srchAssistBtmNone").get(0)) { var disp = $("#srchAssistBtmNone").css("display"); if (disp === 'none') { $("#srchAssistBtmNone").css("display","block"); $("#srchAssistBtmDisp").css("display","block"); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmNone").css("display","none"); $("#srchAssistBtmDisp").css("display","none"); sgDispSubAssistChengeBtm('open'); allLiClassClearBtm(); } return; //■検索文字が入力されている場合は再度APIを呼び出す } else if ($("#srchTxtBtm").val()) { if (NIFTY.niftop.atsearch.browserType.IE6) { //IE6でCallbackが呼ばれないので、setTimeoutで括って対処 setTimeout(function(){sgCallAPIBtm(undefined, $("#srchTxtBtm").val(), true, true)},30); } else { sgCallAPIBtm(undefined, $("#srchTxtBtm").val(), true, true); } return; //■サジェストが閉じている(assistDispが開いている) } else if (!!$("#srchAssistBtmDisp").get(0)) { var disp = $("#srchAssistBtmDisp").css("display"); if (disp === 'none') { $("#srchAssistBtmNone").css("display","block"); $("#srchAssistBtmDisp").css("display","block"); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmNone").css("display","none"); $("#srchAssistBtmDisp").css("display","none"); sgDispSubAssistChengeBtm('open'); allLiClassClearBtm(); } return; //■リストが閉じていて、入力が無い場合 } else {//入力が無い場合は履歴サジェストを表示するのでAPI完了時点の表示まで何もしない return; } //■検索結果のリストがある場合 } else if ($("#srchAssistBtmDisp .list li").size() !== 0) { var disp = $("#srchAssistBtmLists").css("display"); var url; if (disp === 'none') { $("#srchAssistBtmLists").css("display","block"); $("#srchAssistBtmNone").css("display","block"); $("#srchAssistBtmDisp").css("display","block"); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmLists").css("display","none"); $("#srchAssistBtmNone").css("display","none"); $("#srchAssistBtmDisp").css("display","none"); sgDispSubAssistChengeBtm('open'); allLiClassClearBtm(); } return; //■一致する候補が無い場合 } else if (!!$("#srchAssistBtmNone").get(0)) { var disp = $("#srchAssistBtmNone").css("display"); if (disp === 'none') { $("#srchAssistBtmNone").css("display","block"); $("#srchAssistBtmDisp").css("display","block"); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmNone").css("display","none"); $("#srchAssistBtmDisp").css("display","none"); sgDispSubAssistChengeBtm('open'); allLiClassClearBtm(); } return; } else { var disp = $("#srchAssistBtmDisp").css("display"); if (disp === 'none') { $("#srchAssistBtmNone").css("display","block"); $("#srchAssistBtmDisp").css("display","block"); sgDispSubAssistChengeBtm('close'); } else { $("#srchAssistBtmNone").css("display","none"); $("#srchAssistBtmDisp").css("display","none"); sgDispSubAssistChengeBtm('open'); allLiClassClearBtm(); } return; } } // アシストリストの表示 (キーワード入力補助 ON/OFF の部分) var sgDispMainAssistBtm = function() { var sugC = NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck("srchSg"); if (sugC !== "0") { html='

    キーワード入力補助

    '; }else{ html='

    キーワード入力補助

    '; } return html; } var sgDispSubAssistChengeBtm = function(stat) { var html; if (stat === 'close') { html = 'キーワード補助を閉じる'; $("#srchAssistBtnBtm").addClass("on"); }else{ html = 'キーワード補助を開く'; $("#srchAssistBtnBtm").removeClass("on"); } $("#srchAssistBtnBtm").html(html); return; } // サジェスト結果リストにマウスオーバーした際に非選択状態に戻す function allLiClassClearBtm() { NIFTY.niftop.sgCountBtm = -1; $("#srchAssistBtmDisp .list li a").removeClass("on"); } // サジェスト結果リストにマウスオーバーした際に選択状態にする var sgListOverBtm = function(i) { sgSelectListBtm(undefined, i); //タイマーストップ clearInterval(NIFTY.niftop.sgTimerBtm); //ハンドラをクリア NIFTY.niftop.sgTimerBtm = ''; } var sgListClickBtm = function(str) { $("#srchTxtBtm").val(str); sgClearBtm(); } var sgClearBtm = function(){ clearInterval(NIFTY.niftop.sgTimerBtm); NIFTY.niftop.sgTimerBtm = ''; NIFTY.niftop.sgAPIStrBtm=""; }; /**************************************************************************** クッキー操作用関数 ****************************************************************************/ // 以下は@searchのatsrchcommon.jsから移植 (function(){ if(!NIFTY.niftop.atsearch){NIFTY.niftop.atsearch={};}; // OS, ブラウザの判定用関数の定義 // ・NIFTY.niftop.atsearch.browserType // ・NIFTY.niftop.atsearch.osType NIFTY.niftop.atsearch.browserType = new checkBrowserType(); // checkBrowserTypeはindex.htmで定義されている NIFTY.niftop.atsearch.osType = new checkOsType(); // checkOsTypeはcommon.jsで定義されている // 「at_srch」Cookieの操作関数の定義 // ・NIFTY.niftop.atsearch.atsrchStyle_setCookie // ・NIFTY.niftop.atsearch.atsrchStyle_getCookie // ・NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck var COOKIE_KEY = "at_srch"; //クッキーを解析して名前-値のハッシュを得る。 var atsrchStyle_getStyleCookie = function(cookieID) { if (!cookieID) { return; } var ary,key,val; val = document.cookie.replace(/\s/g,''); if (!val) { return; } ary = val.split(';'); for (var i = 0, l=ary.length; i < l; i++) { var keyval = ary[i].split('='); key = keyval[0]; if (key === cookieID) { val = keyval[1]; // ダブルクォートが不完全なものはcookie削除 // ダブルクォートが正常なものはダブルクォート削除 if (val) { var p1 = val.indexOf('"'); if (key == 'at_srch' && val.length >= 1 && p1 != -1) { if (p1 == 0) { var p2 = val.indexOf('"', 1); if (p2 == 1 || p2 == -1) { val = ''; } else { val = val.replace(/\"/g, ''); } } else { val = val.replace(/\"/g, ''); } } } break; } } if (key !== cookieID || !val) { return; } ary = val.split('&'); for (i = 0, l=ary.length; i < l; i++) { var keyval = ary[i].split(':'); this[keyval[0]] = keyval[1]; } }; //ハッシュ化されたクッキーを文字列に直してdocument.cookieにセットする。 var atsrchStyle_setStyleCookie = function(cookieID,obj) { if (!cookieID) { return; } var i; var tmp = ''; for (i in obj) {//objはハッシュ if (obj[i] == null) { obj[i] = ''; } tmp += i+':'+obj[i]+'&'; } var date = new Date(); if(NIFTY.niftop.atsearch.osType.Mac && NIFTY.niftop.atsearch.browserType.Safari) { date.setMonth(date.getMonth() + 1); date.setMonth(date.getMonth() + 1); date.setMonth(date.getMonth() + 1); date.setMonth(date.getMonth() + 1); date.setMonth(date.getMonth() + 1); date.setMonth(date.getMonth() + 1); } else { date.setMonth(date.getMonth() + 6); } var domainStr = document.domain; var cookieDomain = "nifty.com"; var index = domainStr.indexOf(cookieDomain); var domainChkStr = domainStr.substring(index); if(domainChkStr.length === cookieDomain.length) { document.cookie = cookieID+'='+tmp.slice(0,-1)+';domain=.nifty.com;path=/;expires='+date.toGMTString();//tmp.sliceで最後の&を切っている } else { document.cookie = cookieID+'='+tmp.slice(0,-1)+';path=/;expires='+date.toGMTString(); } }; //クッキーの指定した名前に値をセットする。 NIFTY.niftop.atsearch.atsrchStyle_setCookie = function(name, value) { var cookie = new atsrchStyle_getStyleCookie(COOKIE_KEY); cookie[name] = value; atsrchStyle_setStyleCookie(COOKIE_KEY,cookie); }; //クッキーの指定した名前を取得する。 NIFTY.niftop.atsearch.atsrchStyle_getCookie = function(name) { var cookie = new atsrchStyle_getStyleCookie(COOKIE_KEY); atsrchStyle_setStyleCookie(COOKIE_KEY,cookie); var cookieValue = cookie[name]; return cookieValue; }; //指定した名前のクッキー値を取得する。(異常値チェックなし版) NIFTY.niftop.atsearch.atsrchStyle_getCookieWithoutCheck = function(name) { var cookie = new atsrchStyle_getStyleCookie(COOKIE_KEY); var cookieValue = cookie[name]; return cookieValue; }; })(); richSuggest([ { "tags": [ "rakuten", "rakutennichiba", "rakutennitiba", "らくてん", "らくてんいちば", "ラクテン", "ラクテンイチバ", "楽天", "楽天市場", "rakutenichiba", "rakutenitiba", "三木谷浩史", "みきたにひろし", "ミキタニヒロシ" ], "bannerClass": "rakuten", "linkUrl": "http://pt.afl.rakuten.co.jp/c/0fbcd069.fb2e7bbc/_RTnfty10000002?url=http%3a%2f%2fwww.rakuten.co.jp", "description": "人気、実力ともに日本一のショッピングモール", "title": "楽天市場", "extParam": { "impcountId": "rk" } }, { "tags": [ "amazon", "アマゾン", "あまぞん", "あまぞn", "amazon.co.jp", "あまぞん。こ。jp", "ジェフベゾス", "ジェフ・ベゾス", "じぇふべぞす", "じぇふ・べぞす" ], "bannerClass": "amazon", "linkUrl": "http://www.amazon.co.jp/?_encoding=UTF8&camp=247&creative=1211&linkCode=ur2&tag=topsuggestaffili-22", "description": "通常配送無料(一部除く) 1億種の商品をお安く", "title": "Amazon.co.jp", "extParam": { "impcountId": "az" } }, { "tags": [ "yahoo!shopping", "yahoo!shopping", "yahooshopping", "やほお!しょっぴんg", "やほお!しょっぴんg", "やほおしょっぴんg", "yahoo!ショッピング", "yahoo!ショッピング", "yahooショッピング", "ヤフーショッピング", "やふーしょっぴんぐ", "yafu-shoppingu", "yafu-shoppinngu", "yafu-syoppingu", "yafu-syoppinngu", "yahu-shoppingu", "yahu-shoppinngu", "yahu-syoppingu", "yahu-syoppinngu" ], "bannerClass": "syahoo", "linkUrl": "http://shopping.yahoo.co.jp/", "description": "幅広い品ぞろえと最新のお買い得情報が満載!", "title": "Yahoo!ショッピング", "extParam": { "impcountId": "ys" } }, { "tags": [ "yafuoku!", "yafuoku!", "yahuoku!", "yahuoku!", "ヤフオク!", "ヤフオク!", "やふおく!", "やふおく!", "yahoo!auction", "yahoo!auction", "yahooauction", "やほお!あうcちおn", "やほお!あうcちおn", "やほおあうcちおn", "yahoo!オークション", "yahoo!オークション", "yahooオークション", "ヤフーオークション", "やふーおーくしょん", "yafu-o-kushonn", "yafu-o-kusyonn", "yahu-o-kushonn", "yahu-o-kusyonn" ], "bannerClass": "ayahoo", "linkUrl": "http://auctions.yahoo.co.jp/", "description": "誰でも簡単。ここだけのお買得商品がいっぱい", "title": "ヤフオク!", "extParam": { "impcountId": "ya" } } ]) //FireFoxのお気に入り小窓 var openFFhomeset=function(){ if(!$('#ff_homeset').length){// 多重に開くのを防ぐ var ff_homesetHTML='

    ホームページに設定

    このアイコンを
    ドラッグします。

    図の場所にドラッグします

    ホームボタンにドロップし、ポップアップで[はい]を選択します。

    閉じる

    '; $('#header').prepend(ff_homesetHTML); } }; //「ホームページに設定」ポップアップの表示 // Cookie:hspcにより非表示制御を行う // hspcは閉じるボタンを押すたびに加算 // hspcがCLOSE_CLICKSの数値以上である場合、ポップアップを表示しない var viewHomesetPopup=function() { var CLOSE_CLICKS = 1; // loadCookie()によりCookieからhspcを取得。存在しない場合は空文字が返る // Number()メソッドによりhspcを数値に変換。空文字や英字等の場合はNaNが返る var cookieNum = Number(loadCookie("hspc")); if(isNaN(cookieNum)){ //cookieNumがNaNである場合、0を代入 cookieNum = 0; } if(cookieNum < CLOSE_CLICKS){ //cookieNumがCLOSE_CLICKS以下である場合、ポップアップを表示 cookieNum = cookieNum + 1; var homesetPopupHTML=''; $('#header').prepend(homesetPopupHTML); } }; // 「ホームページに設定」ポップアップの削除関数の定義 // 削除対象のIDと、hspcにsetするcookieを引数で受け取る var close_homesetPopup=function(setCookieNum) { $('#homesetPopup').remove(); saveCookie("hspc",setCookieNum); }; //緊急枠の表示 var loadEmg=function(emgID){ if(emgID !== "" && $("#emergency").get(0)){ var emgCookie=loadCookie("emg")-0; if(emgCookie !== emgID){ $("#emergency").css("display","block"); } } }; //ロゴクリック時 var logoClk=function(){ var bType=new checkBrowserType(); var osType=new checkOsType(); var url=location.href; // IE10以下でホームに設定されていない場合はホーム設定ポップアップを表示 if(bType.IE && osType.Win && !bType.Opera && url.indexOf('"')===-1 && url.indexOf("'")===-1 && !$('#nifty_top_homeset').get(0).isHomePage(url)){ var set=$("#setstartpage").get(0); if(set){ set.style.behavior='url(#default#homepage)'; set.setHomePage(url); if(set.isHomePage(url)){ countlink('www','toplogo_01','https://www.nifty.com/'); // $("#setstartpage").remove(); $("#setstartpage").removeAttr("onclick").attr("href","//www.nifty.com/navi/startpage/"); } } } // その他の場合はリロード else{ countlink('www','toplogo_02','https://www.nifty.com/'); location.reload(); } }; //画面表示時にデザインを設定 var setDsn=function(s) { var cNo = loadCookie("dsn"); //Cookieが空の場合はデフォルト(オレンジ) if(!cNo || cNo === ""){ cNo = "0"; } //シーズンの場合はCookieの値を変更する if(0 < Number(cNo) && Number(cNo) < 5){ if(cNo !== s){ cNo = s+""; saveCookie("dsn",cNo); } } //デザインリストに選択中のデザインが存在するかどうかチェック var no = "0"; for(var i=0;i < NIFTY.niftop.skin.length;i++){ if(i === Number(cNo)){ if(NIFTY.niftop.skin[i][0] && NIFTY.niftop.skin[i][0] !== ""){ no = cNo; break; } } } replaceCss(no); } //デザインリンククリック時 var chengeDsn=function(season){ //二度押し防止 $("#header p a").each(function(){ if($(this).text() === "デザイン"){ $(this).removeAttr("onclick"); } }); //デザイン枠が開いている場合は閉じる処理を実行する if($('#chgDsgn .chgInr').size()){ closeDsn(season); return; } var cNo = loadCookie("dsn"); //Cookieが空の場合はデフォルト(オレンジ) if(!cNo || cNo === ""){ cNo = "0"; } //デザインリストに選択中のデザインが存在するかどうかチェック var no = 0; for(var i=0;i < NIFTY.niftop.skin.length;i++){ if(i === Number(cNo)){ if(NIFTY.niftop.skin[i][0] && NIFTY.niftop.skin[i][0] !== ""){ no = cNo; break; } } } //デザイン枠のHTML var dsnTmp=""; dsnTmp+='
    '; dsnTmp+='
    ピンク
    ピンク
    '; dsnTmp+='
    オレンジ
    オレンジ
    '; dsnTmp+='
    イエロー
    イエロー
    '; dsnTmp+='
    グリーン
    グリーン
    '; dsnTmp+='
    ブルー
    ブルー
    '; dsnTmp+='
    グレー
    グレー
    '; dsnTmp+='
    シーズン
    シーズン
    '; dsnTmp+='
    '; dsnTmp+='
    シャボン玉
    シャボン玉
    '; dsnTmp+='
    ねこ
    ねこ
    '; dsnTmp+='
    富士山
    富士山
    '; dsnTmp+='
    青空と雲
    青空と雲
    '; dsnTmp+='
    クリーム
    クリーム
    '; dsnTmp+='
    何でも調査団
    何でも調査団
    '; dsnTmp+='
    インターポット
    インターポット
    '; dsnTmp+='

    閉じる

    '; $('#chgDsgn').html(dsnTmp); $('#chgDsgn').slideToggle(500,function(){ //該当のデザインをチェック状態にする $("#head div.unit").removeClass("now"); //表示中のデザインを選択中にする $("#head div.unit dl").each(function(){ var target = $(this); var re = new RegExp("^dsgnPtn" + no + "$"); if(target.attr("class").match(re)) { target.parent().addClass("now"); } }); //NEWマーク制御 var nflg = 0; for(var i=0;i < NIFTY.niftop.skin.length;i++){ if(NIFTY.niftop.skin[i][1] === "1"){ $("#head div.unit .dsgnPtn"+i).append('
    新規デザイン
    '); } } //二度押し防止解除 var cls = ""; //リンクにNEWマークをつけるかどうかのチェック for(var i=0;i < NIFTY.niftop.skin.length;i++){ if(NIFTY.niftop.skin[i][1] === "1"){ cls ="new"; break; } } $("#header p a").each(function(){ if($(this).text() === "デザイン"){ $(this).replaceWith('デザイン'); } }); //デザインクリック時の処理 $("#head div.unit dl").each(function(){ $(this).click(function(){ var target = $(this); if(target.attr("class").match(/dsgnPtn([0-9]*)/)) { var no = RegExp.$1; var nowdsn = loadCookie("dsn"); if(nowdsn === no){ $(this).unbind("click"); //選択中のデザインを再度クリックした場合はデザインを閉じる closeDsn(season); }else{ //カウントリンク var clno = $(this).children().children().attr("id"); countlink('www','toptop_design_0'+clno,'https://www.nifty.com/',false); //選択したデザインを選択中にして、デザインを即時反映する saveCookie("dsn",no); $("#head div.unit").removeClass("now"); $(this).parent().addClass("now"); replaceCss(no); } } }); }); }); } //デザイン枠を閉じる var closeDsn=function(season){ //二度押し防止 $('#chgDsgn p.close a').removeAttr("onclick"); $("#head div.unit dl").unbind(); $('#chgDsgn').slideToggle(500,function(){ $('#chgDsgn .chgInr').remove(); //二度押し防止解除 var cls = ""; //リンクにNEWマークをつけるかどうかのチェック for(var i=0;i < NIFTY.niftop.skin.length;i++){ if(NIFTY.niftop.skin[i][1] === "1"){ cls ="new"; break; } } $("#header p a").each(function(){ if($(this).text() === "デザイン"){ $(this).replaceWith('デザイン'); } }); }); } //デザインを変更する var replaceCss = function(no){ var lnk = $("head link[href^=theme]"); //オレンジの場合は削除して終了 if(no === "0") { lnk.remove(); return; } var file = NIFTY.niftop.skin[Number(no)][0]; if(file){ if(no.length === 1){ no = "0" + no; } var url = "theme/a0" + no + "/" + file; var ele = '' lnk.size()?lnk.replaceWith(ele):$("head").append(ele); // lnk.size()?lnk.attr("href",url):$("head").append(''); } } //「デザイン」リンク表示 var dspDsn=function(mdd) { var cls = ""; //リンクにNEWマークをつけるかどうかのチェック for(var i=0;i < NIFTY.niftop.skin.length;i++){ if(NIFTY.niftop.skin[i][1] === "1"){ cls ="new"; break; } } document.write('デザイン'); } //画面サイズ変更初回処理 var initChSize=function() { //画面サイズ変更アイコンを表示 $("#chSize").show(); //cookie『scsz_pc』を取得する var scsz = loadCookie("scsz_pc"); //scszの値に応じてサイズ変更を実施 if(scsz == "0" || scsz == "1" || scsz == "2"){ //画面サイズの変更 changeSize(scsz); } else { //cookieがない場合や、scszが不正な値の場合は小サイズ(等倍)に設定 changeSize("0"); } } //画面サイズ変更アイコンクリック時の処理 var clickChSizeIcon=function(){ //画面サイズ変更メニューの表示/非表示切り替え if($("#chSize").find(".chSizeMenu").is(":hidden")){ $("#chSize").find(".chSizeMenu").show(); }else{ $("#chSize").find(".chSizeMenu").hide(); } } //画面サイズ変更リンククリック時の処理 var clickChSizeLink=function(scsz){ //制御文字が"0","1","2"の場合、画面サイズを変更しその値をcookieに保存 if(scsz == "0" || scsz == "1" || scsz == "2"){ changeSize(scsz); saveCookie("scsz_pc",scsz); } } //画面サイズ変更処理 var changeSize=function(scsz) { //現在の画面サイズの変更メニューにのみselectedクラスを付与 $("#chSize").find(".selected").removeClass("selected"); $("#chSize").find(".scsz"+scsz).addClass("selected"); //wrapperとfancybox-wrapタグにクラス『scszX』を追加(Xは0〜2の値をとる) $("#wrapper").removeClass("scsz0 scsz1 scsz2"); $("#wrapper").addClass("scsz"+scsz); $("#fancybox-wrap").removeClass("scsz0 scsz1 scsz2"); $("#fancybox-wrap").addClass("scsz"+scsz); $("#floating-wrap").removeClass("scsz0 scsz1 scsz2"); $("#floating-wrap").addClass("scsz"+scsz); $("#nifkujiResultArea").removeClass("scsz0 scsz1 scsz2"); $("#nifkujiResultArea").addClass("scsz"+scsz); } var displayDisaster=function(disNowTime) { var minLevel = 9999; var number = -1; var disHTML = ""; var disData = getDis(); var buttonHTML = ""; // テスト用 // var disNowTime = new Date(2011, 08 - 1, 17, 12, 14, 0); for(var i=0,l=disData.length; i= 900000){ buttonHTML = '詳しく見る'; } } } } if(number < 0){ //最優先トピックスがある場合は表示する if($("#headInfomation").size()){ $("#headInfomation").show(); } }else{ //地震情報を表示 var disStr = "最大震度" + disData[number]["scale"] + "(" + disData[number]["opdate"].getDate() + "日" + disData[number]["opdate"].getHours() + "時" + disData[number]["opdate"].getMinutes() + "分ごろ/" + disData[number]["area"] + ")"; document.write('
    ' + buttonHTML + '

    地震情報

    ' + disStr + '
    '); } } var get_mail=function(type,kuji){ /* jQuery.ajax({ url: '/niftop/cgi-bin/sso_get_mailinfo_201201', dataType: "json", cache: false, timeout : 7000, success:function(data){ mCallbackFunction(data); }, beforeSend:function(xhr){ xhr.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"); } }); */ // ビーコン設置用関数を利用して