/*
	--------------------------------
	更新日: 2008-12-21
	--------------------------------
*/



var path, referer, ancestor, detail_a, detail_b;
var isVisibledDetail_b = false;
var isEnabledCloseLayerHtmlChild = true;

// 小技術画面を開く
function showDetail_b(path) {
	window.path = path;
	referer = path.replace(/\/[^\/]+$/, '').replace(/\/detail$/, '');
	ancestor = path.replace(path.replace(/^(\/[^\/]+){2}/, ''), '');
	var temp = path.split('/');
	detail_a = temp[temp.length - 2];
	detail_b = temp[temp.length - 1];
	var address = 'technology_library/detail/html/' + detail_b + '.html';
	openLayerHtml(address, function() {
		cover.show();
	});
}

function openLayerHtml(file, callback){
	$.ajax({
		url: file + '?' + new Date().getTime(),
		type: 'get',
		dataType: 'html',
		success: function(src) {
			src = src.replace(/^(.|\s)+?<body class="(jp|en)">/, '');
			src = src.replace(/<\/body>(.|\s)+$/, '');
			src = src.replace(/img src="img/g, 'img src="technology_library/detail/html/img');
			src = src.replace(/img src="\.\.\/\.\.\/\.\.\/\.\.\/contents/g, 'img src="../contents');
			cover.content.get(0).innerHTML = src;
			showLink();
			rollover('#container .rollover', '_ov');
			if (callback) callback();
		}
	});
	isVisibledDetail_b = true;
}

function closeLayerHtml(){
	isVisibledDetail_b = false;
}

function closeLayerHtmlChild(){
	if (isEnabledCloseLayerHtmlChild) closeLayerHtml();
	else isEnabledCloseLayerHtmlChild = true;
}

// Flashにシーンの変更を通知
function fMoveScene(path) {
	getMovie('external_flashcontent').fMoveScene(path);
}

// ムービーを取得
function getMovie(id) {
	return document.getElementById(id) || document.getElementByName(id);
}

$(function() {
	cover.init();
});

var cover = {
	// IE7未満判定フラグ
	isLtIE7: (navigator.userAgent.match('MSIE ([0-9]+\.[0-9])') && RegExp.$1 < 7) ? true : false,

	// Mac判定フラグ
	isMac: (navigator.appVersion.match('Mac')) ? true : false,

	// Fx判定フラグ
	isFx: (navigator.userAgent.match('Firefox')) ? true : false,

	// Fx2判定フラグ
	isFx2: (navigator.userAgent.match('Firefox') && navigator.userAgent.split('Firefox/')[1].match(/^2/)) ? true : false,

	// 初期化
	init: function() {
		var self = this;
		$('body').append([
			'<div id="overlay">',
			'<div id="overlay_bg"></div>',
			'<div id="overlay_stage">',
			'<div id="overlay_content"></div>',
			'</div>',
			'</div>'
		].join(''));
		this.container = $('#overlay');
		this.bg = $('#overlay_bg');
		this.content = $('#overlay_content');
		// 例外: Mac Fx
		if (this.isMac && this.isFx) {
			this.container.prepend('<iframe id="overlay_fxHack" frameborder="0"></iframe>');
			// 例外: Mac Fx2
			if(this.isFx2) {
				var bg = this.bg.get(0);
				bg.style.background = 'url(' + siteRoot + 'contents/images/technology_library/detail/html/overlay_bg.png)';
				bg.style.opacity = 1;
			}
		}
		$(window).bind('scroll', function() {
			self.setScroll();
		});
	},

	// 表示
	show: function() {
		// 例外: Fx
		if (this.isFx) document.getElementById('overlay').addEventListener('DOMMouseScroll', this.stopPropagation, false);
		this.bg.click(function() {
			hideDetail_b();
		});
		this.container.get(0).style.display = 'block';
		document.getElementById('overlay_content').scrollTop = 0;
	},

	// 非表示
	hide: function(path) {
		// 例外: Fx
		if (this.isFx) document.getElementById('overlay').removeEventListener('DOMMouseScroll', this.stopPropagation, false);
		this.bg.unbind('click');
		if (path) fMoveScene(path);
		this.container.hide();
	},
	
	// イベントの伝搬を中止
	stopPropagation: function(e) {
		e.stopPropagation();
	},

	// スクロールをセット
	setScroll: function() {
		if (this.isLtIE7 && isVisibledDetail_b) this.container.css('top', this.getScrollLength('y') + 'px')
	},

	// スクロール量を取得
	getScrollLength: function(mode) {
		var x = window.scrollX || window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
		var y = window.scrollY || window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;	
		return (mode == 'x') ? x : (mode == 'y') ? y : { x: x, y: y };
	}
}

function hideDetail_b() {
	cover.hide(referer);
}

function goDetail_a(path) {
	if (ancestor == '/technology_library/top') {
		path.match(/(_a[0-9]+)$/);
		path = '/synap' + RegExp.$1 + path;
	}
	cover.hide(ancestor + path);
}

function goDetail_b(detail_a, detail_b) {
	isEnabledCloseLayerHtmlChild = false;
	cover.bg.unbind('click');
	if (ancestor == '/technology_library/top') {
		if (window.detail_a == 'detail') {
			detail_b.match(/(_b[0-9]+)$/);
			detail_a = '/synap' + RegExp.$1 + '/detail';
		} else {
			detail_a.match(/(_a[0-9]+)$/);
			detail_a = '/synap' + RegExp.$1 + detail_a;
		}
	} else {
		if (window.detail_a == 'detail') detail_a = '/detail';
	}
	fMoveScene(ancestor + detail_a + detail_b);
}







