// Copyright (c) 1996-1997 Athenia Associates.
// http://www.webreference.com/js/
// License is granted if and only if this entire
// copyright notice is included. By Tomer Shiran.

function setCookie (name, value, expires, path, domain, secure) {
    var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires : "") +
        (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");
    document.cookie = curCookie;
}

function getCookie (name) {
    var prefix = name + '=';
    var c = document.cookie;
    var nullstring = '';
    var cookieStartIndex = c.indexOf(prefix);
    if (cookieStartIndex == -1)
        return nullstring;
    var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1)
        cookieEndIndex = c.length;
    return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function deleteCookie (name, path, domain) {
    if (getCookie(name))
        document.cookie = name + "=" + ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

function fixDate (date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0)
        date.setTime(date.getTime() - skew);
}

function rememberMe (f) {
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    now = now.toGMTString();
    if (f.author != undefined)
       setCookie('mtcmtauth', f.author.value, now, '/', '', '');
    if (f.email != undefined)
       setCookie('mtcmtmail', f.email.value, now, '/', '', '');
    if (f.url != undefined)
       setCookie('mtcmthome', f.url.value, now, '/', '', '');
}

function forgetMe (f) {
    deleteCookie('mtcmtmail', '/', '');
    deleteCookie('mtcmthome', '/', '');
    deleteCookie('mtcmtauth', '/', '');
    f.email.value = '';
    f.author.value = '';
    f.url.value = '';
}

function hideDocumentElement(id) {
    var el = document.getElementById(id);
    if (el) el.style.display = 'none';
}

function showDocumentElement(id) {
    var el = document.getElementById(id);
    if (el) el.style.display = 'block';
}

var commenter_name;

function individualArchivesOnLoad(commenter_name) {
    hideDocumentElement('comments-open');

    hideDocumentElement('trackbacks-info');



    if (document.comments_form) {
        if (!commenter_name && (document.comments_form.email != undefined) &&
            (mtcmtmail = getCookie("mtcmtmail")))
            document.comments_form.email.value = mtcmtmail;
        if (!commenter_name && (document.comments_form.author != undefined) &&
            (mtcmtauth = getCookie("mtcmtauth")))
            document.comments_form.author.value = mtcmtauth;
        if (document.comments_form.url != undefined && 
            (mtcmthome = getCookie("mtcmthome")))
            document.comments_form.url.value = mtcmthome;
        if (document.comments_form["bakecookie"]) {
            if (mtcmtauth || mtcmthome) {
                document.comments_form.bakecookie.checked = true;
            } else {
                document.comments_form.bakecookie.checked = false;
            }
        }
    }
}

function writeTypeKeyGreeting(commenter_name, entry_id) {

}




// ページトップ


var Mac = navigator.appVersion.indexOf('Mac',0) != -1;
var Win = navigator.appVersion.indexOf('Win',0) != -1;
var IE  = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;
var NN  = navigator.appName.indexOf("Netscape",0) != -1;
var Moz = navigator.userAgent.indexOf("Gecko") != -1;
var Vmajor = parseInt(navigator.appVersion); // ex. 3
var Vminor = parseFloat(navigator.appVersion); // ex. 3.01

var MacIE4 = ((Mac && navigator.appVersion.indexOf('MSIE 4.',0) != -1));
var MacIE3 = ((Mac && navigator.appVersion.indexOf('MSIE 3.',0) != -1));

function setObj(id) {
 if (document.all) {
  return document.all(id);
 } else if (document.getElementById) {
  return document.getElementById(id);
 } else if (document.layers) {
  return document.layers[id];
 }
 return false;
}

function getScrollLeft() { // 020225
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollLeft;
 } else if (window.pageXOffset) {
  return window.pageXOffset;
 } else {
  return 0;
 }
}

function getScrollTop() { // 020225
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollTop;
 } else if (window.pageYOffset) {
  return window.pageYOffset;
 } else {
  return 0;
 }
}

function getScrollWidth() { // 010317
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollWidth;
 } else if (window.innerWidth) {
  return window.innerWidth;
 }
 return 0;
}

function getScrollHeight() { // 010317
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollHeight;
 } else if (window.innerHeight) {
  return window.innerHeight;
 }
 return 0;
}

// 

function setLayerPosX(elementname,_posX) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  obj.style.pixelLeft = _posX;
 } else if (document.getElementById && obj.style) {
  obj.style.left  = _posX + 'px';
 } else if (document.layers) {
  obj.left = _posX;
 }
}

function setLayerPosY(elementname,_posY) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  obj.style.pixelTop = _posY;
 } else if (document.getElementById && obj.style) {
  obj.style.top  = _posY + 'px';
 } else if (document.layers) {
  obj.top = _posY;
 }
}

function setLayerPosTo(elementname,_posX,_posY) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  obj.style.pixelLeft = _posX;
  obj.style.pixelTop  = _posY;
 } else if (document.getElementById && obj.style) {
  obj.style.left = _posX + 'px';
  obj.style.top  = _posY + 'px';
 } else if (document.layers) {
  obj.moveTo(_posX,_posY);
 }
}

function setLayerPosBy(elementname,_posX,_posY) { // 010317
 var obj = setObj(elementname);
 _posX = parseInt(_posX); _posY = parseInt(_posY);
 if (document.all && obj.style) {
  obj.style.pixelLeft = _posX + getDivPosX(elementname);
  obj.style.pixelTop  = _posY + getDivPosY(elementname);
 } else if (document.getElementById && obj.style) {
  obj.style.left = _posX + getDivPosX(elementname) + 'px';
  obj.style.top  = _posY + getDivPosY(elementname) + 'px';
 } else if (document.layers) {
  obj.moveTo(_posX,_posY);
 }
}

function getLayerPosX(elementname) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  return parseInt(obj.style.pixelLeft);
 } else if (document.getElementById && obj.style) {
  if (Moz) {
   style = getComputedStyle(obj,null);
   return parseInt(style.getPropertyValue('left'));
  }
  return parseInt(obj.style.left);
 } else if (document.layers) {
  return parseInt(obj.left);
 }
 return '';
}

function getLayerPosY(elementname) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  return parseInt(obj.style.pixelTop);
 } else if (document.getElementById && obj.style) {
  if (Moz) {
   style = getComputedStyle(obj,null);
   return parseInt(style.getPropertyValue('top'));
  }
  return parseInt(obj.style.top);
 } else if (document.layers) {
  return parseInt(obj.top);
 }
 return '';
}

function getLayerWidth(elementname) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  return obj.clientWidth;
 } else if (document.getElementById && obj.style) {
  if (Moz) {
   style=getComputedStyle(obj,null);
   return parseInt(style.getPropertyValue('width'));
  }
  return parseInt(obj.style.width);
 } else if (document.layers) {
  return obj.clip.width;
 }
 return '';
}

function getLayerHeight(elementname) { // 010317
 var obj = setObj(elementname);
 if (document.all && obj.style) {
  return obj.clientHeight;
 } else if (document.getElementById && obj.style) {
  if (Moz) {
   style=getComputedStyle(obj,null);
   return parseInt(style.getPropertyValue('height'));
  }
  return parseInt(obj.style.height);
 } else if (document.layers) {
  return obj.clip.height;
 }
 return '';
}

function setLayerDisplay(elementname, _status) { // 020307
 var obj = setObj(elementname);
 if ((document.getElementById || document.all) && obj.style && _status != null) {
  obj.style.display = _status;
 }
}

function getLayerDisplay(elementname) { // 010520
 var obj = setObj(elementname);
 if ((document.getElementById || document.all) && obj.style) {
  return obj.style.display;
 }
}

function setLayerClip(elementname,clipTop,clipRight,clipBottom,clipLeft) {
 var obj = setObj(elementname);
 if ((document.getElementById || document.all) && obj.style) {
  obj.style.clip = 'rect(' + clipTop + 'px,' + clipRight + 'px,' + clipBottom + 'px,' + clipLeft + 'px)';
 } else if (document.layers) {
  obj.clip.top = clipTop;
  obj.clip.bottom = clipBottom;
  obj.clip.left = clipLeft;
  obj.clip.right = clipRight;
 }
}

function getLayerClip(elementname,_which) {
 var obj = setObj(elementname);
 if ((document.getElementById || document.all) && obj.style) {
  if (obj.style.clip == 'auto') return 'auto';
  var clipv = obj.style.clip.split('rect(')[1].split(')')[0].split(" ");
  if (_which == "top")    return parseInt(clipv[0]);
  if (_which == "right")  return parseInt(clipv[1]);
  if (_which == "bottom") return parseInt(clipv[2]);
  if (_which == "left")   return parseInt(clipv[3]);
 } else if (document.layers) {
  if (_which == "top")    return obj.clip.top;
  if (_which == "right")  return obj.clip.right;
  if (_which == "bottom") return obj.clip.bottom;
  if (_which == "left")   return obj.clip.left;
 }
}

function setLayerZIndex(elementname,_order) {
 var obj = setObj(elementname);
 if ((document.getElementById || document.all) && obj.style) {
  obj.style.zIndex = _order;
 } else if (document.layers) {
  obj.zIndex = _order;
 }
}

function getLayerZIndex(elementname) {
 var obj = setObj(elementname);
 if ((document.getElementById || document.all) && obj.style) {
  return obj.style.zIndex;
 } else if (document.layers) {
  return obj.zIndex;
 } 
}

function rewriteInnerHTML(elementname,_code) {
 var obj = setObj(elementname);
 if (document.all) {
  obj.innerHTML=_code;
 } else if (document.getElementById) {
  obj.innerHTML=_code;
 } else if (document.layers) {
  obj.document.open();
  obj.document.write(_code);
  obj.document.close();
 }
}

function setDisplay(target, str) {
 var obj = setObj(target);
 if ((document.getElementById || document.all) && obj.style) {
  if (str == null) str = ( obj.style.display == 'none' || obj.style.display == '') ? 1 : 0;
  obj.style.display = (str > 0) ? 'block' : 'none';
 }
}

var hexbox = new Array(16);
for (i = 0; i < 10; i++) hexbox[i] = i;
hexbox[10]="a"; hexbox[11]="b"; hexbox[12]="c";
hexbox[13]="d"; hexbox[14]="e"; hexbox[15]="f";

function toHex(_int) {
 if (i < 0) {
  return '00';
 } else if (_int > 255) {
  return 'ff';
 } else {
  return '' + hexbox[Math.floor(_int/16)] + hexbox[_int%16];
 }
}

function preloadImg(imgName) {
 if (document.images) (new Image()).src = imgName;
}

function preloadimgApp(imgArray) {
 for (i=0; i<imgArray.length; i++) {
  preloadImg(imgArray[i]);
 }
}

function swapImage(target,src) {
 if (document.images) document.images[target].src = src;
}

var pageScrollTimer;
function pageScroll(toX,toY,frms,cuX,cuY) { // 020314
 if (pageScrollTimer) clearTimeout(pageScrollTimer);
 if (!toX || toX < 0) toX = 0;
 if (!toY || toY < 0) toY = 0;
 if (!cuX) cuX = 0 + getScrollLeft();
 if (!cuY) cuY = 0 + getScrollTop();
 if (!frms) frms = 6;

 if (toY > cuY && toY > (getAnchorPosObj('end','enddiv').y) - getInnerSize().height) toY = (getAnchorPosObj('end','enddiv').y - getInnerSize().height) + 1;
 cuX += (toX - getScrollLeft()) / frms; if (cuX < 0) cuX = 0;
 cuY += (toY - getScrollTop()) / frms;  if (cuY < 0) cuY = 0;
 var posX = Math.floor(cuX);
 var posY = Math.floor(cuY);
 window.scrollTo(posX, posY);

 if (posX != toX || posY != toY) {
  pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+cuX+","+cuY+")",16);
 }
}

function jumpToPageTop() { // 020301
// if (!MacIE3 && !MacIE4 && !NN && window.scrollTo || NN && (Vminor >= 4.75) && window.scrollTo) {
  pageScroll(0,0,5);
// } else {
//  location.hash = "top";
// }
}

function getInnerSize() {
 var obj = new Object();

 if (document.all || (document.getElementById && IE)) {
  obj.width = document.body.clientWidth;
  obj.height = document.body.clientHeight;
 } else if (document.layers || (document.getElementById && Moz)) {
  obj.width = window.innerWidth;
  obj.height = window.innerHeight;
 }

 return obj;
}

function getAnchorPosObj(elementname, elementid) {
 var obj = setObj(elementname);
 var objnew = new Object();
 var objtmp;

 if (document.getElementById && IE) {
  objtmp = obj;
  objnew.x = objtmp.offsetLeft;
  objnew.y = objtmp.offsetTop;
  while ((objtmp = objtmp.offsetParent) != null) {
   objnew.x += objtmp.offsetLeft;
   objnew.y += objtmp.offsetTop;
  }
 } else if (document.getElementById && Moz) {
//  objnew.x = document.getElementsByTagName("A").namedItem(elementname).offsetLeft;
//  objnew.y = document.getElementsByTagName("A").namedItem(elementname).offsetTop;
  objnew.x = document.getElementsByTagName("DIV").namedItem(elementid).offsetLeft;
  objnew.y = document.getElementsByTagName("DIV").namedItem(elementid).offsetTop;
 } else if (document.all) {
  objtmp = obj;
  objnew.x = objtmp.offsetLeft;
  objnew.y = objtmp.offsetTop;
  while ((objtmp = objtmp.offsetParent) != null) {
   objnew.x += objtmp.offsetLeft;
   objnew.y += objtmp.offsetTop;
  }
 } else if (document.layers) {
  objnew.x = document.anchors[elementname].x;
  objnew.y = document.anchors[elementname].y;
 } else {
  objnew.x = 0;
  objnew.y = 0;
 }
 return objnew;
}

function jumpToAnchor(elementname, elementid) {
 if (getAnchorPosObj(elementname, elementid).x != 0 || getAnchorPosObj(elementname, elementid).y != 0) {
  pageScroll(0,getAnchorPosObj(elementname, elementid).y,5);
 } else {
  location.hash = elementname;
 }
}

/* open window */

function openWindow(url,title,width,height,options) {
 var newWin;
 if (!!window && url) {
  if (!title) title = "_blank";
  if (!options) options = "toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,favorites=no";
//  if (!options) options = "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,favorites=yes";
  var whop = "width="+width+",height="+height+","+options;
  newWin = window.open(url,title,whop);
  newWin.focus();
  newWin.moveTo(0, 0)
 }
}

// セルをクリックしたときにセル内のアンカーをクリック
// onclick/onkeypress に指定
// ex) actItemClick(this);
function actItemClick(_target) {
 if (!document.styleSheets) return;
 if (window.event) {
//  if (event.srcElement.tagName == "TD") _target.children.tags("A")[0].click();
  if (event.srcElement.tagName == "TD") _target.children.tags("TABLE").item(0).getElementsByTagName("A")[0].click();
 } else {
  location.href = _target.getElementsByTagName("A")[0].href;
 }
}

// フォーカスしたときに色を変化/マウスカーソルを変化
// onmouseover/onfocus に指定
// ex) actItemFocus(this);
function actItemFocus(_target) {
 if (!document.styleSheets) return;
 var _bgColor = "#eeeeee";
 if (window.event) {
  if (!_target.contains(event.fromElement)) {
   _target.style.cursor = "hand";
   _target.style.backgroundColor = _bgColor;
  }
 } else {
  _target.style.cursor = "pointer";
  _target.style.backgroundColor = _bgColor;
 }
}

// フォーカスが離れたときに色を戻す/マウスカーソルを戻す
// onmouseout/onblur に指定
// ex) actItemBlur(this);
function actItemBlur(_target) {
 var _bgColor = "#f9f9f9";
 if (!document.styleSheets) return;
 if (window.event) {
  if (!_target.contains(event.toElement)) {
   _target.style.cursor = "default";
   _target.style.backgroundColor = _bgColor;
  }
 } else {
  _target.style.cursor = "default";
  _target.style.backgroundColor = _bgColor;
 }
}

// グローバルナビゲーション

var miniTab = {
  currentTab:     0,
  activeTab:      0,
  destX:          0,
  destW:          0,
  t:              0,
  b:              0,
  c:              0,
  d:              20,
  animInterval:   null,
  sliderObj:      null,
  aHeight:        0,
  
  init: function() {
    if(!document.getElementById || !document.getElementById("miniflex")) return;
    
    var ul          = document.getElementById("miniflex");
    var liArr       = ul.getElementsByTagName("li");
    var aArr        = ul.getElementsByTagName("a");
    
    for(var i = 0, li; li = liArr[i]; i++) {
      liArr[i].onmouseover = aArr[i].onfocus = function(e) {
        var pos = 0;
        var elem = this.nodeName == "LI" ? this : this.parentNode;
        while(elem.previousSibling) {
          elem = elem.previousSibling;
          if(elem.tagName && elem.tagName == "LI") pos++;
        }
        miniTab.initSlide(pos);
      }
    }

    ul.onmouseout = function(e) {
      miniTab.initSlide(miniTab.currentTab);
    };
    
    for(var i = 0; i < aArr.length; i++) {
      if(document.location.href.indexOf(aArr[i].href)>=0) {
        miniTab.activeTab = miniTab.currentTab = i;
      }
      aArr[i].style.borderBottom  = "0px";
      aArr[i].style.paddingBottom = "6px";
    }

    miniTab.slideObj                = ul.parentNode.appendChild(document.createElement("div"));
    miniTab.slideObj.appendChild(document.createTextNode(String.fromCharCode(160)));
    miniTab.slideObj.id             = "animated-tab";
    miniTab.slideObj.style.top      = (ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop) + "px";
    miniTab.slideObj.style.left     = (ul.offsetLeft + + liArr[miniTab.activeTab].offsetLeft + aArr[miniTab.activeTab].offsetLeft) + "px";
    miniTab.slideObj.style.width    = aArr[miniTab.activeTab].offsetWidth + "px";
    miniTab.aHeight                 = ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop;
    
    miniTab.initSlide(miniTab.activeTab, true);
    
    var intervalMethod = function() { miniTab.slideIt(); }
    miniTab.animInterval = setInterval(intervalMethod,10);
  },

  cleanUp: function() {
    clearInterval(miniTab.animInterval);
    miniTab.animInterval = null;
  },
  
  initSlide: function(pos, force) {
    if(!force && pos == miniTab.activeTab) return;
    miniTab.activeTab = pos;
    miniTab.initAnim();
  },
  
  initAnim: function() {
    var ul          = document.getElementById("miniflex");
    var liArr       = ul.getElementsByTagName("li");
    var aArr        = ul.getElementsByTagName("a");
    miniTab.destX = parseInt(liArr[miniTab.activeTab].offsetLeft + liArr[miniTab.activeTab].getElementsByTagName("a")[0].offsetLeft + ul.offsetLeft);
    miniTab.destW = parseInt(liArr[miniTab.activeTab].getElementsByTagName("a")[0].offsetWidth);
    miniTab.t = 0;
    miniTab.b = miniTab.slideObj.offsetLeft;
    miniTab.c = miniTab.destX - miniTab.b;
    miniTab.bW = miniTab.slideObj.offsetWidth;
    miniTab.cW = miniTab.destW - miniTab.bW;
    miniTab.slideObj.style.top = (ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop) + "px";
  },
  
  slideIt:function() {
    var ul          = document.getElementById("miniflex");
    var liArr       = ul.getElementsByTagName("li");
    var aArr        = ul.getElementsByTagName("a");
    
    // Has the browser text size changed?
    if(miniTab.aHeight != ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop) {
      miniTab.initAnim();
      miniTab.aHeight = ul.offsetTop + liArr[miniTab.activeTab].offsetTop + aArr[miniTab.activeTab].offsetTop
    };
    
    if(miniTab.t++ < miniTab.d) {
      var x = miniTab.animate(miniTab.t,miniTab.b,miniTab.c,miniTab.d);
      var w = miniTab.animate(miniTab.t,miniTab.bW,miniTab.cW,miniTab.d);
      miniTab.slideObj.style.left = parseInt(x) + "px";
      miniTab.slideObj.style.width = parseInt(w) + "px";
    } else {
      miniTab.slideObj.style.left = miniTab.destX + "px";
      miniTab.slideObj.style.width = miniTab.destW +"px";
    }
  },

  animate: function(t,b,c,d) {
    if ((t/=d/2) < 1) return c/2*t*t + b;
    return -c/2 * ((--t)*(t-2) - 1) + b;
  }
}

window.onload = miniTab.init;
window.onunload = miniTab.cleanUp;



