function dosearch() { var validResult = validCheck(); var urlLengthResult = urlLengthCheck(); var voidResult = voidCheck(); var fm = document.searchform; if(document.listoption){ document.searchform.count.value = document.listoption.count.value; document.searchform.sortorder.value = document.listoption.sortorder.value; } else { var count = getCookie('count'); if(count) { document.searchform.count.value = count; } var sortorder = getCookie('sortorder'); if(sortorder) { document.searchform.sortorder.value = sortorder; } } if(validResult && urlLengthResult && voidResult) { if(document.searchform.submittime){ if((new Date()).getTime() - document.searchform.submittime.getTime() < 2000){ return false; }else{ document.searchform.submittime = new Date(); } }else{ document.searchform.submittime = new Date(); } if(fm.q.value == ""){fm.q.value = "";} if(fm.q.value.length == 0){fm.q.disabled = true;} var normalsearch = document.getElementById('art_advanced_search').style.display == 'none'; fm.title.disabled = normalsearch || fm.title.value.length == 0; fm.author.disabled = normalsearch || fm.author.value.length == 0; fm.affiliation.disabled = normalsearch || fm.affiliation.value.length == 0; fm.journal.disabled = normalsearch || fm.journal.value.length == 0; fm.issn.disabled = normalsearch || fm.issn.value.length == 0; fm.volume.disabled = normalsearch || fm.volume.value.length == 0; fm.issue.disabled = normalsearch || fm.issue.value.length == 0; fm.page.disabled = normalsearch || fm.page.value.length == 0; fm.publisher.disabled = normalsearch || fm.publisher.value.length == 0; fm.references.disabled = normalsearch || fm.references.value.length == 0; fm.year_from.disabled = normalsearch || fm.year_from.value.length == 0; fm.year_to.disabled = normalsearch || fm.year_to.value.length == 0; document.searchform.submit(); fm.q.disabled = false; if(fm.q.value.length == 0){ fm.q.value = ""; fm.q.style.color = "#999999"; } fm.title.disabled = false; fm.author.disabled = false; fm.affiliation.disabled = false; fm.journal.disabled = false; fm.issn.disabled = false; fm.volume.disabled = false; fm.issue.disabled = false; fm.page.disabled = false; fm.publisher.disabled = false; fm.references.disabled = false; fm.year_from.disabled = false; fm.year_to.disabled = false; } return validResult && urlLengthResult && voidResult; } function deleteCoordinatesByKey() { if((window.attachEvent && !window.opera) && (event.keyCode == 13)){ dosearch(); return false; } return true; } function validCheck(){ var issn = document.searchform.issn; var volume = document.searchform.volume; var issue = document.searchform.issue; var page = document.searchform.page; var year_from = document.searchform.year_from; var year_to = document.searchform.year_to; var errormessage = ""; //ISSNチェック if(issn.value.length > 16) { errormessage = "ISSN の桁数が不適切です。ISSNを16桁以内で入力してください。"; } if(issn.value.length > 0 && ! Fulltohalf(issn.value).match(/^[0-9xXxX‐-]+$/)){ errormessage = "ISSN の入力文字が不適切です。ISSNは数字およびアルファベットの'X'、'x'、記号の'‐'、'-'のみ入力可能です。"; } //巻チェック if(volume.value.length > 9) { errormessage = "巻 の桁数が不適切です。巻を9桁以内で入力してください。"; } // 20090619 MODIFY START 負の数のバリッドチェックを行うように修正 // if( isNaN(Fulltohalf(volume.value))) { if(volume.value.length > 0 && ! Fulltohalf(volume.value).match(/^[0-9]+$/)){ errormessage = "巻 の入力文字が不適切です。巻は数字で入力して下さい。"; } //号チェック if(issue.value.length > 9) { errormessage = "号 の桁数が不適切です。号を9桁以内で入力してください。"; } // if( isNaN(Fulltohalf(issue.value))) { if(issue.value.length > 0 && ! Fulltohalf(issue.value).match(/^[0-9]+$/)) { errormessage = "号 の入力文字が不適切です。号は数字で入力して下さい。"; } // 20090622 MODIFY START OpenURL受信ページング対応(検索項目ページのUI変更) //ページチェック if(page.value.length > 9) { //errormessage = "ページ の桁数が不適切です。ページを9桁以内で入力してください。"; var hyphenindex = Fulltohalf(page.value).indexOf("-", 0); if(hyphenindex > -1) { // 開始ページ桁数チェック if(hyphenindex > 9) { errormessage = "開始ページ の桁数が不適切です。開始ページを9桁以内で入力してください。"; } // 終了ページ桁数チェック if((page.value.length - (hyphenindex + 1)) > 9) { errormessage = "終了ページ の桁数が不適切です。終了ページを9桁以内で入力してください。"; } } else { errormessage = "ページ の桁数が不適切です。ページを9桁以内で入力してください。"; } } // if( isNaN(Fulltohalf(page.value))) { if(page.value.length > 0 && ! Fulltohalf(page.value).match(/^[0-9-]+$/)) { errormessage = "ページ の入力文字が不適切です。ページは数字および記号の'-'のみ入力可能です。"; } else { var hyphenindex = Fulltohalf(page.value).indexOf("-", 0); // 1つ目の"-" if(hyphenindex > -1) { // 2つ目の"-" if(Fulltohalf(page.value).indexOf("-", hyphenindex + 1) > -1) { errormessage = "ページ の入力文字の記号 '-' の数が不適切です。'-' は1つ以下で入力して下さい。"; } } } // 20090622 MODIFY END OpenURL受信ページング対応(検索項目ページのUI変更) //出版年(From)チェック if(year_from.value.length > 4) { errormessage = "出版年 の桁数が不適切です。出版年を4桁以内で入力してください。"; } // if( isNaN(Fulltohalf(year_from.value))) { if(year_from.value.length > 0 && ! Fulltohalf(year_from.value).match(/^[0-9]+$/)) { errormessage = "出版年 の入力文字が不適切です。出版年は数字で入力して下さい。"; } //出版年(To)チェック if(year_to.value.length > 4) { errormessage = "出版年 の桁数が不適切です。出版年を4桁以内で入力してください。"; } // if( isNaN(Fulltohalf(year_to.value))) { if(year_to.value.length > 0 && ! Fulltohalf(year_to.value).match(/^[0-9]+$/)) { errormessage = "出版年 の入力文字が不適切です。出版年は数字で入力して下さい。"; } // 20090619 MODIFY END 負の数のバリッドチェックを行うように修正 // フリーワード if(! searchOperaorCheck(document.searchform.q.value)){ errormessage = "フリーワード の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } // 論文名 if(! searchOperaorCheck(document.searchform.title.value)){ errormessage = "論文名 の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } // 著者名 if(! searchOperaorCheck(document.searchform.author.value)){ errormessage = "著者名 の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } //著者所属 if(! searchOperaorCheck(document.searchform.affiliation.value)){ errormessage = "著者所属 の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } // 刊行物名 if(! searchOperaorCheck(document.searchform.journal.value)){ errormessage = "刊行物名 の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } // 出版者 if(! searchOperaorCheck(document.searchform.publisher.value)){ errormessage = "出版者 の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } // 参考文献 if(! searchOperaorCheck(document.searchform.references.value)){ errormessage = "参考文献 の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } if(errormessage.length > 0) { document.getElementById("validation_error").innerHTML = "
" + errormessage + "
"; document.getElementById("validation_error").style.display = "block"; return false; } return true; } String.prototype.trim = function() { return this.replace(/^[\s ]+|[\s ]+$/g, ''); } function searchOperaorCheck(value){ value = value.trim().replace(" ", " "); if(value.indexOf("OR ") == 0 || value.indexOf("OR ") == 0 || value.indexOf("NOT ") == 0 || value.indexOf("NOT ") == 0 || value.indexOf("-") == 0 || value.indexOf("\| ") == 0 || value.indexOf("\| ") == 0 ){ return false; } return true; } function voidCheck(){ var fm = document.searchform; return ! ((fm.q.value.length == 0 || fm.q.value == "") && fm.title.value.length == 0 && fm.author.value.length == 0 && fm.affiliation.value.length == 0 && fm.journal.value.length == 0 && fm.issn.value.length == 0 && fm.volume.value.length == 0 && fm.issue.value.length == 0 && fm.page.value.length == 0 && fm.publisher.value.length == 0 && fm.references.value.length == 0 && fm.year_to.value.length == 0 && fm.year_from.value.length == 0); } function urlLengthCheck(){ if(! (window.attachEvent && !window.opera)){ return true; } var fm = document.searchform; // 20100607 MOD START CiNii実験機と本番機のソース共通化改修 var url = "http://".concat(window.location.hostname).concat("/search"); var total = url.length; if(fm.q.value != "" && fm.q.value.length != 0){total += encodeURIComponent(fm.q.value).length + 3} total += 8; //range total += encodeURIComponent(fm.count.value).length + 7; total += encodeURIComponent(fm.sortorder.value).length + 11; if(document.getElementById('art_advanced_search').style.display != 'none'){ if(fm.title.value.length != 0){total += encodeURIComponent(fm.title.value).length + 7} if(fm.author.value.length != 0){total += encodeURIComponent(fm.author.value).length + 8} if(fm.affiliation.value.length != 0){total += encodeURIComponent(fm.affiliation.value).length + 13} if(fm.journal.value.length != 0){total += encodeURIComponent(fm.journal.value).length + 9} if(fm.issn.value.length != 0){total += encodeURIComponent(fm.issn.value).length + 6} if(fm.volume.value.length != 0){total += encodeURIComponent(fm.volume.value).length + 8} if(fm.issue.value.length != 0){total += encodeURIComponent(fm.issue.value).length + 7} if(fm.page.value.length != 0){total += encodeURIComponent(fm.page.value).length + 6} if(fm.publisher.value.length != 0){total += encodeURIComponent(fm.publisher.value).length + 11} if(fm.references.value.length != 0){total += encodeURIComponent(fm.references.value).length + 12} if(fm.year_from.value.length != 0){total += encodeURIComponent(fm.year_from.value).length + 11} if(fm.year_to.value.length != 0){total += encodeURIComponent(fm.year_to.value).length + 9} } if(total > 2083) { alert("URLの長さが2083文字を超えました。"); return false; } return true; } function linkUrlLengthCheck(url){ if(! (window.attachEvent && !window.opera)){ return true; } // 20100607 MOD START CiNii実験機と本番機のソース共通化改修 var header = "http://".concat(window.location.hostname); if(url.length + header.length > 2083) { alert("URLの長さが2083文字を超えました。"); return false; } return true; } function Fulltohalf(data) { var char1 = new Array("1","2","3","4","5","6","7","8","9","0"); var char2 = new Array(1,2,3,4,5,6,7,8,9,0); var count; while(data.match(/[0-9]/)){ //入力データに全角数字がある場合 for(count = 0; count < char1.length; count++){ //入力データを全角数字から半角数字に置換する data = data.replace(char1[count], char2[count]); } } return data; } function openALL(){ if(document.actionform.fileType.value == "default"){ return false; } if(document.actionform.submittime){ if((new Date()).getTime() - document.actionform.submittime.getTime() < 2000){ return false; }else{ document.actionform.submittime = new Date(); } }else{ document.actionform.submittime = new Date(); } if(document.actionform.fileType.value == 0){ var checkcount = 0; var uri = "/naid/"; document.searchform.method = "post"; if(document.searchform.q.value == ""){ document.searchform.q.value = ""; } // 20100303 MODIFY START 20番目以降詳細画面が表示されない、1件の時にチェックなしでも詳細が開く不具合を修正 if(document.articlelist.docSelect.length){ for(var i=0; i" + errormessage + "
"; document.getElementById("author_validation_error").style.display = "block"; return false; } return true; } function voidCheckAuthor(){ // 20100202 ADD CiNii著者名検索機能の開発 var fm = document.authorsearchform; return ! (fm.q.value.length == 0 || fm.q.value == ""); } function urlLengthCheckAuthor(){ // 20100202 ADD CiNii著者名検索機能の開発 if(! (window.attachEvent && !window.opera)){ return true; } var fm = document.authorsearchform; // 20100607 MOD START CiNii実験機と本番機のソース共通化改修 var url = "http://".concat(window.location.hostname).concat("/author"); var total = url.length; if(fm.q.value != "" && fm.q.value.length != 0){total += encodeURIComponent(fm.q.value).length + 3} total += encodeURIComponent(fm.count.value).length + 7; total += encodeURIComponent(fm.sortorder.value).length + 11; total += 7; // type if(total > 2083) { alert("URLの長さが2083文字を超えました。"); return false; } return true; } function allclear(searchMode) { // 20100202 ADD CiNii著者名検索機能の開発 document.searchform.q.value = ""; document.searchform.q.style.color = "#999999"; document.searchform.title.value = ""; document.searchform.author.value = ""; document.searchform.affiliation.value = ""; document.searchform.journal.value = ""; document.searchform.issn.value = ""; document.searchform.volume.value = ""; document.searchform.issue.value = ""; document.searchform.page.value = ""; document.searchform.publisher.value = ""; document.searchform.references.value = ""; document.searchform.year_from.value = ""; document.searchform.year_to.value = ""; document.authorsearchform.q.value = ""; document.authorsearchform.q.style.color = "#999999"; // 20110126 ADD START CiNii全文検索機能の開発 document.fulltextsearchform.q.value = ""; document.fulltextsearchform.q.style.color = "#999999"; // 20110126 ADD END CiNii全文検索機能の開発 switch(searchMode){ case 0: //Show Article search form displaySearchBox(1); document.getElementById("filter_all_normal").checked = true; document.getElementById("validation_error").innerHTML = ''; document.getElementById("validation_error").style.display = "none"; break; case 1: //Show Author search form document.getElementById("author_validation_error").innerHTML = ''; document.getElementById("author_validation_error").style.display = "none"; break; // 20110126 ADD START CiNii全文検索機能の開発 case 2: //Show FullText search form document.getElementById("fulltext_validation_error").innerHTML = ''; document.getElementById("fulltext_validation_error").style.display = "none"; break; // 20110126 ADD END CiNii全文検索機能の開発 default: //Default break; }//end of switch window.placeholder();//20140707 sociomedia 追加 } function openauthordetail(nrid){ // 20100202 ADD CiNii著者名検索機能の開発 if(document.authorsearchform.q.value == ""){ document.authorsearchform.q.value = ""; } document.authorsearchform.action = "/nrid/" + nrid; document.authorsearchform.method = "post"; var count = getCookie('count'); if(count) { document.authorsearchform.count.value = count; } var sortorder = getCookie('sortorder'); if(sortorder) { document.authorsearchform.sortorder.value = sortorder; } document.authorsearchform.submit(); resetSearchbox(); return false; } function openAuthorALL(){ // 20100202 ADD CiNii著者名検索機能の開発 if(document.actionform.fileType.value == "default"){ return false; } if(document.actionform.submittime){ if((new Date()).getTime() - document.actionform.submittime.getTime() < 2000){ return false; }else{ document.actionform.submittime = new Date(); } }else{ document.actionform.submittime = new Date(); } if(document.actionform.fileType.value == 0){ var checkcount = 0; var uri = "/nrid/"; document.authorsearchform.method = "post"; var count = getCookie('count'); if(count) { document.authorsearchform.count.value = count; } var sortorder = getCookie('sortorder'); if(sortorder) { document.authorsearchform.sortorder.value = sortorder; } if(document.authorsearchform.q.value == ""){ document.authorsearchform.q.value = ""; } // 20100303 MODIFY START 20番目以降詳細画面が表示されない、1件の時にチェックなしでも詳細が開く不具合を修正 if(document.articlelist.docSelect.length){ for(var i=0; i" + errormessage + "
"; document.getElementById("validation_error2").style.display = "block"; return false; } return true; } function dofeedbackcancel(){ // 20100202 ADD CiNii著者名検索機能の開発 var fm = document.point; // 20100607 MOD START CiNii実験機と本番機のソース共通化改修 var topUrl = "http://".concat(window.location.hostname).concat("/"); if(fm.submittime){ if((new Date()).getTime() - fm.submittime.getTime() < 2000){ return false; }else{ fm.submittime = new Date(); } }else{ fm.submittime = new Date(); } if(fm.referer.value.length == 0) { window.location.href = topurl; } else { var lengthCheck = linkUrlLengthCheck(fm.referer.value); if(! lengthCheck){ window.location.href = topUrl; } else { window.location.href = fm.referer.value; } } } function doauthor(nrid){ // 20100223 ADD CiNii著者名検索機能の開発 document.authorsearchform.count.value = document.listoption.count.value; document.authorsearchform.sortorder.value = document.listoption.sortorder.value; document.authorsearchform.action = "/nrid/" + nrid; document.authorsearchform.method = "post"; document.authorsearchform.submit(); } function dofulltextsearch() { // 20110126 ADD CiNii全文検索機能の開発 var validResult = validCheckFullText(); var urlLengthResult = urlLengthCheckFullText(); var voidResult = voidCheckFullText(); var fm = document.fulltextsearchform; if(document.listoption){ fm.count.value = document.listoption.count.value; fm.sortorder.value = document.listoption.sortorder.value; } else { var fulltextCount = getCookie('fulltextCount'); if(fulltextCount) { fm.count.value = fulltextCount; } var fulltextSortorder = getCookie('fulltextSortorder'); if(fulltextSortorder) { fm.sortorder.value = fulltextSortorder; } } if(validResult && urlLengthResult && voidResult) { if(fm.submittime){ if((new Date()).getTime() - fm.submittime.getTime() < 2000){ return false; }else{ fm.submittime = new Date(); } }else{ fm.submittime = new Date(); } if(fm.q.value == ""){fm.q.value = "";} if(fm.q.value.length == 0){fm.q.disabled = true;} fm.submit(); fm.q.disabled = false; if(fm.q.value.length == 0){ fm.q.value = ""; fm.q.style.color = "#999999"; } } return validResult && urlLengthResult && voidResult; } function deleteCoordinatesByKeyFullText() { // 20110126 ADD CiNii全文検索機能の開発 if((window.attachEvent && !window.opera) && (event.keyCode == 13)){ dofulltextsearch(); return false; } return true; } function validCheckFullText(){ // 20110126 ADD CiNii全文検索機能の開発 var errormessage = ""; // 全文 if(! searchOperaorCheck(document.fulltextsearchform.q.value)){ errormessage = "検索語の入力が不適切です。項目間のOR検索、NOT検索は行えません。"; } if(errormessage.length > 0) { document.getElementById("fulltext_validation_error").innerHTML = "" + errormessage + "
"; document.getElementById("fulltext_validation_error").style.display = "block"; return false; } return true; } function voidCheckFullText(){ // 20110126 ADD CiNii全文検索機能の開発 var fm = document.fulltextsearchform; return ! (fm.q.value.length == 0 || fm.q.value == ""); } function urlLengthCheckFullText(){ // 20110126 ADD CiNii全文検索機能の開発 if(! (window.attachEvent && !window.opera)){ return true; } var fm = document.fulltextsearchform; var url = "http://".concat(window.location.hostname).concat("/fulltext"); var total = url.length; if(fm.q.value != "" && fm.q.value.length != 0){total += encodeURIComponent(fm.q.value).length + 3} total += encodeURIComponent(fm.count.value).length + 7; total += encodeURIComponent(fm.sortorder.value).length + 11; total += 7; // type if(total > 2083) { alert("URLの長さが2083文字を超えました。"); return false; } return true; } function doexport(type){ // 20120217 ADD 論文情報出力機能改善 document.exportarticle.fileType.value = type; if(type == 6){ document.exportarticle.target = "RefWorksMain"; } else if(type == 7) { document.exportarticle.target = "_self"; } else { document.exportarticle.target = "_blank"; } document.exportarticle.submit(); } function doBooksSearch(){ // 20120806 ADD CiNii Articlesの外部連携機能改修 var booksUrl = "/books/"; var query = ""; var searchMode = ""; var advancedFlg = 0; // art_advanced_searchがなければヘルプ画面 if (document.getElementById('art_advanced_search') == undefined) { booksUrl += "?l=ja"; location.href = booksUrl; return false; } var normalsearch = document.getElementById('art_advanced_search').style.display == 'none'; // 全文検索は対象外 if(document.getElementById('fulltext_search').className == 'current_mode') { booksUrl += "?l=ja"; location.href = booksUrl; return false; } // 現在選択中のタブを判別して入力されている検索語を取得 if(document.getElementById("tab_art") != null && document.getElementById("tab_art").className == "active") { searchMode = "article"; if(document.searchform.q.value.length > 0) { query = "&q=".concat(encodeURIComponent(document.searchform.q.value)); } if (!normalsearch) { if(document.searchform.title.value.length > 0 && document.searchform.journal.value.length > 0) { query = query.concat("&title=").concat(encodeURIComponent(document.searchform.journal.value)); advancedFlg = 1; } else if(document.searchform.title.value.length > 0 && document.searchform.journal.value.length == 0) { query = query.concat("&title=").concat(encodeURIComponent(document.searchform.title.value)); advancedFlg = 1; } else if(document.searchform.title.value.length == 0 && document.searchform.journal.value.length > 0) { query = query.concat("&title=").concat(encodeURIComponent(document.searchform.journal.value)); advancedFlg = 1; } if(document.searchform.author.value.length > 0) { query = query.concat("&author=").concat(encodeURIComponent(document.searchform.author.value)); advancedFlg = 1; } if(document.searchform.issn.value.length > 0) { query = query.concat("&issn=").concat(encodeURIComponent(document.searchform.issn.value)); advancedFlg = 1; } if(document.searchform.publisher.value.length > 0) { query = query.concat("&publisher=").concat(encodeURIComponent(document.searchform.publisher.value)); advancedFlg = 1; } } } else if(document.getElementById("tab_aut") != null && document.getElementById("tab_aut").className == "active") { searchMode = "author"; if(document.authorsearchform.q.value.length > 0) { query = "&name=".concat(encodeURIComponent(document.authorsearchform.q.value)); } } // URLにクエリーを連結 if(query.length > 0) { if(searchMode == "article") { if(advancedFlg == 0) { booksUrl = booksUrl.concat("search?advanced=false&l=ja"); } else { booksUrl = booksUrl.concat("search?advanced=true&l=ja"); } } else { booksUrl = booksUrl.concat("author?l=ja"); } booksUrl = booksUrl.concat(query); } else { booksUrl = booksUrl.concat("?l=ja"); } location.href = booksUrl; return false; }