// // java script support standard library // Copyright (C) bko 2001,11 // // [注] このファイルは、シフトJISで書かれています。 // シフトJIS以外のcharsetで書かれたHTMLファイルから呼び出すときは、 // 文字コードを変換して下さい。 // HTMLの文字コードと一致しないと、古いバージョンのブラウザでは // スクリプトの解釈が正しく実行されない場合があります。 ie4 = 0; ie5 = 0; ie6 = 0; ie7 = 0; ie8 = 0; ie9 = 0; nn4 = 0; nn5 = 0; nn6 = 0; nn7 = 0; ff1 = 0; ff2 = 0; ff3 = 0; op9 = 0; op10 = 0; op11 = 0; sf3 = 0; sf4 = 0; sf5 = 0; cr7 = 0; cr8 = 0; // browser identify var browser_ver = navigator.appVersion.substr(0,3); var browser_name = navigator.appName.substr(0,1); var user_agent = navigator.userAgent; var _ver; if (browser_name == "M") { if (browser_ver >= 4.0) ie4 = parseFloat(browser_ver); _ver = navigator.appVersion; var i = _ver.indexOf("MSIE "); if (i != -1) { _ver = _ver.substr(i+5).match(/\d+\.\d+/); if (_ver >= 5.0) {ie5 = parseFloat(_ver); ie4 = ie5;} if (_ver >= 6.0) ie6 = ie5; if (_ver >= 7.0) ie7 = ie6; if (_ver >= 8.0) ie8 = ie7; if (_ver >= 9.0) ie9 = ie8; } } else if (browser_name == "N") { var i = user_agent.indexOf("Firefox/"); var j = user_agent.indexOf("Chrome/"); var k = user_agent.indexOf("Safari/"); if (i != -1) { _ver = user_agent.substr(i+8).match(/\d+\.\d+/); if (_ver != null) ff1 = parseFloat(_ver); if (_ver >= 2.0) ff2 = ff1; if (_ver >= 3.0) ff3 = ff2; } else if (j != -1) { _ver = user_agent.substr(j+7).match(/\d+\.\d+/); if (_ver != null) cr7 = parseFloat(_ver); if (_ver >= 8.0) cr8 = cr7; } else if (k != -1) { k = user_agent.indexOf("Version/"); _ver = user_agent.substr(k+8).match(/\d+\.\d+/); if (_ver != null) sf3 = parseFloat(_ver); if (_ver >= 4.0) sf4 = sf3; if (_ver >= 5.0) sf5 = sf4; } else if (browser_ver >= 5.0) { nn5 = parseFloat(browser_ver); i = user_agent.search("Netscape[67]?/"); if (i != -1) { _ver = user_agent.substr(i+9,3); if (_ver.substr(0,1) == "/") { _ver = user_agent.substr(i+10,3); } if (_ver >= 6.0) {nn6 = parseFloat(_ver); nn5 = nn6;} if (_ver >= 7.0) nn7 = parseFloat(_ver); } } else if (browser_ver >= 4.0) nn4 = parseFloat(browser_ver); } else if (browser_name == "O") { var i = user_agent.indexOf("Version/"); if (i != -1) { _ver = user_agent.substr(i+8).match(/\d+\.\d+/); } else { _ver = browser_ver.match(/\d+\.\d+/); } if (_ver != null) op9 = parseFloat(_ver); if (_ver >= 10) op10 = op9; if (_ver >= 11) op11 = op10; } // Browser Despendence String if (nn4) { HIDDEN = "hide"; VISIBLE = "show"; } else { HIDDEN = "hidden"; VISIBLE = "visible"; } // Firefox で window.event をエミュレートする // "mousedown", "mouseover", "mouseout", "mousedrag", "click", "dblclick" if (ff2) { (function(){ for (var property in Event.prototype){ if(property.match(/MOUSE|CLICK/)){ window.addEventListener(property.toLowerCase(), function(e){ window.event = e;}, true); } } }()); } function GetScreenSize() { ax = screen.availWidth; ay = screen.availHeight; } function GetScreenXSize() { return screen.availWidth; } function GetScreenYSize() { return screen.availHeight; } function GetFrameSize() { wx = GetFrameXSize(); wy = GetFrameYSize(); } function GetFrameXSize() { var wx = null; if (ie4 && (! ie6)) { // 〜IE5 wx = document.body.clientWidth; } else if (nn4 || nn5) { // Netscape wx = window.innerWidth; } else if (document.compatMode == "CSS1Compat") { // 標準モード if (op9 && (op9 < 9.5)) { wx = document.body.clientWidth; } else { wx = document.documentElement.clientWidth; } } else if (document.compatMode == "BackCompat") { // compatible if (ie6 || op9) { wx = document.body.clientWidth; } else if (ff1 || sf3 || cr8) { wx = window.innerWidth; } } return wx; } function GetFrameYSize() { var wy = null; if (ie4 && (! ie6)) { // 〜IE5 wy = document.body.clientHeight; } else if (nn4 || nn5) { // Netscape wy = window.innerHeight; } else if (document.compatMode == "CSS1Compat") { // 標準モード if (op9 && (op9 < 9.5)) { wy = document.body.clientHeight; } else { wy = document.documentElement.clientHeight; } } else if (document.compatMode == "BackCompat") { // 互換モード if (ie6 || op9) { wy = document.body.clientHeight; } else if (ff1 || sf3 || cr8) { wy = window.innerHeight; } } return wy; } function GetWindowEventX() { var wpos = 0; if (ie6) { if (document.compatMode == "CSS1Compat") { // 標準モード wpos = window.event.clientX + document.documentElement.scrollLeft; } else if (document.compatMode == "BackCompat") { // 互換モード wpos = window.event.clientX + document.body.scrollLeft; } } else if (ie5) { // 〜IE5 wpos = window.event.clientX + document.body.scrollLeft; } else if (nn4 || nn5) { return null; // no longer support to these browsers } else if (ff1 || sf3 || op9 || cr8) { wpos = window.event.pageX; } return wpos; } function GetWindowEventY() { var wpos = 0; if (ie6) { if (document.compatMode == "CSS1Compat") { // 標準モード wpos = window.event.clientY + document.documentElement.scrollTop; } else if (document.compatMode == "BackCompat") { // 互換モード wpos = window.event.clientY + document.body.scrollTop; } } else if (ie5) { // 〜IE5 wpos = window.event.clientY + document.body.scrollTop; } else if (nn4 || nn5) { return null; // no longer support to these browsers } else if (ff1 || sf3 || op9 || cr8) { wpos = window.event.pageY; } return wpos; } function GetScrollX() { var ofs = 0; if (ie6 || ff1 || op9) { if (document.compatMode == "CSS1Compat") { // 標準モード ofs = document.documentElement.scrollLeft; } else if (document.compatMode == "BackCompat") { // 互換モード ofs = document.body.scrollLeft; } } else if (ie5 || sf3 || nn5 || cr8) { ofs = document.body.scrollLeft; } else if (nn4) { return null; // no longer support to this browser } return ofs; } function GetScrollY() { var ofs = 0; if (ie6 || ff1 || op9) { if (document.compatMode == "CSS1Compat") { // 標準モード ofs = document.documentElement.scrollTop; } else if (document.compatMode == "BackCompat") { // 互換モード ofs = document.body.scrollTop; } } else if (ie5 || sf3 || nn5 || cr8) { ofs = document.body.scrollTop; } else if (nn4) { return null; // no longer support to this browser } return ofs; } function elm(name) { var obj = elmobj(name); if (obj == null) return null; if (nn4) return obj; return obj.style; } function elmobj(name) { var obj = null; if (ie4 || op9) obj = document.all[name]; else if (nn5 || ff1 || sf3 || cr8) obj = document.getElementById(name); else if (nn4) obj = eval("document." + name); return obj; } function pxtoint(px) { if (nn4) return px; var i = px.indexOf("px"); if (i == -1) i = px.indexOf("pt"); if (i == -1) return parseInt(px); var v = px.substring(0,i); return parseInt(v); } function inttopx(sx) { return sx + "px"; } function parseCookie() { myCookie = new Array(); var cook = document.cookie.split("; "); for (var i = 0; i < cook.length; ++i) { var c = cook[i].split("="); myCookie[c[0]] = unescape(c[1]); } } function parseQuery() { myQuery = new Array(); var q = window.location.search; if (q.substr(0,1) != "?") return; q = q.substr(1); var query = q.split("&"); for (var i = 0; i < query.length; ++i) { var qq = query[i].split("="); myQuery[unescape(qq[0])] = unescape(qq[1]); } } // argument "expires" require Date object // expires = new Date( ); // expires.setDate(expires.getDate( ) + 50); // after 50 days // expires.setMonth(expires.getMonth( ) + 6); // after 6 months // expires.setFullYear(expires.getFullYear( ) + 10); // after 10years function setCookie(name,value,domain,path,expires) { if ((name == null) || (name == "")) return; if (value == null) { expires = new Date(); expires.setDate(expires.getDate( ) - 1); value = "null"; } var c = name + "=" + escape(value); if (domain != null) { c = c + "; domain=" + domain; } if (path != null) { c = c + "; path=" + path; } if (expires != null) { c = c + "; expires=" + expires.toGMTString( ); } document.cookie = c; } function addEvent(object,func,type) { if (ie5) { object.attachEvent("on"+type,func); } else if (ie4) { } else { object.addEventListener(type,func,false); } } function removeEvent(object,func,type) { if (ie5) { object.detachEvent("on"+type,func); } else if (ie4) { } else { object.removeEventListener(type,func,false); } } function addQueryParamforNoCache(url) { var nocache = new Date(); if (url.indexOf("?") == -1) { url = url + "?nc=" + nocache.getTime(); } else { url = url + "&nc=" + nocache.getTime(); } return url; }