/* =======================================

	Common Javascript

 -----------------------------------------
	INDEX
 -----------------------------------------
	1.Button Rollover - prototype js
	2. popup menu handling - prototype.js
	3. member regist notice tooltip - prototype.js

========================================== */

/* 1.Button Rollover
========================================== */

Event.observe(window, "load", function() {
	var image_cache = new Object();
	
	var	swaps = $A($$('.swap'));

	swaps.each( function(node){
		var imgsrc = node.src;
		var dot = node.src.lastIndexOf('.');
		var imgsrc_on = node.src.substr(0, dot) + '_o' + node.src.substr(dot, 4);
		image_cache[node.src] = new Image();
		image_cache[node.src].src = imgsrc_on;
		Event.observe(node, "mouseover", function(e) { Event.element(e).src = imgsrc_on; }, true);
		Event.observe(node, "mouseout", function(e) { Event.element(e).src = imgsrc; }, true);
	})
});

/* 2. popup menu handling
========================================== */

Event.observe(window, "load", function() {
	var	now_opened = null;
	var	now_opened_submenu = null;
	var	now_opened_base = null;
	var	now_opened_submenu_base = null;

	var	open_submenu = function(open_target, target_base) {
		close_submenu();

		if ( target_base )
		{
			target_base.show();
			now_opened_submenu_base = target_base;
		}

		open_target.className = "show";
		open_target.show();
		now_opened_submenu = open_target;
	}
	
	var	close_submenu = function() {
		if ( now_opened_submenu )
		{
			now_opened_submenu.hide();
			now_opened_submenu = null;

			if ( now_opened_submenu_base )
			{
				now_opened_submenu_base.hide();
				now_opened_submenu_base = null;
			}
		}
	}
	
	var	open_menu = function(open_target, target_base) {
		close_menu();
	
		if ( target_base )
		{
			target_base.show();
			now_opened_base = target_base;
		}

		open_target.className = "show"; 
		open_target.show();
		now_opened = open_target;
	}
	
	var	close_menu = function() {
		if ( now_opened_submenu )
		{
			now_opened_submenu.hide();
			now_opened_submenu = null;

			if ( now_opened_submenu_base )
			{
				now_opened_submenu_base.hide();
				now_opened_submenu_base = null;
			}
		}
		
		if ( now_opened )
		{
			now_opened.hide();
			now_opened = null;

			if ( now_opened_base )
			{
				now_opened_base.hide();
				now_opened_base = null;
			}
		}
	}

	var is_IE6 = false;
	if ( navigator.appName=="Microsoft Internet Explorer"
		&& typeof document.body.style.maxHeight == "undefined" ) {
		is_IE6 = true;
	}


	var submenus = $A($$('li.popup-sub-menu'));
	submenus.each( function(node){
		var	inNode = $(node.getElementsByTagName("ul")[0]);
		var	inIF = null;
		
		if ( inNode )
		{
			if ( is_IE6 )
			{
				/* popup menu iframe overlap in IE6 */
				var	inIF = $(node.getElementsByTagName("iframe")[0]);
				var dem = Element.getDimensions(inNode);
				if ( inIF )
				{
					Element.setStyle(inIF, {
						position: "absolute",
						top: 0,
						left: 163 + 'px',
						width: dem.width + 'px',
						height: (dem.height - 3) + 'px'
					});
				}
			}
			
			Event.observe(node, "mouseover", function(e) {
				open_submenu(inNode, inIF);
				Event.stop(e);
			}, true);
			
			var	self = inNode;
			self.isOutofMenu = function(e) {
				var	target = Event.element(e);
				while ( target ) {
					if ( target == this )
						return false;
					target = target.parentNode;
				}
				return true;
			};

			Event.observe(document, "mouseout", function(e) {
				if ( now_opened_submenu == self && self.isOutofMenu(e) ){
					close_submenu();
				}
			}, true);
		}
	});


	var	menus = $A($$('li.popup-menu'));
	menus.each( function(node){
		var	inNode = $(node.getElementsByTagName("ul")[0]);
		var	inIF = null;

		if ( inNode )
		{
			if ( is_IE6 )
			{
				/* popup menu iframe overlap in IE6 */
				var	inIF = $(node.getElementsByTagName("iframe")[0]);
				var dem = Element.getDimensions(inNode);
				if ( inIF )
				{
					Element.setStyle(inIF, {
						position: "absolute",
						top: 30 + 'px',
						left: -10 + 'px',
						width: dem.width + 'px',
						height: (dem.height - 3) + 'px'
					/*	height: (dem.height - 0) + 'px' */
					});
				}
			}
			
			Event.observe(node, "mouseover", function(e) {
				/* Start Modify(by EAST Co., Ltd.) */
				if (node.childNodes[0].className != "unactive") {
					open_menu(inNode, inIF);
				}
				/* Start original code */
			//	open_menu(inNode, inIF);
				/* End original code */
				/* End Modify(by EAST Co., Ltd.) */
				/*Event.stop(e);*/
			}, true);
			
			var	self = inNode;
			self.isOutofMenu = function(e) {
				var	target = Event.element(e);
				while ( target ) {
					if ( target == this )
						return false;
					target = target.parentNode;
				}
				return true;
			};

			Event.observe(document, "click", function(e) {
				if ( now_opened == self && self.isOutofMenu(e) ) {
					close_menu();
				}
			}, true);
		}
	});
});

/* 3.member register notice tooltip
========================================== */

Event.observe(window, "load", function() {
	var	member_popups = $A($$('li.popup-menu-member'));

	member_popups.each( function(node){
		var	anc = $A(node.getElementsByTagName("a"))[0];
		var	popup = $A(node.getElementsByTagName("div"))[0];
		Event.observe(anc, "mouseover", function(e) { popup.className = "popup show"; }, true);
		Event.observe(anc, "mouseout", function(e) { popup.className = "popup hide"; }, true);
	});
});


