1// The cookie name to use for storing the blog-side comment session cookie. 2var mtCookieName = ""; 3var mtCookieDomain = ""; 4var mtCookiePath = ""; 5var mtCookieTimeout = ; 6 7 8function mtHide(id) { 9 var el = (typeof id == "string") ? document.getElementById(id) : id; 10 if (el) el.style.display = 'none'; 11} 12 13 14function mtShow(id) { 15 var el = (typeof id == "string") ? document.getElementById(id) : id; 16 if (el) el.style.display = 'block'; 17} 18 19 20function mtAttachEvent(eventName,func) { 21 var onEventName = 'on' + eventName; 22 var old = window[onEventName]; 23 if( typeof old != 'function' ) 24 window[onEventName] = func; 25 else { 26 window[onEventName] = function( evt ) { 27 old( evt ); 28 return func( evt ); 29 }; 30 } 31} 32 33 34function mtFireEvent(eventName,param) { 35 var fn = window['on' + eventName]; 36 if (typeof fn == 'function') return fn(param); 37 return; 38} 39 40if(!this.JSON){JSON={};}(function(){function f(n){return n<10?'0'+n:n;}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}if(typeof rep==='function'){value=rep.call(holder,key,value);}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v;}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':value});};}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}return reviver.call(holder,key,value);}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}throw new SyntaxError('JSON.parse');};}}()); 41 42var MT = window.MT || {}; 43 44MT.cons = function () { 45 return { 46 LOG : 'log', 47 WARN : 'warn', 48 DEBUG : 'debug', 49 INFO : 'info', 50 ERR : 'error', 51 JSON : 'json' 52 }; 53}(); 54 55 56MT.core = function (o) { 57 var _debug = false;
58 59 return { 60 61 connect : function (url,respType,respHandler) { 62 var xh = mtGetXmlHttp(); 63 if (!xh) return false; 64 65 xh.onreadystatechange = function() { 66 if ( xh.readyState == 4 ) { 67 if ( xh.status && ( xh.status != 200 ) ) { 68 // error - ignore 69 } else { 70 switch (respType) { 71 case 'json': 72 respHandler(JSON.parse(xh.responseText)); 73 break; 74 75 case 'xml': 76 break; 77 78 case 'text': 79 break; 80 } 81 } 82 } 83 }; 84 85 xh.open('GET',url); 86 xh.send(null); 87 }, 88 89 getEl : function (el) { 90 return MT.util.checkNodeType(el)==='element' ? id : (document.getElementById(el) || false); 91 }, 92 93 addEvent : function (el,type,func,obj) { 94 if(!obj && document.addEventListener) { 95 el.addEventListener(type,func,false); 96 } else if(obj && document.addEventListener) { 97 el.addEventListener(type,function () { 98 func.call(obj,event); 99 },false); 100 } else { 101 if(obj) { 102 el.attachEvent('on' + type,function () { 103 func.call(obj,event); 104 }); 105 } else { 106 el.attachEvent('on' + type,function () { 107 func.call(el,event); 108 }); 109 } 110 } 111 }, 112 113 114 log : function (level,msg) { 115 if(_debug && window.console) { 116 switch(level) { 117 case 'warn': 118 case 'debug': 119 case 'info': 120 case 'error': 121 case 'log': 122 console[level](msg); 123 break; 124 125 default: 126 return false; 127 } 128 } else { 129 return false; 130 } 131 } 132 } 133}(); 134 135 136MT.util = function () { 137 return { 138 toggleVisibility : { 139 show : function () { 140 var i = arguments.length; 141 142 while(i--) { 143 if(MT.util.checkNodeType(arguments[i])==='element') { 144 arguments[i].style.visibility = 'visible'; 145 } else { 146 MT.core.getEl(arguments[i]).style.visibility = 'visible'; 147 } 148 } 149 }, 150 151 hide : function () { 152 var i = arguments.length; 153 while(i--) { 154 if(MT.util.checkNodeType(arguments[i])==='element') { 155 arguments[i].style.visibility = 'hidden'; 156 } else { 157 MT.core.getEl(arguments[i]).style.visibility = 'hidden'; 158 } 159 } 160 } 161 }, 162 163 toggleDisplay : { 164 show : function () { 165 var i = arguments.length; 166 while(i--) { 167 if(MT.util.checkNodeType(arguments[i])==='element') { 168 arguments[i].style.display = ''; 169 } else { 170 MT.core.getEl(arguments[i]).style.display = ''; 171 } 172 } 173 }, 174 175 hide : function () { 176 var i = arguments.length; 177 while(i--) { 178 if(MT.util.checkNodeType(arguments[i])==='element') { 179 arguments[i].style.display = 'none'; 180 } else { 181 MT.core.getEl(arguments[i]).style.display = 'none'; 182 } 183 } 184 } 185 }, 186 187 188 findDefiningParent : function (origin) { 189 if(MT.util.checkNodeType(origin)==='element') { 190 for(var node=origin.parentNode;node.parentNode;node=node.parentNode) { 191 if((node.hasAttribute && node.hasAttribute('id')) || node.getAttribute('id')) { 192 return node; 193 } 194 } 195 } 196 return false; 197 }, 198 199 200 checkNodeType : function (obj) { 201 if (obj && obj.nodeName){ 202 switch (obj.nodeType) { 203 case 1: return 'element'; 204 case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace'; 205 } 206 } 207 } 208 } 209}(); 210 211 212(function () { 213 var M = MT.core, 214 c = MT.cons, 215 u = MT.util, 216 cache, 217 isLoading, 218 direction, 219 currentComments, 220 commentAnchor, 221 commentArrId, 222 commentsPerPage, 223 commentsTotalPages, 224 loadingIcon, 225 pageNum, 226 commentsOffset, 227 totalComments, 228 entryID, 229 commentContentDiv, 230 topNav, 231 nav,
232 currentCommentsSpan, 233 topCurrentCommentsSpan; 234 235 M.addEvent(window,'load',_init); 236 237 /** 238 * Initializes the class 239 * 240 * @return void 241 */ 242 function _init () { 243 if(!MT.entryCommentCount) { 244 return; 245 } 246 247 _initializeVariables(); 248 _setCommentOffset(false); 249 _checkForAnchor(); 250 _setCurrentComments(); 251 _toggleNavLinks(); 252 _initializeEvents(); 253 } 254 255 256 function _initializeVariables() { 257 cache = {}; 258 isLoading = false; 259 commentAnchor = ''; 260 commentArrId = ''; 261 commentsPerPage = MT.commentsPerPage || 50; 262 currentComments = ''; 263 direction = 'ascend'; 264 entryID = MT.entryID; 265 totalComments = MT.entryCommentCount; 266 commentsTotalPages = Math.ceil(totalComments / commentsPerPage); 267 pageNum = 1; 268 269 loadingIcon = "<img title='Loading...' src='https://www.nabunken.go.jp/mt-static/images/indicator.white.gif' alt='Loading' />"; 270 271 commentContentDiv = M.getEl("comments-content"); 272 topNav = M.getEl("top-comment-nav"); 273 nav = M.getEl("comment-nav"); 274 275 currentCommentsSpan = M.getEl("current-comments"); 276 topCurrentCommentsSpan = M.getEl("top-current-comments"); 277 } 278 279 function _initializeEvents() { 280 if (commentsPerPage < totalComments) { 281 M.addEvent(nav,'click',_handleEvents); 282 M.addEvent(topNav,'click',_handleEvents); 283 } 284 } 285 286 287 function _checkForAnchor() { 288 var found = String(window.location.hash).match( /comment-(\d{1,6})/ ); 289 290 if (found) { 291 M.log(c.DEBUG,found); 292 if (!M.getEl(found[0]).hasOwnProperty('className')) { 293 if (_findIdMatch(found[1])) { 294 pageNum = Math.floor(commentArrId / commentsPerPage) + 1; 295 M.log(c.DEBUG,'Comment Array Id: ' + commentArrId); 296 M.log(c.DEBUG,'Comments Per Page: ' + commentsPerPage); 297 M.log(c.DEBUG,'Page Number: ' + pageNum); 298 M.log(c.DEBUG,'Comment Offset: ' + _getCommentOffset()); 299 _updateComments(); 300 } 301 } 302 } 303 } 304 305 306 function _setCommentOffset() { 307 commentsOffset = commentsPerPage * (pageNum-1); 308 } 309 310 311 function _getCommentOffset() { 312 return commentsOffset; 313 } 314 315 316 function _handleEvents (e) { 317 var origin = e.target || e.srcElement, 318 parentId; 319 320 // stupid IE 321 origin = origin.id && M.getEl(origin.id) || false; 322 323 if(origin) { 324 parentId = u.checkNodeType(origin.parentNode)==='element' && origin.parentNode.getAttribute('id') && origin.parentNode.id; 325 } else { 326 return false; 327 } 328 329 switch(origin.nodeName) { 330 case 'A': 331 switch (parentId) { 332 case 'prev-comments': 333 case 'top-prev-comments': 334 if(e.preventDefault) { 335 e.preventDefault(); 336 } else { 337 e.returnValue = false;
338 } 339 if(!isLoading) { 340 _previousPage(); 341 } 342 break; 343 case 'next-comments': 344 case 'top-next-comments': 345 if(e.preventDefault) { 346 e.preventDefault(); 347 } else { 348 e.returnValue = false; 349 } 350 if(!isLoading) { 351 _nextPage(); 352 } 353 break; 354 } 355 break; 356 } 357 } 358 359 360 function _toggleNavLinks () { 361 M.log(c.DEBUG,M.getEl('top-prev-comments')); 362 if(pageNum <= commentsTotalPages && pageNum !== 1) { 363 u.toggleVisibility.show('prev-comments'); 364 u.toggleVisibility.show('top-prev-comments'); 365 } 366 367 if(pageNum >= 1 && pageNum !== commentsTotalPages) { 368 u.toggleVisibility.show('next-comments'); 369 u.toggleVisibility.show('top-next-comments'); 370 } 371 372 if(pageNum===1 || nav.style.visibility==='hidden') { 373 u.toggleVisibility.hide('prev-comments'); 374 u.toggleVisibility.hide('top-prev-comments'); 375 } 376 377 if(pageNum===commentsTotalPages || nav.style.visibility==='hidden') { 378 u.toggleVisibility.hide('next-comments'); 379 u.toggleVisibility.hide('top-next-comments'); 380 } 381 } 382 383 384 function _nextPage () { 385 if(pageNum < commentsTotalPages) { 386 pageNum++; 387 _updateComments(); 388 } 389 } 390 391 392 function _previousPage() { 393 if(pageNum > 1) { 394 pageNum--; 395 _updateComments(); 396 } 397 } 398 399 400 function _findIdMatch (id) { 401 var len = MT.commentIds.length; 402 403 while (len--) { 404 if (MT.commentIds[len] == id) { 405 commentAnchor = "comment-" + id; 406 commentArrId = len; 407 return true; 408 } 409 } 410 411 return false; 412 } 413 414 415 function _setCurrentComments() { 416 var commentsOnPage = pageNum != commentsTotalPages ? commentsOffset + commentsPerPage : totalComments; 417 418 _setCurrentCommentsContent([commentsOffset+1," - ",commentsOnPage].join('')); 419 } 420 421 422 function _setCurrentCommentsContent(currentCommentsHTML) { 423 currentCommentsSpan.innerHTML = currentCommentsHTML; 424 topCurrentCommentsSpan.innerHTML = currentCommentsHTML; 425 } 426 427 428 function _setCommentContent(commentHTML) { 429 commentContentDiv.innerHTML = commentHTML; 430 } 431 432 433 function _updateComments() { 434 var comments, jsonUrl, cacheKey, offset; 435 isLoading = true; 436 _setCurrentCommentsContent(loadingIcon); 437 _setCommentOffset(); 438 439 offset = _getCommentOffset(); 440 cacheKey = [direction, entryID, commentsPerPage, offset] 441 .join('-') 442 .replace(/[^a-zA-Z0-9-]/g, ''); 443 jsonUrl = [ 444 "https://www.nabunken.go.jp/mt/mt-comments.cgi?__mode=comment_listing&direction=", 445 direction, 446 "&entry_id=", 447 entryID, 448 "&limit=", 449 commentsPerPage, 450 "&offset=", 451 offset, 452 "&cacheKey=", 453 cacheKey, 454 "&jsonp=mtUpdateCommentsCallback", 455 "&ts=", 456 new Date().getTime() 457 ].join(''); 458 459 if (!commentAnchor) { 460 commentAnchor = "comments-content"; 461 } 462 463 if(cache.hasOwnProperty(cacheKey)) { 464 _refreshComments(cache[cacheKey]); 465 isLoading = false; 466 } else { 467 var script = document.createElement('script'); 468 script.src = jsonUrl; 469 (document.getElementsByTagName('head'))[0].appendChild(script); 470 } 471 } 472 473 window['mtUpdateCommentsCallback'] = function(json) { 474 cache[json.cacheKey] = json.comments; 475 _refreshComments(json.comments); 476 isLoading = false; 477 } 478 479 480 function _refreshComments(commentData) { 481 _setCommentContent(commentData); 482 _setCurrentComments(); 483 window.location.hash = 'reset'; 484 window.location.hash = commentAnchor; 485 _toggleNavLinks(); 486 } 487})(); 488 489 490function mtRelativeDate(ts, fds) { 491 var now = new Date(); 492 var ref = ts; 493 var delta = Math.floor((now.getTime() - ref.getTime()) / 1000); 494 495 var str; 496 if (delta < 60) { 497 str = 'ç´å'; 498 } else if (delta <= 86400) { 499 // less than 1 day 500 var hours = Math.floor(delta / 3600); 501 var min = Math.floor((delta % 3600) / 60); 502 if (hours == 1) 503 str = '1 æéå'; 504 else if (hours > 1) 505 str = '2 æéå'.replace(/2/, hours); 506 else if (min == 1) 507 str = '1 åå'; 508 else 509 str = '2 åå'.replace(/2/, min); 510 } else if (delta <= 604800) { 511 // less than 1 week 512 var days = Math.floor(delta / 86400); 513 var hours = Math.floor((delta % 86400) / 3600); 514 if (days == 1) 515 str = '1 æ¥å'; 516 else if (days > 1) 517 str = '2 æ¥å'.replace(/2/, days); 518 else if (hours == 1) 519 str = '1 æéå'; 520 else 521 str = '2 æéå'.replace(/2/, hours); 522 } 523 return str ? str : fds; 524} 525 526 527function mtEditLink(entry_id, author_id) { 528 529 530} 531 532 533function mtCommentFormOnFocus() { 534 // if CAPTCHA is enabled, this causes the captcha image to be 535 // displayed if it hasn't been already. 536 mtShowCaptcha(); 537} 538 539 540var mtCaptchaVisible = false;
541function mtShowCaptcha() { 542 var u = mtGetUser(); 543 if ( u && u.is_authenticated ) return; 544 if (mtCaptchaVisible) return; 545 var div = document.getElementById('comments-open-captcha'); 546 if (div) { 547 div.innerHTML = ''; 548 mtCaptchaVisible = true; 549 } 550} 551 552 553 554var is_preview; 555var user; 556 557function mtSetUser(u) { 558 if (u) { 559 // persist this 560 user = u; 561 mtSaveUser(); 562 // sync up user greeting 563 mtFireEvent('usersignin'); 564 } 565} 566 567 568function mtEscapeJS(s) { 569 s = s.replace(/'/g, "'"); 570 return s; 571} 572 573 574function mtUnescapeJS(s) { 575 s = s.replace(/'/g, "'"); 576 return s; 577} 578 579 580function mtBakeUserCookie(u) { 581 var str = ""; 582 if (u.name) str += "name:'" + mtEscapeJS(u.name) + "';"; 583 if (u.url) str += "url:'" + mtEscapeJS(u.url) + "';"; 584 if (u.email) str += "email:'" + mtEscapeJS(u.email) + "';"; 585 if (u.is_authenticated) str += "is_authenticated:'1';"; 586 if (u.profile) str += "profile:'" + mtEscapeJS(u.profile) + "';"; 587 if (u.userpic) str += "userpic:'" + mtEscapeJS(u.userpic) + "';"; 588 if (u.sid) str += "sid:'" + mtEscapeJS(u.sid) + "';"; 589 str += "is_trusted:'" + (u.is_trusted ? "1" : "0") + "';"; 590 str += "is_author:'" + (u.is_author ? "1" : "0") + "';"; 591 str += "is_banned:'" + (u.is_banned ? "1" : "0") + "';"; 592 str += "can_post:'" + (u.can_post ? "1" : "0") + "';"; 593 str += "can_comment:'" + (u.can_comment ? "1" : "0") + "';"; 594 str = str.replace(/;$/, ''); 595 return str; 596} 597 598 599function mtUnbakeUserCookie(s) { 600 if (!s) return; 601 602 var u = {}; 603 var m; 604 while (m = s.match(/^((name|url|email|is_authenticated|profile|userpic|sid|is_trusted|is_author|is_banned|can_post|can_comment):'([^']+?)';?)/)) { 605 s = s.substring(m[1].length); 606 if (m[2].match(/^(is|can)_/)) // boolean fields 607 u[m[2]] = m[3] == '1' ? true : false; 608 else 609 u[m[2]] = mtUnescapeJS(m[3]); 610 } 611 if (u.is_authenticated) { 612 u.is_anonymous = false; 613 } else { 614 u.is_anonymous = true; 615 u.can_post = false; 616 u.is_author = false; 617 u.is_banned = false; 618 u.is_trusted = false; 619 } 620 return u; 621} 622 623 624function mtGetUser() { 625 if (!user) { 626 var cookie = mtGetCookie(mtCookieName); 627 if (!cookie) return; 628 user = mtUnbakeUserCookie(cookie); 629 if (! user) { 630 user = {}; 631 user.is_anonymous = true; 632 user.can_post = false; 633 user.is_author = false; 634 user.is_banned = false; 635 user.is_trusted = false; 636 } 637 } 638 return user; 639} 640 641 642var mtFetchedUser = false; 643 644function mtFetchUser(cb) { 645 if (!cb) cb = 'mtSetUser'; 646 if ( ( cb == 'mtSetUser' ) && mtGetUser() ) { 647 var url = document.URL; 648 url = url.replace(/#.+$/, ''); 649 url += '#comments-open'; 650 location.href = url; 651 } else { 652 // we aren't using AJAX for this, since we may have to request 653 // from a different domain. JSONP to the rescue. 654 mtFetchedUser = true; 655 var u = mtGetUser(); 656 var script = document.createElement('script'); 657 var ts = new Date().getTime(); 658 script.src = 'https://www.nabunken.go.jp/mt/mt-comments.cgi?__mode=userinfo&blog_id=33&jsonp=' + cb + '&ts=' + ts + '&sid=' + u.sid; 659 (document.getElementsByTagName('head'))[0].appendChild(script); 660 } 661} 662 663function mtVerifySession(cb) { 664 if (!cb) return; 665 var script = document.createElement('script'); 666 var ts = new Date().getTime(); 667 var u = mtGetUser(); 668 script.src = 'https://www.nabunken.go.jp/mt/mt-comments.cgi?__mode=verify_session&blog_id=33&jsonp=' + cb + '&ts=' + ts + '&sid=' + u.sid; 669 (document.getElementsByTagName('head'))[0].appendChild(script); 670} 671 672 673 674function mtRememberMeOnClick(b) { 675 if (!b.checked) 676 mtClearUser(b.form); 677 return true; 678} 679 680 681 682var mtRequestSubmitted = false; 683function mtCommentOnSubmit(f) { 684 if (!mtRequestSubmitted) { 685 mtRequestSubmitted = true; 686 687 if (f.armor) 688 f.armor.value = '6809332e604a4080e5cc64c3aa74a4ccc49ca947'; 689 if (f.bakecookie && f.bakecookie.checked) 690 mtSaveUser(f); 691 692 // disable submit buttons 693 if (f.preview_button) f.preview_button.disabled = true; 694 if (f.post) f.post.disabled = true; 695 696 var u = mtGetUser(); 697 if ( !is_preview && ( u && u.is_authenticated ) ) { 698 // validate session; then submit 699 mtVerifySession('mtCommentSessionVerify'); 700 return false;
701 } 702 703 return true; 704 } 705 return false; 706} 707 708function mtCommentSessionVerify(app_user) { 709 var f = document['comments_form']; 710 if ( app_user && app_user.verified ) { 711 f.submit(); 712 } else { 713 alert('ã»ãã·ã§ã³ã®æå¹æéãåãã¦ãã¾ããå度ãµã¤ã³ã¤ã³ãã¦ãã ããã'); 714 mtClearUser(); 715 mtFireEvent('usersignin'); 716 717 } 718} 719 720function mtUserOnLoad() { 721 var u = mtGetUser(); 722 723 // if the user is authenticated, hide the 'anonymous' fields 724 // and any captcha input if already shown 725 if ( document.getElementById('comments-form')) { 726 if ( u && u.is_authenticated ) { 727 mtShow('comments-form'); 728 mtHide('comments-open-data'); 729 if (mtCaptchaVisible) 730 mtHide('comments-open-captcha'); 731 } else { 732 733 } 734 if ( u && u.is_banned ) 735 mtHide('comments-form'); 736 737 // if we're previewing a comment, make sure the captcha 738 // field is visible 739 if (is_preview) 740 mtShowCaptcha(); 741 else 742 mtShowGreeting(); 743 744 // populate anonymous comment fields if user is cookied as anonymous 745 var cf = document['comments_form']; 746 if (cf) { 747 if (u && u.is_anonymous) { 748 if (u.email) cf.email.value = u.email; 749 if (u.name) cf.author.value = u.name; 750 if (u.url) cf.url.value = u.url; 751 if (cf.bakecookie) 752 cf.bakecookie.checked = u.name || u.email; 753 } else { 754 if (u && u.sid && cf.sid) 755 cf.sid.value = u.sid; 756 } 757 if (cf.post && cf.post.disabled) 758 cf.post.disabled = false; 759 if (cf.preview_button && cf.preview_button.disabled) 760 cf.preview_button.disabled = false; 761 mtRequestSubmitted = false; 762 } 763 } 764} 765 766 767 768 769function mtEntryOnLoad() { 770 var cf = document['comments_form']; 771 if (cf && cf.preview) cf.preview.value = ''; 772 mtHide('trackbacks-info'); 773 mtHide('comments-open'); 774 mtFireEvent('usersignin'); 775} 776 777function mtEntryOnUnload() { 778 if (mtRequestSubmitted) { 779 var cf = document['comments_form']; 780 if (cf) { 781 if (cf.post && cf.post.disabled) 782 cf.post.disabled = false; 783 if (cf.preview_button && cf.preview_button.disabled) 784 cf.preview_button.disabled = false; 785 } 786 mtRequestSubmitted = false; 787 } 788 return true; 789} 790 791mtAttachEvent('usersignin', mtUserOnLoad); 792 793 794 795function mtSignIn() { 796 var doc_url = document.URL; 797 doc_url = doc_url.replace(/#.+/, ''); 798 var url = ''; 799 if (is_preview) { 800 if ( document['comments_form'] ) { 801 var entry_id = document['comments_form'].entry_id.value; 802 url += '&entry_id=' + entry_id; 803 } else { 804 url += '&return_url=https%3A%2F%2Fwww.nabunken.go.jp%2Fasuka%2Fkikaku%2F'; 805 } 806 } else { 807 url += '&return_url=' + encodeURIComponent(doc_url); 808 } 809 mtClearUser(); 810 location.href = url; 811} 812 813function mtSignInOnClick(sign_in_element) { 814 var el; 815 if (sign_in_element) { 816 // display throbber 817 el = document.getElementById(sign_in_element); 818 if (!el) // legacy MT 4.x element id 819 el = document.getElementById('comment-form-external-auth'); 820 } 821 if (el) 822 el.innerHTML = 'ãµã¤ã³ã¤ã³ãã¾ã... <span class="status-indicator"> </span>'; 823 824 mtClearUser(); // clear any 'anonymous' user cookie to allow sign in 825 mtSignIn(); 826 return false; 827} 828 829function mtSetUserOrLogin(u) { 830 if (u && u.is_authenticated) { 831 mtSetUser(u); 832 } else { 833 // user really isn't logged in; so let's do this! 834 mtSignIn(); 835 } 836} 837 838 839function mtSignOut(entry_id) { 840 mtClearUser(); 841 var doc_url = document.URL; 842 doc_url = doc_url.replace(/#.+/, ''); 843 var url = ''; 844 if (is_preview) { 845 if ( document['comments_form'] ) { 846 var entry_id = document['comments_form'].entry_id.value;
847 url += '&entry_id=' + entry_id; 848 } else { 849 url += '&return_url=https%3A%2F%2Fwww.nabunken.go.jp%2Fasuka%2Fkikaku%2F'; 850 } 851 } else { 852 url += '&return_url=' + encodeURIComponent(doc_url); 853 } 854 location.href = url; 855} 856 857 858function mtSignOutOnClick() { 859 mtSignOut(); 860 return false; 861} 862 863 864 865function mtShowGreeting() { 866 867 mtShowCaptcha(); 868 869} 870 871 872 873function mtReplyCommentOnClick(parent_id, author) { 874 mtShow('comment-form-reply'); 875 876 var checkbox = document.getElementById('comment-reply'); 877 var label = document.getElementById('comment-reply-label'); 878 var text = document.getElementById('comment-text'); 879 880 // Populate label with new values 881 var reply_text = '\<a href=\"#comment-__PARENT__\" onclick=\"location.href=this.href; return false\"\>__AUTHOR__ããã®ã³ã¡ã³ã\<\/a\>ã«è¿ä¿¡'; 882 reply_text = reply_text.replace(/__PARENT__/, parent_id); 883 reply_text = reply_text.replace(/__AUTHOR__/, author); 884 label.innerHTML = reply_text; 885 886 checkbox.value = parent_id; 887 checkbox.checked = true; 888 try { 889 // text field may be hidden 890 text.focus(); 891 } catch(e) { 892 } 893 894 mtSetCommentParentID(); 895} 896 897 898function mtSetCommentParentID() { 899 var checkbox = document.getElementById('comment-reply'); 900 var parent_id_field = document.getElementById('comment-parent-id'); 901 if (!checkbox || !parent_id_field) return; 902 903 var pid = 0; 904 if (checkbox.checked == true) 905 pid = checkbox.value; 906 parent_id_field.value = pid; 907} 908 909 910function mtSaveUser(f) { 911 // We can't reliably store the user cookie during a preview. 912 if (is_preview) return; 913 914 var u = mtGetUser(); 915 916 if (f && (!u || u.is_anonymous)) { 917 if ( !u ) { 918 u = {}; 919 u.is_authenticated = false; 920 u.can_comment = true; 921 u.is_author = false; 922 u.is_banned = false; 923 u.is_anonymous = true; 924 u.is_trusted = false; 925 } 926 if (f.author != undefined) u.name = f.author.value; 927 if (f.email != undefined) u.email = f.email.value; 928 if (f.url != undefined) u.url = f.url.value; 929 } 930 931 if (!u) return; 932 933 var cache_period = mtCookieTimeout * 1000; 934 935 // cache anonymous user info for a long period if the 936 // user has requested to be remembered 937 if (u.is_anonymous && f && f.bakecookie && f.bakecookie.checked) 938 cache_period = 365 * 24 * 60 * 60 * 1000; 939 940 var now = new Date(); 941 mtFixDate(now); 942 now.setTime(now.getTime() + cache_period); 943 944 var cmtcookie = mtBakeUserCookie(u); 945 mtSetCookie(mtCookieName, cmtcookie, now, mtCookiePath, mtCookieDomain, 946 location.protocol == 'https:'); 947} 948 949 950function mtClearUser() { 951 user = null; 952 mtDeleteCookie(mtCookieName, mtCookiePath, mtCookieDomain, 953 location.protocol == 'https:'); 954} 955 956 957function mtSetCookie(name, value, expires, path, domain, secure) { 958 if (domain && ( domain.match(/^\.?localhost$/) || domain.match(/^[0-9\.]+$/) )) 959 domain = null; 960 var curCookie = name + "=" + encodeURIComponent(value) + 961 (expires ? "; expires=" + expires.toGMTString() : "") + 962 (path ? "; path=" + path : "") + 963 (domain ? "; domain=" + domain : "") + 964 (secure ? "; secure" : ""); 965 document.cookie = curCookie; 966} 967 968 969function mtGetCookie(name) { 970 var prefix = name + '='; 971 var c = document.cookie; 972 var cookieStartIndex = c.indexOf(prefix); 973 if (cookieStartIndex == -1) 974 return ''; 975 var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length); 976 if (cookieEndIndex == -1) 977 cookieEndIndex = c.length; 978 var this_cookie = c.substring(cookieStartIndex + prefix.length, cookieEndIndex); 979 if ( this_cookie.match(/\%u/i) ) { 980 return ''; 981 } 982 return decodeURIComponent( this_cookie ); 983} 984 985 986function mtDeleteCookie(name, path, domain, secure) { 987 if (mtGetCookie(name)) { 988 if (domain && domain.match(/^\.?localhost$/)) 989 domain = null; 990 document.cookie = name + "=" + 991 (path ? "; path=" + path : "") + 992 (domain ? "; domain=" + domain : "") + 993 (secure ? "; secure" : "") + 994 "; expires=Thu, 01-Jan-70 00:00:01 GMT"; 995 } 996} 997 998function mtFixDate(date) {
999 var skew = (new Date(0)).getTime(); 1000 if (skew > 0) 1001 date.setTime(date.getTime() - skew); 1002} 1003 1004 1005function mtGetXmlHttp() { 1006 if ( !window.XMLHttpRequest ) { 1007 window.XMLHttpRequest = function() { 1008 var types = [ 1009 "Microsoft.XMLHTTP", 1010 "MSXML2.XMLHTTP.5.0", 1011 "MSXML2.XMLHTTP.4.0", 1012 "MSXML2.XMLHTTP.3.0", 1013 "MSXML2.XMLHTTP" 1014 ]; 1015 1016 for ( var i = 0; i < types.length; i++ ) { 1017 try { 1018 return new ActiveXObject( types[ i ] ); 1019 } catch( e ) {} 1020 } 1021 1022 return undefined; 1023 }; 1024 } 1025 if ( window.XMLHttpRequest ) 1026 return new XMLHttpRequest(); 1027} 1028 1029// BEGIN: fast browser onload init 1030// Modifications by David Davis, DWD 1031// Dean Edwards/Matthias Miller/John Resig 1032// http://dean.edwards.name/weblog/2006/06/again/?full#comment5338 1033 1034function mtInit() { 1035 // quit if this function has already been called 1036 if (arguments.callee.done) return; 1037 1038 // flag this function so we don't do the same thing twice 1039 arguments.callee.done = true; 1040 1041 // kill the timer 1042 // DWD - check against window 1043 if ( window._timer ) clearInterval(window._timer); 1044 1045 // DWD - fire the window onload now, and replace it 1046 if ( window.onload && ( window.onload !== window.mtInit ) ) { 1047 window.onload(); 1048 window.onload = function() {}; 1049 } 1050 1051 1052 1053} 1054 1055/* for Mozilla/Opera9 */ 1056if (document.addEventListener) { 1057 document.addEventListener("DOMContentLoaded", mtInit, false); 1058} 1059 1060/* for Internet Explorer */ 1061/*@cc_on @*/ 1062/*@if (@_win32) 1063document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>"); 1064var script = document.getElementById("__ie_onload"); 1065script.onreadystatechange = function() { 1066 if (this.readyState == "complete") { 1067 mtInit(); // call the onload handler 1068 } 1069}; 1070/*@end @*/ 1071 1072/* for Safari */ 1073if (/WebKit/i.test(navigator.userAgent)) { // sniff 1074 _timer = setInterval(function() { 1075 if (/loaded|complete/.test(document.readyState)) { 1076 mtInit(); // call the onload handler 1077 } 1078 }, 10); 1079} 1080 1081/* for other browsers */ 1082window.onload = mtInit; 1083 1084// END: fast browser onload init 1085 1086 1087 1088
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.