// #require MooTools 1.2.x
if (window.addEvent) {

// Fix Opacity Treatment
Element.Properties.opacity.set = function (opacity, novisibility) {
	if (!novisibility){
		if (opacity == 0) {
			if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';
		} else {
			if (this.style.visibility != 'visible') this.style.visibility = 'visible';
		}
	}
	if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
	if (Browser.Engine.trident) {
		if (opacity == 1) {
			this.style.filter = this.style.filter.replace(/alpha\(opacity=[0-9\.]+\)/, '').clean();
		} else {
			try {
				if (this.filters && this.filters['alpha']) {
					this.filters['alpha'].opacity = opacity * 100;
				} else {
					this.style.filter = (this.style.filter + ' alpha(opacity=' + opacity * 100 + ')').clean();
				}
			} catch (ex) {
				// When this element is not injected inside DOM.
				this.style.filter = (this.style.filter + ' alpha(opacity=' + opacity * 100 + ')').clean();
			}
		}
	}
	this.style.opacity = opacity;
	this.store('opacity', opacity);

};
// Adjust Transitions.Expo
Fx.Transitions.extend({
	Expo: function(p){
//		return Math.pow(2, 8 * (p - 1));	// original
		return Math.pow(2, 8 * (p - 1)) - 1/256;	// result is exactly 0 when p := 0
//		return (Math.pow(2, 8 * p) - 1) / 255;	// result is exactly 0 when p := 0, and exactly 1 when p := 1
	}
});

// GrandNavi
window.addEvent('domready', function () {
	var liInners = [];
	$$('#grand-navi ul.menu ul.submenu').each(function (submenu) {
		var wrapper = new Element('div', {
			'class': 'submenu-wrapper'
		}).wraps(submenu);
		submenu.store('wrapper', wrapper).setStyle('display', 'block');
		wrapper.fade('hide').setStyle('display', 'none');
		//
	//	var slider = submenu.get('slide', { link: 'cancel' }).hide();
		var fader = wrapper.get('tween', {duration:'short'});
		(['in', 'out', 'show', 'hide', 'toggle']).each(function (meth) {
			fader[meth] = function () {
				wrapper.fade(meth);
				return this;
			};
		});
		var liInner = new Element('div', {
			'class': 'li-inner',
			'styles': { 'position': 'relative' }
		});
		liInners.push(liInner);
		liInner.inject(wrapper.getParent(), 'top');
		liInner.adopt([wrapper.getPrevious(), wrapper]);
		var openSubmenu = liInner.openSubmenu = function () {
	//		slider.slideIn();
			liInner.addClass('hover');
			wrapper.setStyle('display', 'block').fade('in');
		};
		var closeSubmenu = liInner.closeSubmenu = function () {
	//		slider.slideOut();
		//	wrapper.fade('out');
			fader.out().chain(function () {
				wrapper.setStyle('display', 'none');
				liInner.removeClass('hover');
			});
		};
		liInner.addEvent('mouseenter', openSubmenu).addEvent('mouseleave', closeSubmenu);
		wrapper.getPrevious().addEvent('focus', openSubmenu)/*.addEvent('blur', closeSubmenu)*/;
		//
		submenu.getElements('li').each(function (li) {
			var link = li.getElement('a');
			if (!link)	return;
			var defPosition = (link.target) ? '-160px 0px' : '-188px 0px';
			link.addEvent('mouseenter', function () {
				li.setStyle('background-position', '0px 0px');
			}).addEvent('mouseleave', function () {
				li.setStyle('background-position', defPosition);
			});
			li.setStyle('background-position', defPosition);
		});
		// for IE
		if (Browser.Engine.trident) {
			submenu.setStyle('background-image', 'none');
			var bg = new Element('div', {
				styles: {
					'position': 'absolute',
					'left': 0,
					'bottom': 0,
					'width': 188,
					'height': 500,
					'background-color': '#7f9ec2',
					'opacity': 0.7,
					'overflow': 'hidden',
					'z-index': -1
				}
			}).inject(wrapper, 'top');
			var bg1 = bg.clone().setStyles({
				'left': 0,
				'bottom':0,
				'width': 188,
				'height': 0
			}).inject(wrapper, 'top');
			var bg2 = bg.clone().setStyles({
				'left': 0,
				'bottom': 0,
				'width': 188,
				'height': 0
			}).inject(wrapper, 'top');
			if (document.documentMode && document.documentMode == 8) {
				// for IE8 standard mode
				bg.set('tween', {duration:'short'});
				bg1.set('tween', {duration:'short'});
				bg2.set('tween', {duration:'short'});
				liInner.addEvent('mouseenter', function () {
					bg.fade(0.7);
					bg1.fade(0.7);
					bg2.fade(0.7);
				}).addEvent('mouseleave', function () {
					bg.fade('out');
					bg1.fade('out');
					bg2.fade('out');
				});
				bg.fade('hide');
				bg1.fade('hide');
				bg2.fade('hide');
				//
				submenu.getElements('li a.menu-item').each(function (link) {
					var defPosition = (link.target) ? -160 : -140;
					var img = '<img src="' + IEPNGFIX.blank + '" width="133" height="26" alt="' + link.get('text') + '" />';
					link.iepngfix().setStyle('text-indent', 0).set('html', img);
					var li = link.getParent();
					var bgSubItem = new Element('span', {
						'styles': {
							'display': 'block',
							'position': 'absolute',
							'left': defPosition,
							'top': 3,
							'width': 293,
							'height': 19
						}
					}).inject(li, 'top');
					IEPNGFIX.fixit(bgSubItem, li.getStyle('background-image').replace(/^url\(["']?(.+?)['"]?\)$/, "$1"), 'image');
					li.setStyle('background-image', 'none');
					bgSubItem/*.setStyle('left', defPosition)*/.set('html', img.replace("26", "19").replace("133", "293"));
					link.addEvent('mouseenter', function () {
						bgSubItem.setStyles({
							'left': 0
						});
					}).addEvent('mouseleave', function () {
						bgSubItem.setStyles({
							'left': defPosition
						});
					});
				});
				var innerEls = submenu.getElements('li span, li a');
				var fader2 = new Fx.Elements(innerEls, {
					duration: 'short',
					link: 'cancel'
				});
				var optFadeIn = {};
				var optFadeOut = {};
				innerEls.length.times(function (idx) {
					optFadeIn[idx]  = { 'opacity': 1.0 };
					optFadeOut[idx] = { 'opacity': 0.0 };
				});
				liInner.addEvent('mouseenter', function () {
					fader2.start(optFadeIn);
				}).addEvent('mouseleave', function () {
					fader2.start(optFadeOut);
				});
				fader2.set(optFadeOut);
			}
			if (Browser.Engine.trident4) {
				// for IE6
				submenu.getElements('li a.menu-item').each(function (link) {
					var defPosition = (link.target) ? -160 : -140;
					var img = '<img src="' + IEPNGFIX.blank + '" width="133" height="26" alt="' + link.get('text') + '" />';
					link.iepngfix().setStyle('text-indent', 0).set('html', img);
					var li = link.getParent();
					var bgSubItem = new Element('span', {
						'styles': {
							'display': 'block',
							'position': 'absolute',
							'left': defPosition,
							'top': 3,
							'width': 293,
							'height': 19
						}
					}).inject(li, 'top');
					IEPNGFIX.fixit(bgSubItem, li.getStyle('background-image').replace(/^url\(["']?(.+?)['"]?\)$/, "$1"), 'image');
					li.setStyle('background-image', 'none');
					bgSubItem/*.setStyle('left', defPosition)*/.set('html', img.replace("26", "19").replace("133", "293"));
					link.addEvent('mouseenter', function () {
						bgSubItem.setStyles({
							'left': 0
						});
					}).addEvent('mouseleave', function () {
						bgSubItem.setStyles({
							'left': defPosition
						});
					});
				});
			}
		}
	});
	liInners.each(function (liInner, idx) {
		var selfFocusedFlag = false;
		var subFocusedFlags = [];
		var closeOthers = function () {
			selfFocusedFlag = true;
			for (var i = 0; i < liInners.length; i++)	if (i != idx) {
				liInners[i].closeSubmenu();
			}
		};
		var selfClosing = function () {
			if (selfFocusedFlag)	return;
			for (var i = 0; i < subFocusedFlags.length; i++) {
				if (subFocusedFlags[i])	return;
			}
			for (var i = 0; i < liInners.length; i++)	if (i != idx) {
				if (liInners[i].hasClass('hover'))	return;
			}
			liInner.closeSubmenu();
		};
		liInner.addEvent('mouseenter', closeOthers);
		liInner.getElements('ul.submenu a.menu-item').each(function (submenuItem, idx) {
			subFocusedFlags[idx] = false;
			submenuItem.addEvent('focus', function () {
				subFocusedFlags[idx] = true;
			}).addEvent('blur', function () {
				subFocusedFlags[idx] = false;
				selfClosing.delay(13);
			});
		});
		liInner.getElement('a.menu-item').addEvent('focus', closeOthers).addEvent('blur', function () {
			selfFocusedFlag = false;
			selfClosing.delay(13);
		});
	});
});

// Search Box
function initSearchBox (input, options) {
	options = options || {};
	input = $(input);
	var placeholder = (options.placeholder ? options.placeholder : '');
	if (Browser.Engine.webkit && Browser.Engine.version < 420) {
		input.setAttribute('type', 'search');
		input.setAttribute('placeholder', placeholder);
		input.setStyles({
			'background-image': 'none'
		});
	} else {
		input.setStyles({
			'background-position': ((input.value == '') ? '0 0' : '-100px 0')
		});
		//
		input.addEvent('focus', function() {
//				input.setStyle('background-position', '-100px 0');
			input.setStyles({
				'background-color': '#ffffff',
				'color': '#000000',
				'background-position': '-100px 0'
			});
		}).addEvent('blur', function() {
//				input.setStyle('background-position', input.value == '' ? '0 0' : '-100px 0');
			input.setStyles({
				'background-color': 'transparent',
				'color': '#eeeeee',
				'background-position': ((input.value == '') ? '0 0' : '-100px 0')
			});
		});
	}
}
window.addEvent('domready', function () {
	var gsearch_text = $('gsearch-text');
	if (!gsearch_text)	return;
	var options = {};
	if(gsearch_text.getParent().get('tag') == 'label') {
		var placeholderText = "";
		var labelElement = gsearch_text.getParent().getElement('.gsearch-placeholder');
		//either grab text in a classed element
		if(labelElement) {
			placeholderText = labelElement.get('text');
		//or grab text from right inside the label
		} else {
			placeholderText = gsearch_text.parentNode.firstChild.nodeValue;
			gsearch_text.parentNode.firstChild.nodeValue = '';
		}
		placeholderText = placeholderText.split('\n')[0];
		options.placeholder = placeholderText;
	}
	initSearchBox(gsearch_text, options);
});

//Simple Rollover
window.addEvent('domready', function(){
//		var selectors = [
//			"a.rollover",	// 一般A
//			"img.rollover",	// 一般B
//			"input.rollover"	// 一般C
//		];
	// 画像の切り替え表示
	var fn_mover_factory = function(theObj) {
		return function () {
			theObj.target.src = theObj.sw_img.src;
		};
	};
	var fn_mout_factory = function(theObj) {
		return function () {
			theObj.target.src = theObj.or_img.src;
		};
	};
	$$('a.rollover, img.rollover, input.rollover').each(function (elm) {
		var imgs = [elm];
		if (!elm.src) {
			imgs = elm.getElements('img');
		}
		imgs.each(function (img) {
			if (img.src.test(/^.+-(act|on)\.(gif|jpg|jpeg|xbm|png)(\?.*)?$/))	return;
			var or_img = new Image;
			var sw_img = new Image;
			if (window.IEPNGFIX && (img.filters[IEPNGFIX.filter] || (/\.png(\?.*)?$/i).test(img.src))) {
				IEPNGFIX.fix(img);
				or_img.src = img.filters[IEPNGFIX.filter].src;
				sw_img.src = or_img.src.replace(
					/^(.+)(?:-on)?(\.(gif|jpg|jpeg|xbm|png)(\?.*)?)$/,
					"$1-on$2");
				var obj = {
					"target": img.filters[IEPNGFIX.filter],
					"or_img": or_img,
					"sw_img": sw_img
				};
			} else {
				or_img.src = img.src;
				sw_img.src = img.src.replace(
					/^(.+)(?:-on)?(\.(gif|jpg|jpeg|xbm|png)(\?.*)?)$/,
					"$1-on$2");
				var obj = {
					"target": img,
					"or_img": or_img,
					"sw_img": sw_img
				};
			}
			this.addEvent('mouseenter', fn_mover_factory(obj));
			this.addEvent('mouseleave', fn_mout_factory(obj));
		}, elm);
	});
	// imageMap-rollover
	$$('map').each(function (map) {
//		var img = $$('img[usemap$=' + map.id + ']')[0];
		var img = $$('img[usemap]').filter(function (img) {
			return (img.getAttribute('usemap') == '#' + map.id);
		})[0];
		if (!img)	return;
		var areas = map.getElements('area.rollover');
		if (!areas.length)	return;
		var orImg = new Image;
		orImg.src = img.src;
		var re = new RegExp("^" + map.id + "-(.+)$");
		areas.each(function (area) {
			var id = area.id.match(re)[1];
			if (!id)	return;
			var roImg = new Image;
			roImg.src = img.src.replace(
				/^(.+)(\.(gif|jpg|jpeg|xbm|png))$/,
				"$1-" + id + "$2"
			);
			area.addEvent('mouseenter', function () {
				img.src = roImg.src;
			});
			area.addEvent('mouseleave', function () {
				img.src = orImg.src;
			});
		});
	});
});

//Texture Overlay
window.addEvent('domready', function(){
	var elements = $$('a.ovl-texture');
	if (!elements.length)	return;
	var ovlSpan = new Element('span', {
		'class': 'texture'
	}).inject($(document.body)).setStyle('display', 'none');
	//
	var imgCache = {};
	elements.each(function (elm) {
		var img = elm;
		if (!elm.src) {
			img = elm.getElement('img');
		}
		var parent = img.getParent();
		var offsetParent = img.getOffsetParent() || $(document.body);
		var ovl = ovlSpan.clone().inject(parent);
		var valFIn = 1.0;
		var valFOut = 0.0;
		// for IE
		if (Browser.Engine.trident) {
			ovl.setStyle('background-image', ovl.getStyle('background-image').replace('.png', '.gif'));
			valFIn = 0.5;
		}
		ovl.set('tween', {link:'cancel',duration:200});
		var figure = elm.getParent('.figure-linkbanner');
		if (figure) {
			var caption = figure.getElement('div.legend');
			if (caption) {
				var bgCaptionOrg = caption.getStyle('background-image').replace(/^url\(["']?(.+?)['"]?\)$/, "$1");
				var bgCaptionRov = bgCaptionOrg.replace(/^(.+?)(?:-on)?(\.(gif|jpg|jpeg|xbm|png))$/, "$1-on$2");
				if (bgCaptionRov && !imgCache[bgCaptionRov]) {
					imgCache[bgCaptionRov] = new Image;
					imgCache[bgCaptionRov].src = bgCaptionRov;
				}
			}
		}
		elm.addEvent('mouseenter', function () {
			var offset = img.getCoordinates(offsetParent);
			ovl.setStyles({
				'left': offset.left,
				'top': offset.top,
				'width': img.width,
				'height': img.height,
				'opacity': 0,
				'display': 'block'
			}).fade(valFIn);
			if (bgCaptionRov) {
				caption.setStyle('background-image', 'url(' + bgCaptionRov + ')');
			}
		}).addEvent('mouseleave', function () {
			ovl.fade(valFOut);
			if (bgCaptionRov) {
				caption.setStyle('background-image', 'url(' + bgCaptionOrg + ')');
			}
		});
	});
});

// SmoothScroll and ElevatorMenu(SubNavi)
var evDuration;
var evTransition;
window.addEvent('domready', function () {
	var scrollCtrl = (window.SmoothScroll
		? new SmoothScroll({links: 'a.innerlink, area.innerlink'})
		: {timer: false, addEvent: $empty}
	);
	var subnavi = $('subnavi');
	if (subnavi && !subnavi.hasClass('rigid')) {	// Exists and Not Fixed
		var parent = subnavi.getOffsetParent();
		if (Browser.Engine.trident)	parent = $(parent);
		var currTop = subnavi.getPosition(parent).y;
		var limitTop = currTop;
		var limitBottom = 40;
		var limitClientTop = 0;
		var limitMargin = 20;
		//
		if (parent.offsetHeight < subnavi.offsetHeight + limitTop + limitBottom) {
			var adjHeight = subnavi.offsetHeight + limitTop + limitBottom - parent.offsetHeight;
			var mainContents = $('main-contents');
			if (mainContents) {
				mainContents.setStyle(
					Browser.Engine.trident4 ? 'height' : 'min-height',
					(mainContents.getStyle('height').toInt() + adjHeight)
				);
			} else {
				parent.setStyle('height', (parent.getStyle('height').toInt() + adjHeight));
			}
		}
		//
		var tween = subnavi.get('tween', {
			property: 'top',
			duration: evDuration || 1000,
			link: 'cancel',
			transition: $pick(evTransition, Fx.Transitions.Expo.easeInOut)
		});
		var navCtrl = {
			timer: false,
			top: currTop,
			orgTop: currTop,
			status: 0,	// 0: STOP, 1: READY, 2: SCROLL
			scroll: function () {
				navCtrl.timer = $clear(navCtrl.timer);
				navCtrl.orgTop = navCtrl.top;
				navCtrl.status = 2;
				tween.start(navCtrl.top).chain(function () {
					navCtrl.status = 0;
				});
			}
		};
		var o_scrollTop = window.getScroll().y - 1;
		var setNaviTop = function () {
			if (scrollCtrl.timer)	return;
			var winHeight = window.getSize().y;
			var scrollTop = window.getScroll().y;
			var scrollDir = scrollTop - o_scrollTop;
			o_scrollTop = scrollTop;
//				var clientTop = Math.min(Math.floor(winHeight * .1), limitClientTop);
			var clientTop = limitMargin;
			if (winHeight > subnavi.offsetHeight + limitMargin) {
				clientTop = (winHeight - subnavi.offsetHeight) / 2;
			} else if (scrollDir > 0) {
				var clientTop = winHeight - subnavi.offsetHeight - limitMargin;
			}
			var top = scrollTop + clientTop - parent.getPosition().y;
			top = Math.min(top, parent.offsetHeight - subnavi.offsetHeight - limitBottom);
			top = Math.max(top, limitTop);
			if (currTop != top && ((top - currTop) * scrollDir) > 0) {
			//	navCtrl.timer = $clear(navCtrl.timer);
				currTop = navCtrl.top = top;
				navCtrl.scroll();
			}
		};
//			setNaviTop.periodical(20);
		window.addEvent('scroll', setNaviTop);
		scrollCtrl.addEvent('complete', setNaviTop);
		setNaviTop();
	}
});

// Subnavi submenu
window.addEvent('domready', function () {
	$$('#subnavi .subnavi-sublist').each(function (sublist) {
		var parent = sublist.getParent();
		var offsetParent = sublist.getOffsetParent();
		var current = sublist.getElement('li.current');
		if (current) {
//			var currPos = current.offsetTop;
			var currPos = current.getPosition(offsetParent).y;
//			if (current.offsetHeight > 24) {
//				currPos += (current.offsetHeight - 24) / 2;
//			}
			var bg = current.getStyle('background-image');
			current.setStyle('background-image', 'none');
		} else {
			// TMP
//			var currPos = sublist.getElement('li').offsetTop;
			var currPos = sublist.getElement('li').getPosition(offsetParent).y;
			var bg = 'url(/common/images/icon-subnavi' + ($('main').hasClass('pageblack') ? '_bl' : '_wh') + '-sub-indicator.gif)';
		}
		var span = new Element('span', {
			'styles': {
				'position': 'absolute',
				'display': 'block',
				'left': 0,
				'top': currPos,
				'width': 18,
				'height': 19,
				'overflow': 'hidden',
				'background': (bg + ' no-repeat -20px 0px')
			}
		}).inject(parent);
		if (Browser.Engine.trident4 && bg.test(/\.png/)) {
			span.iepngfix('crop');
			var bgImg = new Image;
			var bgImgOn = new Image;
			bgImgOn.src = span.filters[IEPNGFIX.filter].src;
			bgImg.src = bgImgOn.src.replace(/^(.+)(\.png)$/, "$1-no$2");
			span.setON = function () {
				span.filters[IEPNGFIX.filter].src = bgImgOn.src;
				return span;
			};
			span.setOFF = function () {
				span.filters[IEPNGFIX.filter].src = bgImg.src;
				return span;
			};
		} else {
			span.setON = function () {
				return span.setStyle('background-position', '0px 0px');
			};
			span.setOFF = function () {
				return span.setStyle('background-position', '-20px 0px');
			};
		}
		span.setOFF();
		span.set('tween', {duration: 200, link: 'cancel', transition: 'expo:out'});
		span.chain = function (fn) {
			span.get('tween').chain(fn);
		};
		sublist.getElements('li a.menu-item').each(function (link) {
			var li = link.getParent();
		//	if (li.hasClass('current'))	return;
//			var liTop = li.offsetTop;
			var liTop = li.getPosition(offsetParent).y;
//			if (li.offsetHeight > 24) {
//				liTop += (li.offsetHeight - 24) / 2;
//			}
			link.addEvent('mouseenter', function () {
				span.setON().tween('top', liTop);
			}).addEvent('mouseleave', function () {
				if (li.hasClass('current')) {
					span.setOFF();
				} else {
					span.tween('top', currPos).chain(function () {
						span.setOFF();
					});
				}
			});
		});
		// APPENDIX
		parent.getParent().getElements('.subnavi-sublink a').each(function (link) {
			var item = link.getParent();
//			var itemTop = item.offsetTop + item.getStyle('padding-top').toInt();
			var itemTop = item.getPosition(offsetParent).y + item.getStyle('padding-top').toInt();
			var itemHeight = item.offsetHeight - item.getStyle('padding-top').toInt() - item.getStyle('padding-bottom').toInt();
			if (itemHeight > 24) {
				itemTop += (itemHeight - 24) / 2;
			}
			link.addEvent('mouseenter', function () {
				span.setON().tween('top', itemTop);
			}).addEvent('mouseleave', function () {
				span.tween('top', currPos).chain(function () {
					span.setOFF();
				});
			});
		});
	});
});

// Extend Slimbox
if (window.Slimbox) {
	window.addEvent('domready', function () {
		var ie6 = Browser.Engine.trident4;
		if (!$('lbCloseLink')) {
			arguments.callee.delay(13);
			return;
		}
		//
		if (window.Asset && !ie6) {
			var linkPrev = document.getElement('#lbPrevLink a');
			var linkNext = document.getElement('#lbNextLink a');
			var baseSrc = linkPrev.getStyle('background-image').replace(/^url\(['"]?(.+?)["']?\)$/, "$1");
			var srcs = ['b_back', 't_back', 'b_next', 't_next'].map(function (id) {
				return baseSrc.replace(/^(.*lightbox-)([a-z]+)(\.(gif|jpe?g|png)).*$/i, "$1" + id + "$3");
			});
			var imgs = Asset.images(srcs, {
				onComplete: function () {
					var boxBack = new Element('div', {
						styles: {
							position: 'relative',
							width: 55,
							height: 45,
							overflow: 'hidden'
						}
					}).inject(linkPrev);
					var bBack = new Element('span', {
						id: 'lb_b_back',
						styles: {
							display: 'block',
							width: 20,
							height: 45,
							'background-image': 'url(' + srcs[0] + ')',
							'float': 'right'
						}
					}).inject(boxBack);
					var tBack = new Element('span', {
						id: 'lb_t_back',
						styles: {
							display: 'block',
							width: 35,
							height: 45,
							'background-image': 'url(' + srcs[1] + ')',
							'float': 'right'
						}
					}).inject(boxBack);
					var boxNext = new Element('div', {
						styles: {
							position: 'relative',
							width: 55,
							height: 45,
							overflow: 'hidden'
						}
					}).inject(linkNext);
					var bNext = new Element('span', {
						id: 'lb_b_next',
						styles: {
							display: 'block',
							width: 20,
							height: 45,
							'background-image': 'url(' + srcs[2] + ')',
							'float': 'left'
						}
					}).inject(boxNext);
					var tNext = new Element('span', {
						id: 'lb_t_next',
						styles: {
							display: 'block',
							width: 35,
							height: 45,
							'background-image': 'url(' + srcs[3] + ')',
							'float': 'left'
						}
					}).inject(boxNext);
					$$([linkPrev, linkNext]).setStyles({
						'overflow': 'hidden',
						'background': 'none'
					});
					//
					bBack.set('tween', {duration:200,transition:'sine:in:out',link:'cancel'});
					tBack.set('tween', {duration:200,transition:'sine:in:out',link:'cancel'});
					boxBack.set('tween', {duration:400,transition:'sine:in:out',link:'cancel'});
					linkPrev.appear = function () {
						boxBack.get('tween').cancel();
						tBack.setStyles({'opacity': 0});
						boxBack.setStyles({
							'margin-left': 0
						});
						linkPrev.setStyles({
							'visibility': 'visible',
							'left': -55
						});
						bBack.setStyles({'width': 0}).tween('width', 20);
						bBack.get('tween').chain(function () {
							tBack.tween('opacity', 1);
						});
					};
					linkPrev.disappear = function () {
						bBack.get('tween').cancel();
						tBack.get('tween').cancel();
						boxBack.get('tween').start(
							'margin-left', 55
						).chain(function () {
							linkPrev.setStyles({'visibility': 'hidden'});
							tBack.setStyles({'opacity': 0});
						});
					};
					//
					bNext.set('tween', {duration:200,transition:'sine:in:out',link:'cancel'});
					tNext.set('tween', {duration:200,transition:'sine:in:out',link:'cancel'});
					boxNext.set('tween', {duration:400,transition:'sine:in:out',link:'cancel'});
					linkNext.appear = function () {
						boxNext.get('tween').cancel();
						tNext.setStyles({'opacity': 0});
						boxNext.setStyles({
							'margin-left': 0
						});
						linkNext.setStyles({
							'visibility': 'visible',
							'right': -55
						});
						bNext.setStyles({'width': 0}).tween('width', 20);
						bNext.get('tween').chain(function () {
							tNext.tween('opacity', 1);
						});
					};
					linkNext.disappear = function () {
						bNext.get('tween').cancel();
						tNext.get('tween').cancel();
						boxNext.get('tween').start(
							'margin-left', -55
						).chain(function () {
							linkNext.setStyles({'visibility': 'hidden'});
							tNext.setStyles({'opacity': 0});
						});
					};
				}
			});
		} else if (ie6) {
			$$('#lbPrevLink a, #lbNextLink a').each(function (link) {
				link.iepngfix('crop');
				var tgtObj = link.filters[IEPNGFIX.filter];
				if (tgtObj) {
					link.set('html', '<img src="' + IEPNGFIX.blank + '" width="55" height="45" alt="" />');
					var imgNo = new Image, imgRo = new Image;
					imgNo.src = tgtObj.src;
					imgRo.src = tgtObj.src.replace(/\.png/, '-on.png');
					var fnHover = function (tgt, noSrc, roSrc) {
						return [
							function () {
								tgt.src = roSrc;
							},
							function () {
								tgt.src = noSrc;
							}
						];
					}(tgtObj, imgNo.src, imgRo.src);
				} else {
					var fnHover = function (self) {
						return [
							function () {
								self.setStyle('background-position', '0 -45px');
							},
							function () {
								self.setStyle('background-position', '0 0');
							}
						];
					}(link);
				}
				link.addEvent('mouseenter', fnHover[0]).addEvent('mouseleave', fnHover[1]);
			});
		}
		//
		if (ie6) {
			$('lbCloseLink').iepngfix('crop');
			var tgtObj = $('lbCloseLink').filters[IEPNGFIX.filter];
			if (tgtObj) {
				var imgNo = new Image, imgRo = new Image;
				imgNo.src = tgtObj.src;
				imgRo.src = tgtObj.src.replace(/\.png/, '-on.png');
				var fnHover = function (tgt, noSrc, roSrc) {
					return [
						function () {
							tgt.src = roSrc;
						},
						function () {
							tgt.src = noSrc;
						}
					];
				}(tgtObj, imgNo.src, imgRo.src);
			} else {
				var fnHover = function (self) {
					return [
						function () {
							self.setStyle('background-position', '0 -20px');
						},
						function () {
							self.setStyle('background-position', '0 0');
						}
					];
				}($('lbCloseLink'));
			}
			$('lbCloseLink').addEvent('mouseenter', fnHover[0]).addEvent('mouseleave', fnHover[1]);
		}
	});
}
//
}

// Copied from popWebTPS.js (+α) 2009.10.13
// Modified 2009.10.21
function inoWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/ino.html';
    popWebTPS(cgi);
}

function COREWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/core.html';
    popWebTPS(cgi);
}

function BAYWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/bay.html';
    popWebTPS(cgi);
}

function isolaLinearWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/isola_linear.html';
    popWebTPS(cgi);
}

function isolaWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/isola.html';
    popWebTPS(cgi);
}

function isolaSUSgaWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/isola_susga.html';
    popWebTPS(cgi);
}

function PORTOWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/porto.html';
    popWebTPS(cgi);
}

function PORTOpianoWebTPS()  {
    var cgi         = 'http://www.toyokitchen.co.jp/WebTPS/porto_piano.html';
    popWebTPS(cgi);
}

function popWebTPS(url) {
    var w   =   window.screen.availWidth-13;
    var h   =   window.screen.availHeight-35;
    var webtpswin=  window.open(url,'WebTPS',
                        'width=' + w + 
                        ',height=' + h + 
                        ',resizable=yes,scrollbars=yes,menubar=yes' +
                        ',location=no,toolbar=yes,status=yes,top=0,left=0');
    webtpswin.focus();
    try {	// BUG FIX
        webtpswin.resizeTo(window.screen.availWidth,window.screen.availHeight);
    } catch (e) { /* Ignore */ }
}
/* Smooth scrolling
   Changes links that link to other parts of this page to scroll
   smoothly to those links rather than jump to them directly, which
   can be a little disorienting.
   
   sil, http://www.kryogenix.org/
   
   v1.0 2003-11-11
   v1.1 2005-06-16 wrap it up in an object
*/

var ss = {
  fixAllLinks: function() {
    // Get a list of all links in the page
    var allLinks = document.getElementsByTagName('a');
    // Walk through the list
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if ((lnk.href && lnk.href.indexOf('#') != -1) && 
          ( (lnk.pathname == location.pathname) ||
	    ('/'+lnk.pathname == location.pathname) ) && 
          (lnk.search == location.search)) {
        // If the link is internal to the page (begins in #)
        // then attach the smoothScroll function as an onclick
        // event handler
        ss.addEvent(lnk,'click',ss.smoothScroll);
      }
    }
  },

  smoothScroll: function(e) {
    // This is an event handler; get the clicked on element,
    // in a cross-browser fashion
    if (window.event) {
      target = window.event.srcElement;
    } else if (e) {
      target = e.target;
    } else return;

    // Make sure that the target is an element, not a text node
    // within an element
    if (target.nodeName.toLowerCase() != 'a') {
      target = target.parentNode;
    }
  
    // Paranoia; check this is an A tag
    if (target.nodeName.toLowerCase() != 'a') return;
  
    // Find the <a name> tag corresponding to this href
    // First strip off the hash (first character)
    anchor = target.hash.substr(1);
    // Now loop all A tags until we find one with that name
    var allLinks = document.getElementsByTagName('a');
    var destinationLink = null;
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if (lnk.name && (lnk.name == anchor)) {
        destinationLink = lnk;
        break;
      }
    }
    if (!destinationLink) destinationLink = document.getElementById(anchor);

    // If we didn't find a destination, give up and let the browser do
    // its thing
    if (!destinationLink) return true;
  
    // Find the destination's position
    var destx = destinationLink.offsetLeft; 
    var desty = destinationLink.offsetTop;
    var thisNode = destinationLink;
    while (thisNode.offsetParent && 
          (thisNode.offsetParent != document.body)) {
      thisNode = thisNode.offsetParent;
      destx += thisNode.offsetLeft;
      desty += thisNode.offsetTop;
    }
  
    // Stop any current scrolling
    clearInterval(ss.INTERVAL);
  
    cypos = ss.getCurrentYPos();
  
    ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
    ss.INTERVAL =
setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10);
  
    // And stop the actual click happening
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.preventDefault && e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
  },

  scrollWindow: function(scramount,dest,anchor) {
    wascypos = ss.getCurrentYPos();
    isAbove = (wascypos < dest);
    window.scrollTo(0,wascypos + scramount);
    iscypos = ss.getCurrentYPos();
    isAboveNow = (iscypos < dest);
    if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
      // if we've just scrolled past the destination, or
      // we haven't moved from the last scroll (i.e., we're at the
      // bottom of the page) then scroll exactly to the link
      window.scrollTo(0,dest);
      // cancel the repeating timer
      clearInterval(ss.INTERVAL);
      // and jump to the link directly so the URL's right
      location.hash = anchor;
    }
  },

  getCurrentYPos: function() {
    if (document.body && document.body.scrollTop)
      return document.body.scrollTop;
    if (document.documentElement && document.documentElement.scrollTop)
      return document.documentElement.scrollTop;
    if (window.pageYOffset)
      return window.pageYOffset;
    return 0;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent and removeEvent
    // cross-browser event handling for IE5+,  NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 25;

ss.addEvent(window,"load",ss.fixAllLinks);