var trace = (window.console) ? function (str) { window.console.log(str); } : function() { void(0); };
var _mizuyariBasePath = '/concert/compo/2010/shared/';

function MizuyariObject() { // MizuyariObject #080703
 var self = arguments.callee;
 var d  = document;
 var ua = navigator.userAgent;
 this.ua = {};
 this.ua.isMac     = /Mac/.test(ua);
 this.ua.isWin     = /Win/.test(ua);
 this.ua.isSafari  = /AppleWebKit/.test(ua);
 this.ua.isKHTML   = /KHTML|Konqueror|AppleWebKit/.test(ua);
 this.ua.isFirefox = /Firefox\//.test(ua);
 this.ua.isGecko   = /Gecko\//.test(ua);
 this.ua.isOpera   = !!window.opera;
 this.ua.isNN4     = !!d.layers;
 this.ua.isWinIE   = (this.ua.isWin && /MSIE /.test(ua) && !this.ua.isOpera);
 this.ua.isWinIE80 = (this.ua.isWinIE && /Trident\/4\.0/.test(ua));
 this.ua.isWinIE70 = (this.ua.isWinIE && /MSIE 7\.0/.test(ua));
 this.ua.isWinIE60 = (this.ua.isWinIE && /MSIE 6\.0/.test(ua));
 this.ua.isWinIE55 = (this.ua.isWinIE && /MSIE 5\.5/.test(ua));
 this.ua.isWinIE50 = (this.ua.isWinIE && /MSIE 5\.0/.test(ua));
 this.ua.isWinIE40 = (this.ua.isWinIE && /MSIE 4\.0/.test(ua));
 this.ua.isMacIE   = (this.ua.isMac && /MSIE /.test(ua) && !this.ua.isOpera);
 this.ua.isMacIE5  = (this.ua.isMacIE && /MSIE 5\./.test(ua));
 this.screen = new MizuyariObject_Screen(this);
 this.mouse = {};
 this.mouse.x = 0;
 this.mouse.y = 0;
 this.mouse.localX = 0;
 this.mouse.localY = 0;
 this.mouse.buttonDown = false;
 this.mouse.relatedObject = null;
 this.startUpEvents = [];
 this.startUpTimer = null;
 this.startUpInit();
 this.mizInitFlag  = false;
 if (self._instance == null) self._instance = this;
 return self._instance;
}

MizuyariObject.prototype = {

getMouseEvent : function(e) { // getMouseEvent #071010
 this.mouse.relatedObject = e.target;

 switch (e.type) {
  case "mousedown":
   this.mouse.buttonDown = true;
   break;

  case "mouseup":
   this.mouse.buttonDown = false;
   break;

  case "mousemove":
   this.mouse.x = getPageXOffset() + e.clientX;
   this.mouse.y = getPageYOffset() + e.clientY;   
   this.mouse.localX = e.target.offsetLeft;
   this.mouse.localY = e.target.offsetTop;
   break;

  default:

 }
},

getMouseCursorPosition : function(e) { // getMouseCursorPosition #071010
 var x = e.clientX;
 var y = e.clientY;
 this.mouse.x = x;
 this.mouse.y = y;
},

getFlashVersion : function (format) { // getFlashVersion #071003
 var pluginName;
 var mimeType = "application/x-shockwave-flash";
 var hasPlugin = (navigator.mimeTypes && navigator.mimeTypes[mimeType]) ? navigator.mimeTypes[mimeType].enabledPlugin : 0;
 var pluginVersion = -1;
 if (!format) format = 0; // 0: MajorVer (Default), 1: Array(MajorVer,MinorVer,Revision,Build);
 if (hasPlugin) {
  pluginName = (navigator.plugins["Shockwave Flash 2.0"]) ? "Shockwave Flash 2.0" : "Shockwave Flash";
  var descArray = navigator.plugins[pluginName].description.split(" ");
  var tempArray = descArray[2].split(".");
  var tempRevision = (descArray[3] != "") ? descArray[3].substring(1) : descArray[4].substring(1);
  tempArray[2] = (tempRevision > 0) ? tempRevision : 0;
  tempArray[3] = "0";
  return (format > 0) ? tempArray : tempArray[0];
 } else if (this.ua.isWinIE) {
  var controlVersion = this.getFlashControlVersion();
  if (controlVersion != -1) {
   var controlVersionArray = controlVersion.split(" ");
   var tempArray = controlVersionArray[1].split(",");
   return (format > 0) ? tempArray : tempArray[0];
  } else {
   return pluginVersion;
  }
 }
 return pluginVersion;
},

getFlashControlVersion : function() { // getFlashVersion #071003
 var version;
 var axo;
 var e;
 var appNamePrefix = "ShockwaveFlash.ShockwaveFlash";

 try { // for Flash Player 7.x or higher
  axo = new ActiveXObject(appNamePrefix + ".7");
  version = axo.GetVariable("$version");
 } catch (e) {
 }

 if (!version) { // for Flash Player 6.x
  try {
   axo = new ActiveXObject(appNamePrefix + ".6");
   version = "WIN 6,0,21,0";
   axo.AllowScriptAccess = "always";
   version = axo.GetVariable("$version");
  } catch (e) {
  }
 }

 if (!version) { // for Flash Player 5.x and 4.x
  try {
   axo = new ActiveXObject(appNamePrefix + ".3");
   version = axo.GetVariable("$version");
  } catch (e) {
  }
 }

 if (!version) { // for Flash Player 3.x
  try {
   axo = new ActiveXObject(appNamePrefix + ".3");
   version = "WIN 3,0,18,0";
  } catch (e) {
  }
 }

 if (!version) { // for Flash Player 2.x
  try {
   axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
   version = "WIN 2,0,0,11";
  } catch (e) {
   version = -1;
  }
 }
 
 return version;
},

addEvent : function (obj, type, event) { // addEvent #090909
 if(obj.addEventListener) {
  obj.addEventListener(type, bindFunc(obj, event), false);
 } else if(obj.attachEvent) {
	obj.attachEvent('on'+type, bindFunc(obj, event)); 
 } else {
  obj['on'+type] = event;
 }
 
 function bindFunc(bind, func){
  return function(){
   return func.apply(bind, arguments);
  };
 }
 // ref. http://d.hatena.ne.jp/kminoru/20080228/1204250525
},

addOnLoadEvent : function (event) { // addOnLoadEvent #080703
 // if (this.ua.isWinIE || this.ua.isKHTML && !document.compatMode) {
 if (this.ua.isKHTML && !document.compatMode) {
  return this.startUpEvents.push(event);
 }
 // Safari 3.1 supports "DOMContentLoaded" and "document.compatMode"
 var type = (this.ua.isGecko || this.ua.isKHTML && document.compatMode || this.ua.isOpera) ? 
  "DOMContentLoaded" : "load";
 this.addEvent(window, type, event);
},

startUpInit : function() { // startUpInit #090729
 // ref.: http://dean.edwards.name/weblog/2006/06/again/
 if (this.ua.isKHTML && !document.compatMode) {
  this.startUpTimer = setInterval(function() {
   if (/loaded|complete/.test(document.readyState)) {
    mizuyari.safariStartUpEvents();
   }
  }, 10);
 }
},

ieStartUpEvents : function() { // ieStartUpEvents #080702
 var events = this.startUpEvents;
 for (var i=0; i<events.length; i++) events[i]();
},

safariStartUpEvents : function() { // safariStartUpEvents #080703
 if (this.startUpTimer) clearInterval(this.startUpTimer);
 var events = this.startUpEvents;
 for (var i=0; i<events.length; i++) {
  events[i]();
 }
},

addClass : function (obj, classes) { // addClass #071029
 var newClasses = "";
 var myClass = obj.className.split(/\s+/);
 if (typeof(classes) == 'string') classes = [classes];
 for(i=0; i<classes.length; i++) {
  if (!myClass.contains(classes[i])) myClass[myClass.length] = classes[i];
 }
 obj.className = myClass.join(' ');
},

removeClass : function (obj, classes) { // removeClass #071004
 var myClass = obj.className.split(/\s+/);
 obj.className = myClass.remove(classes, ' ');
},

getClasses : function (obj) { // getClasses #071004
 var myClass = obj.className.split(/\s+/);
 return myClass;
},

replaceClass : function (obj, className1, className2) { // replaceClass #071004
 var myClass = obj.className.split(/\s+/);
 if (myClass.contains(className1)) {
  this.removeClass(obj, className1);
  this.addClass(obj, className2);
 }
},

containsClass : function (obj, className) { // containsClass #071004
 var myClass = obj.className.split(/\s+/);
 return (myClass.contains(className));
},

addCSS : function (src, id) { // addCSS #080327
 if (!document.getElementsByTagName) return;
 var headElmt = document.getElementsByTagName('head')[0];
 var newLinkElmt = document.createElement('link');
 if (id)  newLinkElmt.setAttribute("id",id);
 newLinkElmt.setAttribute("rel","stylesheet");
 newLinkElmt.setAttribute("type","text/css");
 newLinkElmt.type="text/css";
 newLinkElmt.href= src;
 headElmt.appendChild(newLinkElmt);
},

removeCSS : function (id) { // addCSS #080327
 if (!document.getElementsByTagName) return;
 if (miz$(id)) {
  var childElmt = miz$(id);
  var parentElmt = miz$(id).parentNode;
  parentElmt.removeChild(childElmt);
 }
},

// ref. https://developer.mozilla.org/Ja/Core_JavaScript_1.5_Reference/Global_Objects/String/Replace
styleHyphenFormat : function(propertyName) { // styleHyphenFormat
  function upperToHyphenLower(match) {
    return '-' + match.toLowerCase();
  }
  return propertyName.replace(/[A-Z]/, upperToHyphenLower);
},

getElementHeight : function(obj) {
	var padding = 
		eval( (/^([0-9]+)([a-z%]*)$/.exec(this.getStyleProperty(obj, 'paddingTop'))||[])[1] ) +
		eval( (/^([0-9]+)([a-z%]*)$/.exec(this.getStyleProperty(obj, 'paddingBottom'))||[])[1] );
	return obj.clientHeight - padding;
},

getStyleProperty : function(obj, propName, pseudoClassName ) { // getStyleProperty #090924
	var tempPropValue;
	if (document.defaultView && document.defaultView.getComputedStyle) {
		propName = this.styleHyphenFormat(propName);
		tempPropValue = document.defaultView.getComputedStyle(obj, pseudoClassName).getPropertyValue(propName);
		if (isNaN(parseInt(tempPropValue))) {
			return tempPropValue;
		} else {
			return parseInt(tempPropValue);
		}
	} else if (obj.currentStyle) {
		var tempPropValue = eval( (/^(-?[0-9\.]+)([a-z%]*)$/.exec( obj.currentStyle[propName] )||[]) );
		if (tempPropValue[0] == null) return obj.currentStyle[propName];
		var fontSizePx = mizuyari.getFontSizeProperty(obj);
		if (propName == "fontSize") return fontSizePx;
		var propValuePx = 1;
		
		switch ( tempPropValue[2] ) {
			case "":
				propValuePx = fontSizePx * parseFloat(tempPropValue[1]);
				break;

			case "%":
				propValuePx = fontSizePx * parseFloat(tempPropValue[1] / 100);
				break;

			case "em":
				propValuePx = fontSizePx * parseFloat(tempPropValue[1]);
				break;

			case "px":
				propValuePx = parseFloat(tempPropValue[1]);
				break;

			case "pt":
				var dpi = mizuyari.screen.getDPI();
				propValuePx = parseFloat(tempPropValue[1] / 72 * dpi);
				break;

			default:
				propValuePx = parseFloat(tempPropValue[1]);
				break;
		}
		return propValuePx;
	}
	return -1;
},

getFontSizeProperty : function(obj,debug) { // getStyleProperty #090924
	if (document.defaultView && document.defaultView.getComputedStyle) {
		return parseInt(document.defaultView.getComputedStyle(obj, '').fontSize);
	} else if (obj.currentStyle) {
		var tempFontSize = [];
		var fontSizePx = 1;
		var currentElmt = obj;
		while (currentElmt.currentStyle) {
			var currentElmtFontSize = eval( (/^(-?[0-9\.]+)([a-z%]*)$/.exec( currentElmt.currentStyle['fontSize']  )||[]) );
			var isAbsUnit = false;	
			if (debug) trace('[bf]' + currentElmtFontSize);
			switch ( currentElmtFontSize[2] ) {
				case "":
					tempFontSize[tempFontSize.length] = parseFloat(currentElmtFontSize[1]);
					break;
	
				case "%":
					tempFontSize[tempFontSize.length] = parseFloat(currentElmtFontSize[1] / 100);
					break;
	
				case "em":
					tempFontSize[tempFontSize.length] = parseFloat(currentElmtFontSize[1]);
					break;
	
				case "px":
					tempFontSize[tempFontSize.length] = parseFloat(currentElmtFontSize[1]);
					isAbsUnit = true;
					break;
	
				case "pt":
					var dpi = mizuyari.screen.getDPI();
					tempFontSize[tempFontSize.length] = parseFloat(currentElmtFontSize[1] / 72 * dpi);
					isAbsUnit = true;
					break;
	
				default:
					tempFontSize[tempFontSize.length] = parseFloat(currentElmtFontSize[1]);
					break;
			}
			if (debug) trace('[af]' + tempFontSize[tempFontSize.length-1]);
			if (isAbsUnit) break;
			currentElmt = currentElmt.parentNode;
		}
		for (var i=0; i<tempFontSize.length; i++) {
			fontSizePx *= tempFontSize[i];
		}
		return fontSizePx;
	}
	return -1;
},

addAttributes : function (obj, attributes) { // addAttributes #080625
  for (var key in attributes) {
   if (key == "class" && mizuyari.ua.isWinIE) {
    obj.setAttribute("className", attributes[key]);
    continue;
   }
   if (key == "style" && mizuyari.ua.isWinIE) {
    obj.style.cssText = attributes[key];
    continue;
   }
   if (key.substring(0,2) == "on" && mizuyari.ua.isWinIE) {
    obj.setAttribute(key, new Function(attributes[key]));
    continue;
   }
   obj.setAttribute(key, attributes[key]);
  }
},

elementFactory : function (tagName, attributes) { // elementFactory #080624
 var newElement = document.createElement(tagName);
 this.addAttributes(newElement, attributes);
 return newElement;
}

};

function MizuyariObject_Screen(obj) {
	this.self = obj;
}
MizuyariObject_Screen.prototype = {

getDPI : function() { // getDPI #090925
	var dpi = null;
	var newElmt = this.self.elementFactory('DIV',{
		id : 'miz-getdpi',
		style : 'font-size: 12pt; line-height: 1; padding: 0; position: absolute; top: -32768px; left: -32768px;'
	});
	newElmt.innerHTML = 'A';
	var bodyElmt = document.getElementsByTagName('BODY')[0];
	bodyElmt.appendChild(newElmt);
	dpi = newElmt.clientHeight / 12 * 72; // 1 pt = 1/72 inch
	bodyElmt.removeChild(newElmt);
	return dpi;
},

getScreenWidth : function () { // getScreenWidth #060524
 if(window.innerWidth) {
  return window.innerWidth;
 } else if(document.compatMode == "CSS1Compat") {
  return document.body.parentNode.clientWidth;
 } else if (document.body.clientWidth) {
  return document.body.clientWidth;
 } else {
   return 0;
 }
},

getScreenHeight : function () { // getScreenHeight #060524
 if(window.innerHeight) {
  return window.innerHeight;
 } else if(document.compatMode == "CSS1Compat") {
  return document.body.parentNode.clientHeight;
 } else if (document.body.clientHeight) {
  return document.body.clientHeight;
 } else {
  return 0;
 }
}

}


function miz$(id) { // miz$ #070928
 if (!document.getElementById) return;
 if (typeof(id) == 'string') return document.getElementById(id);
 return;
}

function preloadImg(src) {
 if (document.images && src) (new Image()).src = src;
}

function preloadImgs(srcs) {
 if (document.images && srcs) {
  for (i=0; i<srcs.length; i++) preloadImg(srcs[i]);
 }
}

function mizExternalLink() {
	var elmts = getElementsByClassName('external');
	if (elmts.length < 1) return;
	
	for (var i=0; i<elmts.length; i++) {
		elmts[i].onclick = function() {
			var target = this.target || '_blank';
			window.open(this.href, target);
			return false;
		};
		elmts[i].onkeypress = function() {
			var target = this.target || '_blank';
			window.open(this.href, target);
			return false;
		};
	}
}

function openWindow(url,title,options) {
 var newWin;
 if (!!window && url) {
  if (!title) title = "_blank";
  if (!options) {
   options = "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,favorites=yes";
  }
  newWin = window.open(url,title,options);
  if (!mizuyari.ua.isWinIE55) newWin.focus();
 }
}

function isEnableCloseThisWindow() { // isEnableCloseThisWindow #061015
 if (!(UA.indexOf("Gecko/") != -1) && !(UA.indexOf("Safari") != -1)) return true;
 if (!window.opener) return false;
 return true;
}

function win_closed(winVar) {
// ref. the original code: http://game.gr.jp/js-ml/samples/200102/openerTest.html
 var ua = navigator.userAgent
 if( !!winVar )
  if( ( ua.indexOf('Gecko')!=-1 || ua.indexOf('MSIE 4')!=-1 )
     && ua.indexOf('Win')!=-1 ) 
     return winVar.closed
  else return typeof winVar.document  != 'object'
 else return true
}

function setHRefTarget(url) { // setHRefTarget #061107
 var w = window;
 var wo = w.opener;
 if (win_closed(wo)) {
  location.href = url;
 } else {
  if (url != wo.location.href) wo.location.href = url;
  wo.focus();
 }
}

function getUrlParam( url, name, value ) {
 var pos_s = url.indexOf( name + "=" );
 if( pos_s < 0 ) return value;
 var url = url.substring( pos_s + name.length + 1 );
 var pos_e = url.indexOf( '&' );
 if( pos_e < 0 ) return decodeURIComponent( url );
 return decodeURIComponent( url.substring( 0, pos_e ));
}
// via: http://yamachan-cs.blogspot.com/2007/01/js-url.html

function mizSwapImgs() { // mizSwapImgs #071227
 if(!document.getElementById) return;
 if(!document.images) return;
 var tClassName = "swapImg";
 var clearImg = "/shared/styles/components/clear.gif";
 var preImgs = new Array();
 var imgElmt = document.getElementsByTagName("IMG");
 for (j=0; j<imgElmt.length; j++) {
  var strClassAttr = imgElmt[j].className.split(" ").toString();
  if (strClassAttr.indexOf(tClassName) != -1) {
   var tmpArr = preImgs;
   var tmpElmt = imgElmt[j];
   var defaultSrc = "" + tmpElmt.src;
   var appliedAlphaImageLoader = false;
   if (defaultSrc.indexOf(clearImg) != -1) {
    appliedAlphaImageLoader = true;
    if (tmpElmt.orgsrc) defaultSrc = tmpElmt.orgsrc;
   }
   var fileExt = defaultSrc.substring(defaultSrc.lastIndexOf('.'));
   var fileName = defaultSrc.substring(0,defaultSrc.length - fileExt.length);
   var idPrefix = "mizImg";
   if (!tmpElmt.id) tmpElmt.id = idPrefix + "_" + j;
   tmpElmt.stayFlag = (strClassAttr.indexOf("stay") != -1) ? true : false;
   tmpElmt.up = defaultSrc;
   tmpElmt.over = fileName + "_o" + fileExt;
   if (preImgs.toString().indexOf(tmpElmt.over) == -1) preImgs[preImgs.length] = tmpElmt.over;
   var parentElmt = tmpElmt.parentNode;
   // if (parentElmt.tagName=="A") {
    tmpElmt.targetId = tmpElmt.id;
    tmpElmt.focusImg = tmpElmt.over;
    tmpElmt.blurImg = (!tmpElmt.stayFlag) ? tmpElmt.up : tmpElmt.over;
    if (appliedAlphaImageLoader) {
     tmpElmt.onfocus = tmpElmt.onmouseover = function() {
      miz$(this.targetId).runtimeStyle.filter =
       'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.focusImg + '", sizingMethod=image)';
      miz$(this.targetId).src = clearImg;
     }
     tmpElmt.onblur = tmpElmt.onmouseout = function() {
      miz$(this.targetId).runtimeStyle.filter =
       'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.blurImg + '", sizingMethod=image)';
      miz$(this.targetId).src = clearImg;
     }
    } else {
     tmpElmt.onfocus = tmpElmt.onmouseover = function() {
      miz$(this.targetId).src = this.focusImg;
     }
     tmpElmt.onblur = tmpElmt.onmouseout = function() {
      miz$(this.targetId).src = this.blurImg;
     }
    }
   // }
  }
 }
 var inputElmt = document.getElementsByTagName("INPUT");
 for (j=0; j<inputElmt.length; j++) {
  if (inputElmt[j].type.toLowerCase() != "image") continue;
  var strClassAttr = inputElmt[j].className.split(" ").toString();
  if (strClassAttr.indexOf(tClassName) != -1) {
   var tmpArr = preImgs;
   var tmpElmt = inputElmt[j];
   var defaultSrc = "" + tmpElmt.src;
   var fileExt = defaultSrc.substring(defaultSrc.lastIndexOf('.'));
   var fileName = defaultSrc.substring(0,defaultSrc.length - fileExt.length);
   var idPrefix = "mizInput";
   if (!tmpElmt.id) tmpElmt.id = idPrefix + "_" + j;
   tmpElmt.stayFlag = (strClassAttr.indexOf("stay") != -1) ? true : false;
   tmpElmt.up = defaultSrc;
   tmpElmt.over = fileName + "_o" + fileExt;
   if (preImgs.toString().indexOf(tmpElmt.over) == -1) preImgs[preImgs.length] = tmpElmt.over;
    tmpElmt.targetId = tmpElmt.id;
    tmpElmt.focusImg = tmpElmt.over;
    tmpElmt.blurImg = (!tmpElmt.stayFlag) ? tmpElmt.up : tmpElmt.over;
    tmpElmt.onfocus = tmpElmt.onmouseover = function() { this.src = this.focusImg; }
    tmpElmt.onblur = tmpElmt.onmouseout = function() { this.src = this.blurImg; }
  }
 }
 preloadImgs(preImgs);
}

var pageScrollTimer;
function pageScroll(id,toX,toY,frms,cuX,cuY) { // pageScroll #070202
 if (pageScrollTimer) clearTimeout(pageScrollTimer);
 if (!toX || toX < 0) toX = 0;
 if (!toY || toY < 0) toY = 0;
 if (!cuX) cuX = getPageXOffset();
 if (!cuY) cuY = getPageYOffset();
 if (!frms) frms = 6;
 cuX += (toX - getPageXOffset()) / frms; if (cuX < 0) cuX = 0;
 cuY += (toY - getPageYOffset()) / 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('"+id+"',"+toX+","+toY+","+frms+","+cuX+","+cuY+")",16);
 } else {
  if (!mizuyari.ua.isWinIE70) location.hash = id;
 }
}

function mizScrollApp(id) { // mizScrollApp #070202
 var toX, toY;
 toX = 0;
 if (!mizuyari.ua.isMacIE && !mizuyari.ua.isNN4 && window.scrollTo || mizuyari.ua.isNN475 && window.scrollTo) {
  toY = getElementOffsetTopById(id);
  var HTMLScrollHeight = getHTMLScrollHeight();
  var windowInnerHeight = getWindowInnerHeight();
  if (toY > (HTMLScrollHeight - windowInnerHeight)) {
   toY = HTMLScrollHeight - (windowInnerHeight);
  }
  if (toY == getPageYOffset() || HTMLScrollHeight == windowInnerHeight) return;
  pageScroll(id,toX,toY,6);
 } else {
  location.hash = id;
 }
}

function jumpToPageTop() { // jumpToPageTop #060817
 var id = "page-top"
 if (!mizuyari.ua.isNN4 && window.scrollTo || mizuyari.ua.isNN475 && window.scrollTo) {
  pageScroll(id,0,0,5);
 } else {
  location.hash = id;
 }
}

function getPageXOffset() { // getPageXOffset #060524
 if (window.pageXOffset) {
  return window.pageXOffset;
 } else if (document.compatMode == "CSS1Compat") {
  return document.documentElement.scrollLeft;
 } else if (document.body.scrollLeft) { // for IE
  return document.body.scrollLeft;
 } else {
  return 0;
 }
}

function getPageYOffset() { // getPageYOffset #060524
 if (window.pageYOffset) {
  return window.pageYOffset;
 } else if (document.compatMode == "CSS1Compat") {
  return parseInt(document.documentElement.scrollTop);
 } else if (document.body.scrollTop) { // for IE
  return parseInt(document.body.scrollTop);
 } else {
  return 0;
 }
}

function getElementOffsetTopById(id) { // getElementOffsetTopById #060524 (#071003)
 if (!mizInitFlag) return;
 id = String(id);
 var element = miz$(id);
 return getElementOffsetTop(element);
}

function getElementOffsetTop(element) { // getElementOffsetTop #070201
 if (!mizInitFlag) return;
 var _tempElement = element;
 var _tempOffsetTop = null;
 this._totalOffsetTop = 0;
 this._log = '';
 this._debug = false;
 this._bench = undefined;
 if (this._debug) { this._bench = new mizFuncBench; this._bench.begin(); }
 while (_tempElement.offsetParent != undefined) {
  _tempOffsetTop = !isNaN(_tempElement.offsetTop) ? parseInt(_tempElement.offsetTop) : 0;
  if (this._debug) this._log = "/" + _tempElement.tagName + '#' + _tempElement.id + '(' + _tempOffsetTop + ')' + this._log;
  this._totalOffsetTop += _tempOffsetTop;
  // if (Win && IE) break;
  _tempElement = _tempElement.offsetParent;
 }
 if (this._debug) this._log = this._log + '(total:' + this._totalOffsetTop + ',' + this._bench.finish() + 'ms)';
 return this._totalOffsetTop;
 // return this._log;
}


function getElementOffsetLeftById(id) { // getElementOffsetLeftById #090202
 if (!mizInitFlag) return;
 id = String(id);
 var element = miz$(id);
 return getElementOffsetLeft(element);
}

function getElementOffsetLeft(element) { // getElementOffsetLeft #090202
 if (!mizInitFlag) return;
 var _tempElement = element;
 var _tempOffsetLeft = null;
 this._totalOffsetLeft = 0;
 this._log = '';
 this._debug = false;
 this._bench = undefined;
 if (this._debug) { this._bench = new mizFuncBench; this._bench.begin(); }
 while (_tempElement.offsetParent != undefined) {
  _tempOffsetLeft = !isNaN(_tempElement.offsetLeft) ? parseInt(_tempElement.offsetLeft) : 0;
  if (this._debug) this._log = "/" + _tempElement.tagName + '#' + _tempElement.id + '(' + _tempOffsetLeft + ')' + this._log;
  this._totalOffsetLeft += _tempOffsetLeft;
  // if (Win && IE) break;
  _tempElement = _tempElement.offsetParent;
 }
 if (this._debug) this._log = this._log + '(total:' + this._totalOffsetLeft + ',' + this._bench.finish() + 'ms)';
 return this._totalOffsetLeft;
 // return this._log;
}

function setElementDisplay(element, status) { // setElementDisplay #070427 (#071003)
 var tElement;
 if (!document.getElementById) return;
 tElement = miz$(element);
 miz$(element).style.display = status;
}

function toggleDisplay(element) { // toggleDisplay #070427 (#071003)
 var tElement;
 if (!document.getElementById) return;
 tElement = miz$(element);
 if (tElement.style.display == "") {
  tElement.style.display = "block";
 } else if (tElement.style.display != "none") {
  tElement.style.display = "none";
 } else {
  tElement.style.display = "block";
 }
}


function getWindowInnerWidth() { // getWindowInnerWidth #061107
 if(window.innerWidth) {
  return window.innerWidth;
 } else if(document.compatMode == "CSS1Compat") {
  return document.body.parentNode.clientWidth;
 } else if (document.body.clientWidth) {
  return document.body.clientWidth;
 } else {
  return 0;
 }
}

function getWindowInnerHeight() { // getWindowInnerHeight #060524
 if(window.innerHeight) {
  return window.innerHeight;
 } else if(document.compatMode == "CSS1Compat") {
  return document.body.parentNode.clientHeight;
 } else if (document.body.clientHeight) {
  return document.body.clientHeight;
 } else {
  return 0;
 }
}

function getHTMLScrollWidth() { // getHTMLScrollHeight #070202
 return document.getElementsByTagName('html')[0].scrollWidth;
}
function getHTMLScrollHeight() { // getHTMLScrollHeight #070131
 return document.getElementsByTagName('html')[0].scrollHeight;
}

function getWindowScrollMaxX() { // getWindowScrollMaxX #090312
 return (window.scrollMaxX) ? window.scrollMaxX : getHTMLScrollWidth() - getWindowInnerWidth();
};
function getWindowScrollMaxY() { // getWindowScrollMaxY #090312
 return (window.scrollMaxY) ? window.scrollMaxY : getHTMLScrollHeight() - getWindowInnerHeight();
};


function getCookie(name) {
 if (!name || !document.cookie) return;
 var cookies = document.cookie.split("; ");
 for (var i=0; i<cookies.length; i++) {
  var str = cookies[i].split("=");
  if (str[0] != name) continue;
  return unescape(str[1]);
 }
 return;
}
function setCookie(name, value, domain, path, expires, secure) {
 if (!name) return;
 var str = name + "=" + escape(value);
 if (domain) {
  if (domain == 1) domain = location.hostname.replace(/^[^\.]*/, "");
  str += "; domain=" + domain;
 }
 if (path) {
  if (path == 1) path = location.pathname;
  str += "; path=" + path;
 }
 if (expires) {
  var nowtime = new Date().getTime();
  expires = new Date(nowtime + (60 * 60 * 24 * 1000 * expires));
  expires = expires.toGMTString();
  str += "; expires=" + expires;
 }
 if (secure && location.protocol == "https:") {
  str += "; secure";
 }
 document.cookie = str;
}
// ref.: http://www9.plala.or.jp/oyoyon/html/script/cookie.html


// ========== debug ==========

function mizFuncBench() { // mizFuncBench #071004
 this._start  = null;
 this._end    = null;
 this.begin();
}
mizFuncBench.prototype.begin = function () {
 this._start = (new Date()).getTime();
}
mizFuncBench.prototype.finish = function () {
 if (this._start == null) return false;
 this._end = (new Date()).getTime();
 return eval((this._end - this._start));
}

// ========== extend: Date Object ==========

Date.prototype.isLeapYear = function() {
 var year = this.getFullYear();
 return ((year%4 == 0) && (year%100 != 0) || (year%400 == 0)) ? true : false;
}

Date.prototype.getMonthDays = function() {
 var monthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 if (this.isLeapYear()) monthDays[1] = 29;
 return monthDays[this.getMonth()];
}

// http://text.readalittle.net/article.php?id=135
Array.prototype.contains = function(value) {
 for (var i in this) {
  if (this.hasOwnProperty(i) && this[i] === value) {
   return true;
  }
 }
 return false;
}

// ref. the Original Code: http://youmos.com/reference/array_remove_js
Array.prototype.indexOf = function(value){
 var i = this.length;
 while(i){
  if(this[--i] == value) return i;
 }
 return -1;
};
Array.prototype.remove = function(value, cap){
 var i = this.length; var a;
 while(i--) {
  if(value.indexOf(a = this.pop()) == -1) { this.unshift(a); }
 }
 return (cap)? this.join(cap) : this;
};

// ref. the Original Code: http://www.tagindex.com/kakolog/q4bbs/201/422.html

// Function#apply
if ('undefined' == typeof Function.prototype.apply)
 Function.prototype.apply = function (thisObj, argArray) {
 var result;
 var tmpObj = (null == thisObj) ? window : thisObj;
 var tmpArg = Array.prototype.slice (arguments, 0).toString ();
        
 tmpObj._$method = this;
 result = eval ('tmpObj._$method (' + tmpArg + ')');
 delete tmpObj._$method;
        
 return result;
}
// Function#call
if ('undefined' == typeof Function.prototype.call)
 Function.prototype.call = function (thisObj) {
 return Function.prototype.apply (thisObj, Array.prototype.slice (arguments, 1));
}

// Function#getElementsByClassName
/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

// ========== global ==========

function mizGlobal_init() { // mizInit #071004
	if (mizInitFlag) return;
	mizSwapImgs();
	mizExternalLink();
	mizInitFlag = true;
    if ( window.onload && ( window.onload !== window.mizGlobal_init ) ) {
        window.onload();
        window.onload = function() {};
	}
}

function mizGlobal_onError(e) { // mizGlobal_onError #071010
 return e;
}
function mizGlobal_mouseEvent(e) { // mizGlobal_onMouseDown #071010
 mizuyari.getMouseEvent.apply(mizuyari, arguments);
}
function mizGlobal_keyEvent(e) { // mizGlobal_onMouseDown #071010
 mizuyari.getKeyEvent.apply(mizuyari, arguments);
}

var mizuyari = new MizuyariObject();
var mizInitFlag = mizuyari.mizInitFlag;
// mizuyari.addEvent(window, "mousedown", mizGlobal_mouseEvent);
// mizuyari.addEvent(window, "mouseup", mizGlobal_mouseEvent);
// mizuyari.addEvent(window, "mousemove", mizGlobal_mouseEvent);
mizuyari.addEvent(window, "error", mizGlobal_onError);
mizuyari.addOnLoadEvent(mizGlobal_init);
