function col2(tableId){
var oTable = document.getElementById(tableId);
var workTable = oTable.cloneNode(1);
var cellArr = workTable.getElementsByTagName('td');
for(var i=oTable.tBodies[0].childNodes.length-1;i>=0;i--)
oTable.tBodies[0].removeChild(oTable.tBodies[0].childNodes[i]);

var c=0;
var line = 0;
while(cellArr[c]){
var TR = oTable.tBodies[0].insertRow(line++);
for(var i=0;i<2;i++,c++){
if(cellArr[c]) TR.appendChild(cellArr[c].cloneNode(1));
else TR.insertCell(i);
}
}
}

function col3(tableId){
var oTable = document.getElementById(tableId);
var workTable = oTable.cloneNode(1);
var cellArr = workTable.getElementsByTagName('td');
for(var i=oTable.tBodies[0].childNodes.length-1;i>=0;i--)
oTable.tBodies[0].removeChild(oTable.tBodies[0].childNodes[i]);

var c=0;
var line = 0;
while(cellArr[c]){
var TR = oTable.tBodies[0].insertRow(line++);
for(var i=0;i<3;i++,c++){
if(cellArr[c]) TR.appendChild(cellArr[c].cloneNode(1));
else TR.insertCell(i);
}
}
}


// The cookie name to use for storing the blog-side comment session cookie.
var mtCookieName = "mt_blog249_user";
var mtCookieDomain = ".haruy.com";
var mtCookiePath = "/Art-Direct/";
var mtCookieTimeout = 14400;









function mtHide(id) {
 var el = (typeof id == "string") ? document.getElementById(id) : id;
 if (el) el.style.display = 'none';
}









function mtShow(id) {
 var el = (typeof id == "string") ? document.getElementById(id) : id;
 if (el) el.style.display = 'block';
}









function mtAttachEvent(eventName,func) {
 var onEventName = 'on' + eventName;
 var old = window[onEventName];
 if( typeof old != 'function' )
 window[onEventName] = func;
 else {
 window[onEventName] = function( evt ) {
 old( evt );
 return func( evt );
 };
 }
}









function mtFireEvent(eventName,param) {
 var fn = window['on' + eventName];
 if (typeof fn == 'function') return fn(param);
 return;
}









function mtRelativeDate(ts, fds) {
 var now = new Date();
 var ref = ts;
 var delta = Math.floor((now.getTime() - ref.getTime()) / 1000);








 var str;
 if (delta < 60) {
 str = '直前';
 } else if (delta <= 86400) {
 // less than 1 day
 var hours = Math.floor(delta / 3600);
 var min = Math.floor((delta % 3600) / 60);
 if (hours == 1)
 str = '1 時間前';
 else if (hours > 1)
 str = '2 時間前'.replace(/2/, hours);
 else if (min == 1)
 str = '1 分前';
 else
 str = '2 分前'.replace(/2/, min);
 } else if (delta <= 604800) {
 // less than 1 week
 var days = Math.floor(delta / 86400);
 var hours = Math.floor((delta % 86400) / 3600);
 if (days == 1)
 str = '1 日前';
 else if (days > 1)
 str = '2 日前'.replace(/2/, days);
 else if (hours == 1)
 str = '1 時間前';
 else
 str = '2 時間前'.replace(/2/, hours);
 }
 return str ? str : fds;
}









function mtEditLink(entry_id, author_id) {
 var u = mtGetUser();
 if (! u) return;
 if (! entry_id) return;
 if (! author_id) return;
 if (u.id != author_id) return;
 var link = '<a href="mt.cgi?__mode=view&amp;_type=entry&amp;id=' + entry_id + '">編集</a>';
 document.write(link);
}









function mtCommentFormOnFocus() {
 // if CAPTCHA is enabled, this causes the captcha image to be
 // displayed if it hasn't been already.
 mtShowCaptcha();
}









var mtCaptchaVisible = false;
function mtShowCaptcha() {
 var u = mtGetUser();
 if ( u && u.is_authenticated ) return;
 if (mtCaptchaVisible) return;
 var div = document.getElementById('comments-open-captcha');
 if (div) {
 div.innerHTML = '';
 mtCaptchaVisible = true;
 }
}

















var is_preview;
var user;

function mtSetUser(u) {
 if (u) {
 // persist this
 user = u;
 mtSaveUser();
 // sync up user greeting
 mtFireEvent('usersignin');
 }
}









function mtEscapeJS(s) {
 s = s.replace(/'/g, "&apos;");
 return s;
}









function mtUnescapeJS(s) {
 s = s.replace(/&apos;/g, "'");
 return s;
}









function mtBakeUserCookie(u) {
 var str = "";
 if (u.name) str += "name:'" + mtEscapeJS(u.name) + "';";
 if (u.url) str += "url:'" + mtEscapeJS(u.url) + "';";
 if (u.email) str += "email:'" + mtEscapeJS(u.email) + "';";
 if (u.is_authenticated) str += "is_authenticated:'1';";
 if (u.profile) str += "profile:'" + mtEscapeJS(u.profile) + "';";
 if (u.userpic) str += "userpic:'" + mtEscapeJS(u.userpic) + "';";
 if (u.sid) str += "sid:'" + mtEscapeJS(u.sid) + "';";
 str += "is_trusted:'" + (u.is_trusted ? "1" : "0") + "';";
 str += "is_author:'" + (u.is_author ? "1" : "0") + "';";
 str += "is_banned:'" + (u.is_banned ? "1" : "0") + "';";
 str += "can_post:'" + (u.can_post ? "1" : "0") + "';";
 str += "can_comment:'" + (u.can_comment ? "1" : "0") + "';";
 str = str.replace(/;$/, '');
 return str;
}









function mtUnbakeUserCookie(s) {
 if (!s) return;








 var u = {};
 var m;
 while (m = s.match(/^((name|url|email|is_authenticated|profile|userpic|sid|is_trusted|is_author|is_banned|can_post|can_comment):'([^']+?)';?)/)) {
 s = s.substring(m[1].length);
 if (m[2].match(/^(is|can)_/)) // boolean fields
 u[m[2]] = m[3] == '1' ? true : false;
 else
 u[m[2]] = mtUnescapeJS(m[3]);
 }
 if (u.is_authenticated) {
 u.is_anonymous = false;
 } else {
 u.is_anonymous = true;
 u.can_post = false;
 u.is_author = false;
 u.is_banned = false;
 u.is_trusted = false;
 }
 return u;
}









function mtGetUser() {
 if (!user) {
 var cookie = mtGetCookie(mtCookieName);
 if (!cookie) return;
 user = mtUnbakeUserCookie(cookie);
 if (! user) {
 user = {};
 user.is_anonymous = true;
 user.can_post = false;
 user.is_author = false;
 user.is_banned = false;
 user.is_trusted = false;
 }
 }
 return user;
}









var mtFetchedUser = false;

function mtFetchUser(cb) {
 if (!cb) cb = 'mtSetUser';
 if ( ( cb == 'mtSetUser' ) && mtGetUser() ) {
 var url = document.URL;
 url = url.replace(/#.+$/, '');
 url += '#comments-open';
 location.href = url;
 } else {
 // we aren't using AJAX for this, since we may have to request
 // from a different domain. JSONP to the rescue.
 mtFetchedUser = true;
 var script = document.createElement('script');
 var ts = new Date().getTime();
 script.src = 'http://haruy.com/mt/mt-comments.cgi?__mode=session_js&blog_id=249&jsonp=' + cb + '&ts=' + ts;
 (document.getElementsByTagName('head'))[0].appendChild(script);
 }
}










function mtRememberMeOnClick(b) {
 if (!b.checked)
 mtClearUser(b.form);
 return true;
}










var mtRequestSubmitted = false;
function mtCommentOnSubmit(f) {
 if (!mtRequestSubmitted) {
 mtRequestSubmitted = true;








 if (f.armor)
 f.armor.value = 'd869c3ed107323a1b977a086a55e2d10a15dbae4';
 if (f.bakecookie && f.bakecookie.checked)
 mtSaveUser(f);








 // disable submit buttons
 if (f.preview_button) f.preview_button.disabled = true;
 if (f.post) f.post.disabled = true;








 var u = mtGetUser();
 if ( !is_preview && ( u && u.is_authenticated ) ) {
 // validate session; then submit
 mtFetchedUser = false;
 mtFetchUser('mtCommentSessionVerify');
 return false;
 }








 return true;
 }
 return false;
}








function mtCommentSessionVerify(app_user) {
 var u = mtGetUser();
 var f = document['comments_form'];
 if ( u && app_user && app_user.sid && ( u.sid == app_user.sid ) ) {
 f.submit();
 } else {
 alert('セッションの有効期限が切れています。再度サインインしてください。');
 mtClearUser();
 mtFireEvent('usersignin');

 mtShow('comments-form');
 mtHide('comments-open-footer');

 }
}








function mtUserOnLoad() {
 var u = mtGetUser();








 // if the user is authenticated, hide the 'anonymous' fields
 // and any captcha input if already shown
 if ( document.getElementById('comments-form')) {
 if ( u && u.is_authenticated ) {
 mtShow('comments-form');
 mtHide('comments-open-data');
 if (mtCaptchaVisible)
 mtHide('comments-open-captcha');
 } else {

 mtHide('comments-form');

 }
 if ( u && u.is_banned )
 mtHide('comments-form');








 // if we're previewing a comment, make sure the captcha
 // field is visible
 if (is_preview)
 mtShowCaptcha();
 else
 mtShowGreeting();








 // populate anonymous comment fields if user is cookied as anonymous
 var cf = document['comments_form'];
 if (cf) {
 if (u && u.is_anonymous) {
 if (u.email) cf.email.value = u.email;
 if (u.name) cf.author.value = u.name;
 if (u.url) cf.url.value = u.url;
 if (cf.bakecookie)
 cf.bakecookie.checked = u.name || u.email;
 } else {
 if (u && u.sid && cf.sid)
 cf.sid.value = u.sid;
 }
 if (cf.post.disabled)
 cf.post.disabled = false;
 if (cf.preview_button.disabled)
 cf.preview_button.disabled = false;
 mtRequestSubmitted = false;
 }
 }
}











function mtEntryOnLoad() {
 
 
 mtFireEvent('usersignin');
}








function mtEntryOnUnload() {
 if (mtRequestSubmitted) {
 var cf = document['comments_form'];
 if (cf) {
 if (cf.post && cf.post.disabled)
 cf.post.disabled = false;
 if (cf.preview_button && cf.preview_button.disabled)
 cf.preview_button.disabled = false;
 }
 mtRequestSubmitted = false;
 }
 return true;
}








mtAttachEvent('usersignin', mtUserOnLoad);










function mtSignIn() {
 var doc_url = document.URL;
 doc_url = doc_url.replace(/#.+/, '');
 var url = 'http://haruy.com/mt/mt-comments.cgi?__mode=login&blog_id=249';
 if (is_preview) {
 if ( document['comments_form'] ) {
 var entry_id = document['comments_form'].entry_id.value;
 url += '&entry_id=' + entry_id;
 } else {
 url += '&return_url=http%3A%2F%2Fharuy.com%2FArt-Direct%2F';
 }
 } else {
 url += '&return_url=' + encodeURIComponent(doc_url);
 }
 mtClearUser();
 location.href = url;
}








function mtSignInOnClick(sign_in_element) {
 var el;
 if (sign_in_element) {
 // display throbber
 el = document.getElementById(sign_in_element);
 if (!el) // legacy MT 4.x element id
 el = document.getElementById('comment-form-external-auth');
 }
 if (el)
 el.innerHTML = 'サインインします... <span class="status-indicator">&nbsp;</span>';








 mtClearUser(); // clear any 'anonymous' user cookie to allow sign in
 mtFetchUser('mtSetUserOrLogin');
 return false;
}








function mtSetUserOrLogin(u) {
 if (u && u.is_authenticated) {
 mtSetUser(u);
 } else {
 // user really isn't logged in; so let's do this!
 mtSignIn();
 }
}









function mtSignOut(entry_id) {
 mtClearUser();
 var doc_url = document.URL;
 doc_url = doc_url.replace(/#.+/, '');
 var url = 'http://haruy.com/mt/mt-comments.cgi?__mode=handle_sign_in&static=0&logout=1';
 if (is_preview) {
 if ( document['comments_form'] ) {
 var entry_id = document['comments_form'].entry_id.value;
 url += '&entry_id=' + entry_id;
 } else {
 url += '&return_url=http%3A%2F%2Fharuy.com%2FArt-Direct%2F';
 }
 } else {
 url += '&return_url=' + encodeURIComponent(doc_url);
 }
 location.href = url;
}









function mtSignOutOnClick() {
 mtSignOut();
 return false;
}










function mtShowGreeting() {

 var reg_reqd = true;








 var cf = document['comments_form'];
 if (!cf) return;








 var el = document.getElementById('comment-greeting');
 if (!el) // legacy MT 4.x element id
 el = document.getElementById('comment-form-external-auth');
 if (!el) return;








 var eid = cf.entry_id;
 var entry_id;
 if (eid) entry_id = eid.value;








 var phrase;
 var u = mtGetUser();








 if ( u && u.is_authenticated ) {
 if ( u.is_banned ) {
 phrase = 'このブログにコメントする権限を持っていません。(\<a href=\"javas\cript:void(0);\" onclick=\"return mtSignOutOnClick();\"\>サインアウトする\<\/a\>)';
 } else {
 var user_link;
 if ( u.is_author ) {
 user_link = '<a href="http://haruy.com/mt/mt-comments.cgi?__mode=edit_profile&return_url=' + encodeURIComponent( location.href );
 user_link += '">' + u.name + '</a>';
 } else {
 // registered user, but not a user with posting rights
 if (u.url)
 user_link = '<a href="' + u.url + '">' + u.name + '</a>';
 else
 user_link = u.name;
 }
 // TBD: supplement phrase with userpic if one is available.
 phrase = '__NAME__としてサインインしています。(\<a href=\"javas\cript:void(0)\" onclick=\"return mtSignOutOnClick();\"\>サインアウト\<\/a\>)';
 phrase = phrase.replace(/__NAME__/, user_link);
 }
 } else {
 if (reg_reqd) {
 phrase = 'コメントするにはまず\<a href=\"javas\cript:void(0)\" onclick=\"return mtSignInOnClick(\'comment-greeting\')\"\>サインイン\<\/a\>してください。';
 } else {
 phrase = 'コメントする前に\<a href=\"javas\cript:void(0)\" onclick=\"return mtSignInOnClick(\'comment-greeting\')\"\>サインイン\<\/a\>することもできます。';
 }
 }
 el.innerHTML = phrase;

}










function mtReplyCommentOnClick(parent_id, author) {
 mtShow('comment-form-reply');








 var checkbox = document.getElementById('comment-reply');
 var label = document.getElementById('comment-reply-label');
 var text = document.getElementById('comment-text');








 // Populate label with new values
 var reply_text = '\<a href=\"#comment-__PARENT__\" onclick=\"location.href=this.href; return false\"\>__AUTHOR__からのコメント\<\/a\>に返信';
 reply_text = reply_text.replace(/__PARENT__/, parent_id);
 reply_text = reply_text.replace(/__AUTHOR__/, author);
 label.innerHTML = reply_text;








 checkbox.value = parent_id; 
 checkbox.checked = true;
 try {
 // text field may be hidden
 text.focus();
 } catch(e) {
 }








 mtSetCommentParentID();
}









function mtSetCommentParentID() {
 var checkbox = document.getElementById('comment-reply');
 var parent_id_field = document.getElementById('comment-parent-id');
 if (!checkbox || !parent_id_field) return;








 var pid = 0;
 if (checkbox.checked == true)
 pid = checkbox.value;
 parent_id_field.value = pid;
}









function mtSaveUser(f) {
 // We can't reliably store the user cookie during a preview.
 if (is_preview) return;








 var u = mtGetUser();








 if (f && (!u || u.is_anonymous)) {
 if ( !u ) {
 u = {};
 u.is_authenticated = false;
 u.can_comment = true;
 u.is_author = false;
 u.is_banned = false;
 u.is_anonymous = true;
 u.is_trusted = false;
 }
 if (f.author != undefined) u.name = f.author.value;
 if (f.email != undefined) u.email = f.email.value;
 if (f.url != undefined) u.url = f.url.value;
 }








 if (!u) return;








 var cache_period = mtCookieTimeout * 1000;








 // cache anonymous user info for a long period if the
 // user has requested to be remembered
 if (u.is_anonymous && f && f.bakecookie && f.bakecookie.checked)
 cache_period = 365 * 24 * 60 * 60 * 1000;








 var now = new Date();
 mtFixDate(now);
 now.setTime(now.getTime() + cache_period);








 var cmtcookie = mtBakeUserCookie(u);
 mtSetCookie(mtCookieName, cmtcookie, now, mtCookiePath, mtCookieDomain,
 location.protocol == 'https:');
}









function mtClearUser() {
 user = null;
 mtDeleteCookie(mtCookieName, mtCookiePath, mtCookieDomain,
 location.protocol == 'https:');
}









function mtSetCookie(name, value, expires, path, domain, secure) {
 if (domain && domain.match(/^\.?localhost$/))
 domain = null;
 var curCookie = name + "=" + escape(value) +
 (expires ? "; expires=" + expires.toGMTString() : "") +
 (path ? "; path=" + path : "") +
 (domain ? "; domain=" + domain : "") +
 (secure ? "; secure" : "");
 document.cookie = curCookie;
}









function mtGetCookie(name) {
 var prefix = name + '=';
 var c = document.cookie;
 var cookieStartIndex = c.indexOf(prefix);
 if (cookieStartIndex == -1)
 return '';
 var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);
 if (cookieEndIndex == -1)
 cookieEndIndex = c.length;
 return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}









function mtDeleteCookie(name, path, domain, secure) {
 if (mtGetCookie(name)) {
 if (domain && domain.match(/^\.?localhost$/))
 domain = null;
 document.cookie = name + "=" +
 (path ? "; path=" + path : "") +
 (domain ? "; domain=" + domain : "") +
 (secure ? "; secure" : "") +
 "; expires=Thu, 01-Jan-70 00:00:01 GMT";
 }
}








function mtFixDate(date) {
 var skew = (new Date(0)).getTime();
 if (skew > 0)
 date.setTime(date.getTime() - skew);
}









function mtGetXmlHttp() {
 if ( !window.XMLHttpRequest ) {
 window.XMLHttpRequest = function() {
 var types = [
 "Microsoft.XMLHTTP",
 "MSXML2.XMLHTTP.5.0",
 "MSXML2.XMLHTTP.4.0",
 "MSXML2.XMLHTTP.3.0",
 "MSXML2.XMLHTTP"
 ];








 for ( var i = 0; i < types.length; i++ ) {
 try {
 return new ActiveXObject( types[ i ] );
 } catch( e ) {}
 }








 return undefined;
 };
 }
 if ( window.XMLHttpRequest )
 return new XMLHttpRequest();
}








// BEGIN: fast browser onload init
// Modifications by David Davis, DWD
// Dean Edwards/Matthias Miller/John Resig
// http://dean.edwards.name/weblog/2006/06/again/?full#comment5338








function mtInit() {
 // quit if this function has already been called
 if (arguments.callee.done) return;








 // flag this function so we don't do the same thing twice
 arguments.callee.done = true;








 // kill the timer
 // DWD - check against window
 if ( window._timer ) clearInterval(window._timer);








 // DWD - fire the window onload now, and replace it
 if ( window.onload && ( window.onload !== window.mtInit ) ) {
 window.onload();
 window.onload = function() {};
 }
}








/* for Mozilla/Opera9 */
if (document.addEventListener) {
 document.addEventListener("DOMContentLoaded", mtInit, false);
}








/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
 if (this.readyState == "complete") {
 mtInit(); // call the onload handler
 }
};
/*@end @*/








/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
 _timer = setInterval(function() {
 if (/loaded|complete/.test(document.readyState)) {
 mtInit(); // call the onload handler
 }
 }, 10);
}








/* for other browsers */
window.onload = mtInit;








// END: fast browser onload init










/***
* If request contains a '#_login' or '#_logout' hash, use this to
* also delete the blog-side user cookie, since we're coming back from
* a login, logout or edit profile operation.
*/
var clearCookie = ( window.location.hash && window.location.hash.match( /^#_log(in|out)/ ) ) ? true : false;
if (clearCookie) {
 // clear any logged in state
 mtClearUser();
 if (RegExp.$1 == 'in')
 mtFetchUser();
} else {
 
 if ( is_preview && !user )
 mtFetchUser();
}














 