PageSourceSearch

https://www.nabunken.go.jp/asuka/kikaku/mt.js

js nabunken.go.jp collected 2026-10-01 11:24:40 UTC 31,581 bytes, 1,088 lines download raw bytes

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, "&apos;");
570    return s;
571}
572
573
574function mtUnescapeJS(s) {
575    s = s.replace(/&apos;/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">&nbsp;</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.