1// The cookie name to use for storing the blog-side comment session cookie. 2var mtCookieName = "mt_blog_user"; 3var mtCookieDomain = ".zoshindo.co.jp"; 4var mtCookiePath = "/"; 5var mtCookieTimeout = 14400; 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.zoshindo.co.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 (!Object.prototype.hasOwnProperty.call(M.getEl(found[0]), '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.zoshindo.co.jp/cgi-bin/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.zoshindo.co.jp/cgi-bin/mt/mt-comments.cgi?__mode=userinfo&blog_id=1&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.zoshindo.co.jp/cgi-bin/mt/mt-comments.cgi?__mode=verify_session&blog_id=1&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 = '90a15c4b4e9268d24625d4f7ffa61ba2adc6c42e'; 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 mtShow('comments-form'); 718 mtHide('comments-open-footer'); 719 720 } 721} 722 723function mtUserOnLoad() { 724 var u = mtGetUser(); 725 726 // if the user is authenticated, hide the 'anonymous' fields 727 // and any captcha input if already shown 728 if ( document.getElementById('comments-form')) { 729 if ( u && u.is_authenticated ) { 730 mtShow('comments-form'); 731 mtHide('comments-open-data'); 732 if (mtCaptchaVisible) 733 mtHide('comments-open-captcha'); 734 } else { 735 736 mtHide('comments-form'); 737 738 } 739 if ( u && u.is_banned ) 740 mtHide('comments-form'); 741 742 // if we're previewing a comment, make sure the captcha 743 // field is visible 744 if (is_preview) 745 mtShowCaptcha(); 746 else 747 mtShowGreeting(); 748 749 // populate anonymous comment fields if user is cookied as anonymous 750 var cf = document['comments_form']; 751 if (cf) { 752 if (u && u.is_anonymous) { 753 if (u.email) cf.email.value = u.email; 754 if (u.name) cf.author.value = u.name; 755 if (u.url) cf.url.value = u.url; 756 if (cf.bakecookie) 757 cf.bakecookie.checked = u.name || u.email; 758 } else { 759 if (u && u.sid && cf.sid) 760 cf.sid.value = u.sid; 761 } 762 if (cf.post && cf.post.disabled) 763 cf.post.disabled = false; 764 if (cf.preview_button && cf.preview_button.disabled) 765 cf.preview_button.disabled = false; 766 mtRequestSubmitted = false; 767 } 768 } 769} 770 771 772 773 774function mtEntryOnLoad() { 775 var cf = document['comments_form']; 776 if (cf && cf.preview) cf.preview.value = ''; 777 778 779 mtFireEvent('usersignin'); 780} 781 782function mtEntryOnUnload() { 783 if (mtRequestSubmitted) { 784 var cf = document['comments_form']; 785 if (cf) { 786 if (cf.post && cf.post.disabled) 787 cf.post.disabled = false; 788 if (cf.preview_button && cf.preview_button.disabled) 789 cf.preview_button.disabled = false; 790 } 791 mtRequestSubmitted = false; 792 } 793 return true; 794} 795 796mtAttachEvent('usersignin', mtUserOnLoad); 797 798 799 800function mtSignIn() { 801 var doc_url = document.URL; 802 doc_url = doc_url.replace(/#.+/, ''); 803 var url = 'https://www.zoshindo.co.jp/cgi-bin/mt/mt-cp.cgi?__mode=login&blog_id=1'; 804 if (is_preview) { 805 if ( document['comments_form'] ) { 806 var entry_id = document['comments_form'].entry_id.value; 807 url += '&entry_id=' + entry_id; 808 } else { 809 url += '&return_url=https%3A%2F%2Fwww.zoshindo.co.jp%2F'; 810 } 811 } else { 812 url += '&return_url=' + encodeURIComponent(doc_url); 813 } 814 mtClearUser(); 815 location.href = url; 816} 817 818function mtSignInOnClick(sign_in_element) { 819 var el; 820 if (sign_in_element) { 821 // display throbber 822 el = document.getElementById(sign_in_element); 823 if (!el) // legacy MT 4.x element id 824 el = document.getElementById('comment-form-external-auth'); 825 } 826 if (el) 827 el.innerHTML = 'ãµã¤ã³ã¤ã³ãã¾ã... <span class="status-indicator"> </span>'; 828 829 mtClearUser(); // clear any 'anonymous' user cookie to allow sign in 830 mtSignIn(); 831 return false; 832} 833 834function mtSetUserOrLogin(u) { 835 if (u && u.is_authenticated) { 836 mtSetUser(u); 837 } else { 838 // user really isn't logged in; so let's do this! 839 mtSignIn(); 840 } 841} 842 843 844function mtSignOut(entry_id) { 845 mtClearUser(); 846 var doc_url = document.URL; 847 doc_url = doc_url.replace(/#.+/, ''); 848 var url = 'https://www.zoshindo.co.jp/cgi-bin/mt/mt-cp.cgi?__mode=logout&static=0&blog_id=1'; 849 if (is_preview) { 850 if ( document['comments_form'] ) { 851 var entry_id = document['comments_form'].entry_id.value;
852 url += '&entry_id=' + entry_id; 853 } else { 854 url += '&return_url=https%3A%2F%2Fwww.zoshindo.co.jp%2F'; 855 } 856 } else { 857 url += '&return_url=' + encodeURIComponent(doc_url); 858 } 859 location.href = url; 860} 861 862 863function mtSignOutOnClick() { 864 mtSignOut(); 865 return false; 866} 867 868 869 870function mtShowGreeting() { 871 872 var reg_reqd = true; 873 874 var cf = document['comments_form']; 875 if (!cf) return; 876 877 var el = document.getElementById('comment-greeting'); 878 if (!el) // legacy MT 4.x element id 879 el = document.getElementById('comment-form-external-auth'); 880 if (!el) return; 881 882 var eid = cf.entry_id; 883 var entry_id; 884 if (eid) entry_id = eid.value; 885 886 var phrase; 887 var u = mtGetUser(); 888 889 if ( u && u.is_authenticated ) { 890 if ( u.is_banned ) { 891 phrase = 'ãã®ããã°ã«ã³ã¡ã³ãããæ¨©éãæã£ã¦ãã¾ããã(\<a href=\"javas\cript:void(0);\" onclick=\"return mtSignOutOnClick();\"\>ãµã¤ã³ã¢ã¦ããã\<\/a\>)'; 892 } else { 893 var user_link; 894 if ( u.is_author ) { 895 user_link = '<a href="https://www.zoshindo.co.jp/cgi-bin/mt/mt-comments.cgi?__mode=edit_profile&blog_id=1&return_url=' + encodeURIComponent( location.href ); 896 user_link += '">' + u.name + '</a>'; 897 } else { 898 // registered user, but not a user with posting rights 899 if (u.url) 900 user_link = '<a href="' + u.url + '">' + u.name + '</a>'; 901 else 902 user_link = u.name; 903 } 904 // TBD: supplement phrase with userpic if one is available. 905 phrase = '__NAME__ã¨ãã¦ãµã¤ã³ã¤ã³ãã¦ãã¾ãã(\<a href=\"javas\cript:void(0)\" onclick=\"return mtSignOutOnClick();\"\>ãµã¤ã³ã¢ã¦ã\<\/a\>)'; 906 phrase = phrase.replace(/__NAME__/, user_link); 907 } 908 } else { 909 if (reg_reqd) { 910 phrase = 'ã³ã¡ã³ãããã«ã¯ã¾ã\<a href=\"javas\cript:void(0)\" onclick=\"return mtSignInOnClick(\'comment-greeting\')\"\>ãµã¤ã³ã¤ã³\<\/a\>ãã¦ãã ããã'; 911 } else { 912 phrase = 'ã³ã¡ã³ãããåã«\<a href=\"javas\cript:void(0)\" onclick=\"return mtSignInOnClick(\'comment-greeting\')\"\>ãµã¤ã³ã¤ã³\<\/a\>ãããã¨ãã§ãã¾ãã'; 913 } 914 } 915 el.innerHTML = phrase; 916 917} 918 919 920 921function mtReplyCommentOnClick(parent_id, author) { 922 mtShow('comment-form-reply'); 923 924 var checkbox = document.getElementById('comment-reply'); 925 var label = document.getElementById('comment-reply-label'); 926 var text = document.getElementById('comment-text'); 927 928 // Populate label with new values 929 var reply_text = '\<a href=\"#comment-__PARENT__\" onclick=\"location.href=this.href; return false\"\>__AUTHOR__ããã®ã³ã¡ã³ã\<\/a\>ã«è¿ä¿¡'; 930 reply_text = reply_text.replace(/__PARENT__/, parent_id); 931 reply_text = reply_text.replace(/__AUTHOR__/, author); 932 label.innerHTML = reply_text; 933 934 checkbox.value = parent_id; 935 checkbox.checked = true; 936 try { 937 // text field may be hidden 938 text.focus(); 939 } catch(e) { 940 } 941 942 mtSetCommentParentID(); 943} 944 945 946function mtSetCommentParentID() { 947 var checkbox = document.getElementById('comment-reply'); 948 var parent_id_field = document.getElementById('comment-parent-id'); 949 if (!checkbox || !parent_id_field) return; 950 951 var pid = 0; 952 if (checkbox.checked == true) 953 pid = checkbox.value; 954 parent_id_field.value = pid; 955} 956 957 958function mtSaveUser(f) { 959 // We can't reliably store the user cookie during a preview. 960 if (is_preview) return; 961 962 var u = mtGetUser(); 963 964 if (f && (!u || u.is_anonymous)) { 965 if ( !u ) { 966 u = {}; 967 u.is_authenticated = false; 968 u.can_comment = true; 969 u.is_author = false; 970 u.is_banned = false; 971 u.is_anonymous = true; 972 u.is_trusted = false; 973 } 974 if (f.author != undefined) u.name = f.author.value; 975 if (f.email != undefined) u.email = f.email.value; 976 if (f.url != undefined) u.url = f.url.value; 977 } 978 979 if (!u) return; 980 981 var cache_period = mtCookieTimeout * 1000; 982 983 // cache anonymous user info for a long period if the 984 // user has requested to be remembered 985 if (u.is_anonymous && f && f.bakecookie && f.bakecookie.checked) 986 cache_period = 365 * 24 * 60 * 60 * 1000; 987 988 var now = new Date(); 989 mtFixDate(now); 990 now.setTime(now.getTime() + cache_period); 991 992 var cmtcookie = mtBakeUserCookie(u); 993 mtSetCookie(mtCookieName, cmtcookie, now, mtCookiePath, mtCookieDomain, 994 location.protocol == 'https:'); 995} 996 997 998function mtClearUser() { 999 user = null; 1000 mtDeleteCookie(mtCookieName, mtCookiePath, mtCookieDomain, 1001 location.protocol == 'https:'); 1002} 1003 1004 1005function mtSetCookie(name, value, expires, path, domain, secure) { 1006 if (domain && ( domain.match(/^\.?localhost$/) || domain.match(/^[0-9\.]+$/) )) 1007 domain = null; 1008 var curCookie = name + "=" + encodeURIComponent(value) + 1009 (expires ? "; expires=" + expires.toGMTString() : "") + 1010 (path ? "; path=" + path : "") + 1011 (domain ? "; domain=" + domain : "") + 1012 (secure ? "; secure" : ""); 1013 document.cookie = curCookie; 1014} 1015 1016 1017function mtGetCookie(name) {
1018 var prefix = name + '='; 1019 var c = document.cookie; 1020 var cookieStartIndex = c.indexOf(prefix); 1021 if (cookieStartIndex == -1) 1022 return ''; 1023 var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length); 1024 if (cookieEndIndex == -1) 1025 cookieEndIndex = c.length; 1026 var this_cookie = c.substring(cookieStartIndex + prefix.length, cookieEndIndex); 1027 if ( this_cookie.match(/\%u/i) ) { 1028 return ''; 1029 } 1030 return decodeURIComponent( this_cookie ); 1031} 1032 1033 1034function mtDeleteCookie(name, path, domain, secure) { 1035 if (mtGetCookie(name)) { 1036 if (domain && domain.match(/^\.?localhost$/)) 1037 domain = null; 1038 document.cookie = name + "=" + 1039 (path ? "; path=" + path : "") + 1040 (domain ? "; domain=" + domain : "") + 1041 (secure ? "; secure" : "") + 1042 "; expires=Thu, 01-Jan-70 00:00:01 GMT"; 1043 } 1044} 1045 1046function mtFixDate(date) { 1047 var skew = (new Date(0)).getTime(); 1048 if (skew > 0) 1049 date.setTime(date.getTime() - skew); 1050} 1051 1052 1053function mtGetXmlHttp() { 1054 if ( !window.XMLHttpRequest ) { 1055 window.XMLHttpRequest = function() { 1056 var types = [ 1057 "Microsoft.XMLHTTP", 1058 "MSXML2.XMLHTTP.5.0", 1059 "MSXML2.XMLHTTP.4.0", 1060 "MSXML2.XMLHTTP.3.0", 1061 "MSXML2.XMLHTTP" 1062 ]; 1063 1064 for ( var i = 0; i < types.length; i++ ) { 1065 try { 1066 return new ActiveXObject( types[ i ] ); 1067 } catch( e ) {} 1068 } 1069 1070 return undefined; 1071 }; 1072 } 1073 if ( window.XMLHttpRequest ) 1074 return new XMLHttpRequest(); 1075} 1076 1077// BEGIN: fast browser onload init 1078// Modifications by David Davis, DWD 1079// Dean Edwards/Matthias Miller/John Resig 1080// http://dean.edwards.name/weblog/2006/06/again/?full#comment5338 1081 1082function mtInit() { 1083 // quit if this function has already been called 1084 if (arguments.callee.done) return; 1085 1086 // flag this function so we don't do the same thing twice 1087 arguments.callee.done = true; 1088 1089 // kill the timer 1090 // DWD - check against window 1091 if ( window._timer ) clearInterval(window._timer); 1092 1093 // DWD - fire the window onload now, and replace it 1094 if ( window.onload && ( window.onload !== window.mtInit ) ) { 1095 window.onload(); 1096 window.onload = function() {}; 1097 } 1098 1099 1100 mtInitCommenter(); 1101 1102 1103} 1104 1105/* for Mozilla/Opera9 */ 1106if (document.addEventListener) { 1107 document.addEventListener("DOMContentLoaded", mtInit, false); 1108} 1109 1110/* for Internet Explorer */ 1111/*@cc_on @*/ 1112/*@if (@_win32) 1113document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>"); 1114var script = document.getElementById("__ie_onload"); 1115script.onreadystatechange = function() { 1116 if (this.readyState == "complete") { 1117 mtInit(); // call the onload handler 1118 } 1119}; 1120/*@end @*/ 1121 1122/* for Safari */ 1123if (/WebKit/i.test(navigator.userAgent)) { // sniff 1124 _timer = setInterval(function() { 1125 if (/loaded|complete/.test(document.readyState)) { 1126 mtInit(); // call the onload handler 1127 } 1128 }, 10); 1129} 1130 1131/* for other browsers */ 1132window.onload = mtInit; 1133 1134// END: fast browser onload init 1135 1136 1137 1138 1139function mtLoggedIn(ott) { 1140 var script = document.createElement('script'); 1141 var ts = new Date().getTime(); 1142 script.src = 'https://www.zoshindo.co.jp/cgi-bin/mt/mt-comments.cgi?__mode=userinfo&jsonp=mtSaveUserInfo&ott=' + ott; 1143 (document.getElementsByTagName('head'))[0].appendChild(script); 1144} 1145 1146function mtRefreshUserInfo(sid) { 1147 var script = document.createElement('script'); 1148 var ts = new Date().getTime(); 1149 script.src = 'https://www.zoshindo.co.jp/cgi-bin/mt/mt-comments.cgi?__mode=userinfo&jsonp=mtSaveUserInfo&sid=' + sid; 1150 (document.getElementsByTagName('head'))[0].appendChild(script); 1151} 1152 1153function mtSaveUserInfo (u) { 1154 if ( u.error ) { 1155 if ( !user ) { 1156 alert('ãµã¤ã³ã¤ã³ã§ãã¾ããã§ããã'); 1157 } 1158 return; 1159 } 1160 user = null; 1161 var cmtcookie = mtBakeUserCookie(u); 1162 var now = new Date(); 1163 var cache_period = mtCookieTimeout * 1000; 1164 1165 // cache anonymous user info for a long period if the 1166 // user has requested to be remembered 1167 mtFixDate(now); 1168 now.setTime(now.getTime() + cache_period); 1169 mtSetCookie(mtCookieName, cmtcookie, now, mtCookiePath, mtCookieDomain, 1170 location.protocol == 'https:'); 1171 mtFireEvent('usersignin'); 1172} 1173 1174function mtInitCommenter () { 1175 /*** 1176 * If request contains a '#_login' or '#_logout' hash, use this to 1177 * also delete the blog-side user cookie, since we're coming back from 1178 * a login, logout or edit profile operation. 1179 */ 1180 1181 var hash = ( window.location.hash ); 1182 hash.match( /^#_(.*)$/ ); 1183 var command = RegExp.$1 || ''; 1184 if ( command === 'refresh' ) { 1185 // Back from profile edit screen. 1186 // Reload userinfo with current session ID. 1187 var u = mtGetUser(); 1188 user = null; 1189 mtRefreshUserInfo(u.sid); 1190 } 1191 else if ( command === 'logout' ) { 1192 // clear any logged in state 1193 mtClearUser(); 1194 mtFireEvent('usersignin'); 1195 } 1196 else if ( command.match( /^login_(.*)$/ ) ) { 1197 var sid = RegExp.$1; 1198 mtLoggedIn(sid); 1199 } 1200 else { 1201 mtFireEvent('usersignin'); 1202 } 1203} 1204 1205
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.