
//********************************************************//
//	Left Menu 제어 함수
//  작성자 : 정병태
//  작성일 : 2008-01-05
//********************************************************//

var LeftMenu = {
	speed : 8,
	opened : null,
	minHeight : 21,
	fullNavi : false,
	initialize : function(pageCode) {
		if($('menuArea')) {
			this.leftMainBody = $('leftMainBody') || $('leftMainBody_eng');
			this.leftNavi = $('leftNavi') || $('leftNavi_eng');
			this.leftNavi.setOpacity(0.93);
			this.pageCode = pageCode;
			var menuList = LeftMenu.leftMainBody.select('div.leftMenuS');
			menuList.each(function(pair,i) {
				var subMenuList = pair.select('p'); 
				subMenuList.each(function(subPair,x) {
					if(subPair.hasClassName("naviTitle")) {
						if(!subPair.select("a")[0]) {
							subPair.observe('click',function(){LeftMenu.open(pair)});
							subPair.setStyle({cursor:'pointer'});
						}
					}
					if(LeftMenu.pageCode.trim() != '' && 
						(subPair.id == "2th"+LeftMenu.pageCode.substring(0,4) || (pair.id == "2th"+LeftMenu.pageCode.substring(0,2) && subPair.hasClassName("naviTitle")))) {
						var imgSrc = subPair.select('img')[0];
						var imgSrcOn = subPair.select('img')[0].onSrc;
						imgSrc.src = imgSrcOn ? imgSrcOn : imgSrc.src.replace(/(_on.gif|.gif)$/i,'_on.gif');
						if(subPair.hasClassName("naviTitle")) {
							subPair.removeClassName("offtitle");
							subPair.addClassName("ontitle");
						}
					}

					subPair.observe('mouseover',function(){LeftMenu.over(subPair);});
					subPair.observe('mouseout',function(){LeftMenu.out(subPair);});
				});

				LeftMenu.leftNavi.select("div.threemenu div").each(function(subMenu) {
					subMenu.observe('mouseover',function(){LeftMenu.overSub(subMenu);});
					subMenu.observe('mouseout',function(){LeftMenu.outSub(subMenu);});
					subMenu.setStyle({cursor:"pointer"});
				});

				LeftMenu.leftNavi.select("div.threemenu").each(function(subMenu) {
					subMenu.setStyle({cursor:"pointer"});
				});

				if(pair.id == "2th"+LeftMenu.pageCode.substring(0,2)) {
					LeftMenu.currentMenu = pair.id;
					LeftMenu.opened = LeftMenu.currentMenu;
					var imgSrc = pair.select('img')[0].src;
					pair.select('img')[0].src = imgSrc.replace(/(_on.gif|.gif|_over.gif)$/i,'_on.gif');
					var height = pair.select("div.twothmenu")[0].getDimensions().height;
					pair.setStyle({height:height+"px"});
					//new Effect.Tween(LeftMenu.currentMenu,{height:height,speed:LeftMenu.speed});
				}
			});
		}
	},

	over : function(menu) {
		if(LeftMenu.closeSubMenu) LeftMenu.closeSubMenu();
		delete LeftMenu.closeSubMenu;
		if(LeftMenu.interval) clearTimeout(LeftMenu.interval);
		delete LeftMenu.interval;
		var imgSrc = menu.select('img')[0].src;
		var imgSrcOn = menu.select('img')[0].onSrc;
		if(menu.hasClassName("naviTitle")) {
			if(!LeftMenu.fullNavi) {
				if(!menu.hasClassName("ontitle") || (LeftMenu.currentMenu != menu.up('div.leftMenuS').id && LeftMenu.opened != menu.up('div.leftMenuS').id)) {
					menu.select('img')[0].src = imgSrcOn ? imgSrcOn : imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'_on2.gif');
				}
			}
		} else {
			if(!LeftMenu.fullNavi) menu.select('img')[0].src = imgSrcOn ? imgSrcOn : imgSrc.replace(/(_on.gif|.gif)$/i,'_on.gif');
			else menu.setOpacity(1);
		}
		
		var subMenu = $(menu.id.replace("2th","3th"));
		if(!menu.hasClassName("none") && subMenu) {
			menu.addClassName("on");
			LeftMenu.openedSub = menu.id;
			subMenu.setStyle({display:"block",top:menu.positionedOffset()[1]+"px"});
			var width = subMenu.offsetWidth+24;
			if(!LeftMenu.init) LeftMenu.leftNavi.setStyle({width:width+"px"});
			else new Effect.Tween(LeftMenu.leftNavi,{width:width,speed:LeftMenu.speed/2});
			LeftMenu.closeSubMenu = function() {
				LeftMenu.openedSub = "";
				subMenu.setStyle({display:"none"});
				menu.removeClassName("on");
				new Effect.Tween(LeftMenu.leftNavi,{width:15,speed:LeftMenu.speed/2});
			}.bind(this)
		} else {
			new Effect.Tween(LeftMenu.leftNavi,{width:15,speed:LeftMenu.speed/2});
		}
		
	},

	out : function(menu) {
		if((!menu.hasClassName("naviTitle") || !LeftMenu.fullNavi) && (!menu.hasClassName("ontitle") 
			|| (LeftMenu.currentMenu != menu.up('div.leftMenuS').id && LeftMenu.opened != menu.up('div.leftMenuS').id)) 
			&& (LeftMenu.pageCode == '' || menu.id != "2th"+LeftMenu.pageCode.substring(0,4))) {
			if(!LeftMenu.fullNavi) {
				var imgSrc = menu.select('img')[0].src;
				var imgSrcOff = menu.select('img')[0].offSrc;
				menu.select('img')[0].src = imgSrcOff ? imgSrcOff : imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'.gif');
			} else {
				menu.setOpacity(0.5);
			}
		}
		if(LeftMenu.currentMenu != LeftMenu.opened && !LeftMenu.interval) LeftMenu.interval = setTimeout(LeftMenu.reset,2000);
	},

	overSub : function(menu) {
		if(LeftMenu.interval) clearTimeout(LeftMenu.interval);
		delete LeftMenu.interval;
		var imgSrc = menu.select('img')[0].src;
		var imgSrcOff = menu.select('img')[0].offSrc;
		menu.select('img')[0].src = imgSrcOff ? imgSrcOff : imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'_on.gif');
	},
	
	outSub : function(menu) {
		if(LeftMenu.interval) clearTimeout(LeftMenu.interval);
		delete LeftMenu.interval;
		if(!LeftMenu.interval) LeftMenu.interval = setTimeout(LeftMenu.reset,2000);
		var imgSrc = menu.select('img')[0].src;
		var imgSrcOff = menu.select('img')[0].offSrc;
		menu.select('img')[0].src = imgSrcOff ? imgSrcOff : imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'.gif');
	},

	open : function(menu) {
		if(LeftMenu.interval) clearTimeout(LeftMenu.interval);
		delete LeftMenu.interval;
		if(!LeftMenu.fullNavi) {
			var openMenu = function() {
				var imgSrc = menu.select('img')[0].src;
				menu.select('img')[0].src = imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'_on.gif');
				menu.select("p.naviTitle")[0].removeClassName("offtitle");
				menu.select("p.naviTitle")[0].addClassName("ontitle");
				var height = menu.select('div.twothmenu')[0].getDimensions().height;
				new Effect.Tween(menu.id,{height:height,speed:LeftMenu.speed});
			}
			if(LeftMenu.opened != menu.id) {
				if(LeftMenu.opened) {
					new Effect.Tween(LeftMenu.opened,{height:LeftMenu.minHeight,speed:LeftMenu.speed/3});
					$(LeftMenu.opened).select("p.naviTitle")[0].removeClassName("ontitle");
					$(LeftMenu.opened).select("p.naviTitle")[0].addClassName("offtitle");
					var imgSrc = $(LeftMenu.opened).select('img')[0].src;
					$(LeftMenu.opened).select('img')[0].src = imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'.gif');
				}
				openMenu();
			} else {
				openMenu();
			}
			if(LeftMenu.opened != menu.id && LeftMenu.currentMenu != LeftMenu.opened) {
				var imgSrc = $(LeftMenu.opened).select('img')[0].src;
				$(LeftMenu.opened).select('img')[0].src = imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'.gif');
				$(LeftMenu.opened).select("p.naviTitle")[0].removeClassName("ontitle");
				$(LeftMenu.opened).select("p.naviTitle")[0].addClassName("offtitle");
			}
			LeftMenu.opened = menu.id;
		}
	},

	reset : function() {
		if(LeftMenu.closeSubMenu) LeftMenu.closeSubMenu();
		var left = $('menuArea').cumulativeOffset()[0];
		$$('div.cp_menu').each(function(pair) {
				pair.hide();
				pair.setStyle({left:left+70});
		});
		if(LeftMenu.opened) {
			new Effect.Tween(LeftMenu.opened,{height:LeftMenu.minHeight,speed:LeftMenu.speed});
			var imgSrc = $(LeftMenu.opened).select('img')[0].src;
			$(LeftMenu.opened).select('img')[0].src = imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'.gif');
			$(LeftMenu.opened).select("p.naviTitle")[0].removeClassName("ontitle");
			$(LeftMenu.opened).select("p.naviTitle")[0].addClassName("offtitle");
			delete LeftMenu.opened;
		}
		if(LeftMenu.currentMenu) {
			var imgSrc = $(LeftMenu.currentMenu).select('img')[0].src;
			$(LeftMenu.currentMenu).select('img')[0].src = imgSrc.replace(/(_on.gif|.gif|_on2.gif)$/i,'_on.gif');
			$(LeftMenu.currentMenu).select("p.naviTitle")[0].removeClassName("offtitle");
			$(LeftMenu.currentMenu).select("p.naviTitle")[0].addClassName("ontitle");
			var height = $(LeftMenu.currentMenu).select('div.twothmenu')[0].getDimensions().height;
			new Effect.Tween(LeftMenu.currentMenu,{height:height,speed:LeftMenu.speed/3});
			LeftMenu.opened = LeftMenu.currentMenu;
		}
	},

	toggleMenu : function() {
		if(LeftMenu.fullNavi) {
			LeftMenu.fullNavi = false;
			$('fullNaviBtn').src = $('fullNaviBtn').src.replace(/(_on.gif|.gif)$/i,'.gif');
			var menuList = LeftMenu.leftMainBody.select('div.leftMenuS');
			menuList.each(function(menu,i) {
				if(LeftMenu.currentMenu != menu.id) {
					new Effect.Tween(menu.id,{height:LeftMenu.minHeight,speed:LeftMenu.speed/3});
				}
				var subMenuTitle = menu.select('p'); 
				subMenuTitle.each(function(subPair,x) {
					if(subPair.hasClassName("naviTitle") && !subPair.hasClassName("ontitle")) {
						subPair.select("img")[0].src = subPair.select("img")[0].src.replace(/(_on2.gif|.gif)$/i,'.gif');
					} else if(!subPair.hasClassName("naviTitle")) {
						subPair.setOpacity(1);
					}
				});
			});
			LeftMenu.leftMainBody.setStyle({height:LeftMenu.beforeHeight+"px"});
			if($("leftSubBody")) $("leftSubBody").setStyle({height:LeftMenu.beforeHeight+"px"});
		} else {
			if(LeftMenu.interval) clearTimeout(LeftMenu.interval);
			delete LeftMenu.interval;
			LeftMenu.reset();
			LeftMenu.fullNavi = true;
			$('fullNaviBtn').src = $('fullNaviBtn').src.replace(/(_on.gif|.gif)$/i,'_on.gif');
			
			var menuList = LeftMenu.leftMainBody.select('div.leftMenuS');
			menuList.each(function(pair,i) {
				var subMenuTitle = pair.select('p'); 
				subMenuTitle.each(function(subPair,x) {
					if(subPair.hasClassName("naviTitle") && !subPair.hasClassName("ontitle")) {
						subPair.select("img")[0].src = subPair.select("img")[0].src.replace(/(_on.gif|.gif)$/i,'_on2.gif');
					} else if(!subPair.hasClassName("naviTitle")) {
						if(subPair.id != "2th"+LeftMenu.pageCode.substring(0,4)) subPair.setOpacity(0.5);
					}
				});
			});

			var afterHeight = 0;
			menuList.each(function(menu,i) {
				var height = menu.select('div.twothmenu')[0].getDimensions().height;
				new Effect.Tween(menu.id,{height:height,speed:LeftMenu.speed/2});
				afterHeight += height+LeftMenu.minHeight;
			});
			LeftMenu.beforeHeight = LeftMenu.leftMainBody.getHeight();
			afterHeight = afterHeight > LeftMenu.beforeHeight ? afterHeight : LeftMenu.beforeHeight;
			LeftMenu.leftMainBody.setStyle({height:afterHeight+"px"});
			if($("leftSubBody")) $("leftSubBody").setStyle({height:afterHeight+"px"});
		}
	}
};