/**
	by. ÀÙ»õ
	ÆÄÀÏ¸í : newTm
	¾ð¾î : jQuery
	¼öÁ¤ÀÏ : 2010.11.19
	¹®ÀÇ : godloves83@naver.com	
	³×ÀÌÆ®¿Â : godlovestory@hanmail.net
	´Ù¿î·Îµå : http://skyweb.dothome.co.kr/ui
	

** newTm»ç¿ë¹ý *********************************************************************
 ÀÎÀÚ°ªÀ» 1µª½º,2µª½º·Î ±¸ºÐÁöÀ»¼ö ÀÖ´Â°æ¿ì                                       
 jQuery.newTm.setting(1,1);                                                       
 ÀÎÀÚ°ªÀ» ÆÄ¶ó¹ÌÅÍ Çü½ÄÀ¸·Î º¸³¾½Ã                                                
 jQuery.newTm.setting("0101");                                                    
 
 >> Sample <<
 <ul id="#tm">                                                                    
    <li><a..><img...></a>                                                         
        <ul>                                                                      
	      <li><a..>2depMenu</a></li>                                             
	      <li><a..>2depMenu</a></li>                                             
   	    </ul>                                                                    
     </li>                                                                         
     <li><a..><img...></a></li>                                                    
	 <li><a..><img...></a></li>                                                    
	 <li><a..><img...></a>                                                         
        <ul>                                                                      
		    <li><a..>2depMenu</a></li>                                             
			<li><a..>2depMenu</a></li>                                             
		 </ul>                                                                     
    </li>                                                                         
 </ul>                                                                            
 <script type="text/javascript">                                                  
   jQuery.newTm.setting(1,1);                                                     
 </script>            
 
 >> ¾÷µ¥ÀÌÆ® <<
  - ¼öÁ¤ÀÏ 2010.11.19 -
	1. ÀÎÀÚ°ª ½Ç¹«»ç¿ëÀ» À§ÇØ µÎ°¡Áö(1dep,2dep),(param) ÇüÅÂ ¼±ÅÃ±â´É
	2. 2Â÷¸Þ´º ÀÚµ¿»ç¶óÁü ¼±ÅÃ±â´É
	3. 2Â÷¸Þ´º ÀÌ¹ÌÁö »ç¿ë½Ã ¼±ÅÃ±â´É
	4. 2Â÷¸Þ´º Ç¥½ÃÁ¦ÇÑ ¼±ÅÃ±â´É ¿¹) $tm2dep_hideArray = "1,2,3,4";
	5. ÀÚµ¿ 2Â÷¸Þ´º ³ÐÀÌ°ª, ÁÂÇ¥°ª Àû¿ë ¼±ÅÃ±â´É
	6. menuÃÊ±â ½ÇÇàÀ§Ä¡·Î µÇµ¹¾Æ¿À±â ¼±ÅÃ±â´É ¹× ½Ã°£ÀÔ·Â±â´É
	7. 2Â÷¸Þ´º ±âº» ½ºÅ¸ÀÏ(4°³) Àû¿ë
 
 >> type <<
  - ¼öÁ¤ÀÏ 2010.11.19 -
	NULL   : 2Â÷¸Þ´º È¿°ú¾øÀ½
	type_1 : 2Â÷¸Þ´º opacityÈ¿°ú
	type_2 : 2Â÷¸Þ´º ´Ü°èº° opacityÈ¿°ú
	type_3 : 2Â÷¸Þ´º blackblind opacityÈ¿°ú
	type_4 : 2Â÷¸Þ´º up,downÈ¿°ú
************************************************************************************


**/
/** top menu **/
var $j,$tm,$tmC,$tmCC,$tmCCC,$tm1dep_NaN,$tm1dep_ov,$tm2dep_imgCheck,$tm2dep_topPotision,
$tm2dep_ovClass,$tmSavedep1,$tmSavedep2,$tm2dep_autoHide,$tm2dep_autoHideTime,$tm2dep_autoHideSpeed,
$tm2dep_NaN,$tm2dep_ov,$tmAutoDefaultTime,$tmAutoDefaultSpeed,$tmAutoDefault,$tmAutoSize,$tm2dep_style,
$tm2dep_hideArray;
(function($){
	jQuery.newTm = {
		//topMenu CSS Setting
		setting : function(dep1,dep2){
			//user setting
			$tmParam = "N";// ÀÎÀÚ°¡ ÆÄ¶ó¹ÌÅÍ Çü½ÄÀÎÁö±¸ºÐ(±¸ºÐ : Y,N)
			$tmAutoSize = "Y";// 2dep Auto Size, ÁÂ¿ìÁ¤·Ä »ç¿ë¿©ºÎ(±¸ºÐ : Y,N)
			$tmAutoDefault = "Y";// ÃÊ±â ¸Þ´º ¼ÂÆÃ°ªÀ¸·Î µ¹¾Æ°¡±â(±¸ºÐ : Y,N)			
			$tmAutoDefaultSpeed = 2000;// $tmAutoDefault Time(1000:1ÃÊ)
			$tm2dep_autoHide = "Y";// 2Â÷¸Þ´º ÀÚµ¿»ç¶÷ÁüÈ¿°ú(±¸ºÐ : Y,N)
			$tm2dep_autoHideSpeed = 2000;// 2Â÷¸Þ´º ÀÚµ¿»ç¶÷ÁüÈ¿°ú½Ã°£(1000:1ÃÊ)
			$tm2dep_style = "NULL";//2dep È¿°ú Å¸ÀÔ¼³Á¤(±âº»: "",È¿°úÀû¿ëÅ¸ÀÔÀº À§ÀÇ ÁÖ¼®À» ÂüÁ¶);
			
			$tm1dep_NaN = ".gif";// 1dep ±âº»ÀÌ¹ÌÁö
			$tm1dep_ov = "_ov.gif";// 1dep ¸¶¿ì½º ¿À¹ö½Ã ÀÌ¹ÌÁö
			
			$tm2dep_imgCheck = "N";// 2Â÷¸Þ´ºÀÇ ÀÌ¹ÌÁö¿©ºÎ(±¸ºÐ : Y,N)
			$tm2dep_NaN = ".gif";// 2dep ±âº»ÀÌ¹ÌÁö
			$tm2dep_ov = "_ov.gif";// 2dep ¸¶¿ì½º ¿À¹ö½Ã ÀÌ¹ÌÁö			
			$tm2dep_ovClass = "tm_link_2th_ov";// 2Â÷¸Þ´ºÀÇ ovClass¸í
			$tm2dep_topPotision = 5;// 2Â÷¸Þ´ºÀÇ top°ª Á¶Àý
			$tm2dep_hideArray = "Null";
			
			//fn:Call
			jQuery.newTm.call(dep1,dep2);
		},
		
		//setting Call
		call : function(dep1,dep2){
			//default setting
			$j = jQuery;
			$tm = $j("#tm");//obj 1deps Menu obj
			$tmC = $tm.find(">li");//obj 1deps Menu list
			$tmCC = $tmC.find(">ul");//obj 2deps Menu obj
			$tmCCC = $tmCC.find(">li");//obj 2deps Menu list
			//css setting
			$tmC.css({
				"float":"left","clear":"none"
			});
			$tmCC.css({
				"position":"absolute",
				"left":"0px",
				"top":($tmC.height()+$tm2dep_topPotision)+"px",
				"z-index":"0",
				//"width":$tm.width()+"px",				
				"float":"none"
			});
			//2dep¸Þ´º ÀÚµ¿»çÀÌÁî
			if($tmAutoSize == "Y"){
				jQuery.newTm.autoSize();
			}
			//2dep hide
			$tmCC.hide();
			//ÀÎÀÚ°¡ ÆÄ¶ó¹ÌÅÍ Çü½ÄÀÌ¸é Çü½Ä ºÐ·ù
			if($tmParam == "Y"){	
				var $tmParam_dep = 	dep1;			
				dep1 = $tmParam_dep.substring(0,2);//¾ÕÀÚ¸® µÎÀÚ¸®
				dep2 = $tmParam_dep.substring(2,4);//³ª¸ÓÁö µÎÀÚ¸®
			}
			$tmSavedep1 = (dep1-1);//1dep ovImg Save
			$tmSavedep2 = (dep2-1);//2dep ovImg Save
			$j.newTm.view(dep1,dep2);//onload view start
			//user control
			$tmC.find(">a").bind("mouseover focus",function(){$j.newTm.ov(this)});//user mouseover				
			$tmC.find(" a").bind("focus",function(){$j.newTm.autoHide_off()});//user focus
			$tmC.find(" a").bind("blur",function(){$j.newTm.autoHide_on('time',dep1-1)});//user blur
			//2dep img over control
			if($tm2dep_imgCheck == "Y"){
				//user mouseover
				$tmCCC.find(">a").bind(
				   "mouseover focus",
				   function(){
					var cnt = $tmCCC.find(">a").index(this);					
				   	$j.newTm.imgov(cnt);
				   }
				);
				//user mouseout
				$tmCCC.find(">a").bind(
				   "mouseout blur",
				   function(){
					var cnt = $tmCCC.find(">a").index(this);					
				   	$j.newTm.imgout(cnt);
				   }
				);
				//ÇöÁ¦ÆäÀÌÁö ÀÌº¥Æ® ¿¹¿ÜÃ³¸®
				$tmC.eq((dep1-1)).find(">ul>li:eq("+(dep2-1)+")>a").unbind("mouseover mouseout focus blur");
			}
			//user focus Class add
			$tmCCC.find(">a").bind(
			   "focus",
			   function(){
				$j(this).addClass($tm2dep_ovClass);
			   }
			);
			//user blur
			$tmCCC.find(">a").bind(
			   "blur",
			   function(){
				var cnt = $tmCCC.find(">a").index(this);					
				$j(this).removeClass($tm2dep_ovClass);
			   }
			);
			//ÇöÁ¦ÆäÀÌÁö ÀÌº¥Æ® ¿¹¿ÜÃ³¸®
			$tmC.eq((dep1-1)).find(">ul>li:eq("+(dep2-1)+")>a").unbind("focus blur");
			
			//user mouseout
			if($tm2dep_autoHide == "Y"){
				$tm.bind("mouseenter",function(){$j.newTm.autoHide_off()});				
				$tm.bind("mouseleave",function(){$j.newTm.autoHide_on('time',$tmSavedep1)});
				//onload autohide start
				$j.newTm.autoHide_on('time',dep1);
			}
			//¸Þ´º ÃÊ±â°ª µ¹¾Æ°¡±â
			if($tmAutoDefault == "Y"){
				$tm.bind("mouseenter",function(){$j.newTm.autoDefault_off()});
				$tm.bind("mouseleave",function(){$j.newTm.autoDefault_on(dep1)});				
			}
			//2Â÷¸Þ´º removeÃ³¸®
			if($tm2dep_hideArray || $tm2dep_hideArray != "NULL"){
				var $hideArray = $tm2dep_hideArray.split(",");
				var $hideArraySize = $hideArray.length;
				for(var g=0; g<$hideArraySize; g++){
					var ArrayCnt = Number($hideArray[g])-1;
					$tmC.eq(ArrayCnt).find(">ul").remove();
				}
			}
		},
		
		//topMenu view
		view : function(dep1,dep2){
			dep1--;
			dep2--;
			//1dep ovImg
				//old
				var dep1ImgOld = $tmC.eq($tmSavedep1).find(">a>img").get(0);
				dep1ImgOld.src = dep1ImgOld.src.replace($tm1dep_ov,$tm1dep_NaN);
				//new
				var dep1ImgNew = $tmC.eq(dep1).find(">a>img").get(0);
				dep1ImgNew.src = dep1ImgNew.src.replace($tm1dep_NaN,$tm1dep_ov);
				//¿¡·¯¿¹¹æ
				var dep1ImgNewError = $tm1dep_ov.split(".");
				var dep1ImgNewErrorCh1 = dep1ImgNewError[0]+dep1ImgNewError[0];					
				dep1ImgNew.src = dep1ImgNew.src.replace(dep1ImgNewErrorCh1,dep1ImgNewError[0]);
			//2dep ov
			//hide
			$tmC.eq($tmSavedep1).find(">ul").hide();
			//show
			if(!isNaN(dep2)){
				var $tm2depObj = $tmC.eq(dep1).find(">ul");
				var $tm2depObjC = $tm2depObj.find(">li:eq("+dep2+")>a");
				if($tm2dep_imgCheck == "Y"){
				//2dep ovimg
					//old
					var dep2ImgOld = $tm2depObj.find(">li:eq("+$tmSavedep2+")>a>img").get(0);					
					dep2ImgOld.src = dep2ImgOld.src.replace($tm2dep_ov,$tm2dep_NaN);
					//new
					var dep2ImgNew = $tm2depObj.find(">li:eq("+dep2+")>a>img").get(0);
					dep2ImgNew.src = dep2ImgNew.src.replace($tm2dep_NaN,$tm2dep_ov);
					//¿¡·¯¿¹¹æ
					var dep2ImgNewError = $tm2dep_ov.split(".");
					var dep2ImgNewErrorCh1 = dep2ImgNewError[0]+dep2ImgNewError[0];					
					dep2ImgNew.src = dep2ImgNew.src.replace(dep2ImgNewErrorCh1,dep2ImgNewError[0]);
				}
				//2dep text	
				$tm2depObj.show();//2dep show
				$tm2depObjC.addClass($tm2dep_ovClass);//2dep ov Class add
			} else {
				var $tm2depObj = $tmC.eq(dep1).find(">ul");
				$tm2depObj.show();//2dep show
			}
			//½ºÅ²Àû¿ë
			jQuery.newTm.skin($tm2dep_style,dep1,"on");
			//old Save
			$tmSavedep1 = (dep1);
			$tmSavedep2 = (dep2);
		},
		
		//user mouseover
		ov : function(hit){
			var dep1Hit = $tmC.find(">a").index(hit)+1;			
			$j.newTm.view(dep1Hit);//view Call
		},
		
		//user 2dep autoHide
		autoHide_on : function(timeCount,dep1){	
			//½ºÅ²Àû¿ë
			jQuery.newTm.skin($tm2dep_style,dep1," off");
			if(timeCount == "fast"){	
				$tmCC.hide();
			} else {
				$tm2dep_autoHideTime = setTimeout(function(){$tmCC.hide()},$tm2dep_autoHideSpeed);
			}
		},
		
		autoHide_off : function(){
			clearTimeout($tm2dep_autoHideTime);
		},
		
		imgov : function(cnt){			
			//new			
			var dep2ImgNew = $tmCCC.find(" a").eq(cnt).find(">img").get(0);
			dep2ImgNew.src = dep2ImgNew.src.replace($tm2dep_NaN,$tm2dep_ov);
			//¿¡·¯¿¹¹æ
			var dep2ImgNewError = $tm2dep_ov.split(".");
			var dep2ImgNewErrorCh1 = dep2ImgNewError[0]+dep2ImgNewError[0];					
			dep2ImgNew.src = dep2ImgNew.src.replace(dep2ImgNewErrorCh1,dep2ImgNewError[0]);
		},
		
		imgout : function(cnt){			
			//old			
			var dep2ImgNew = $tmCCC.find(" a").eq(cnt).find(">img").get(0);
			dep2ImgNew.src = dep2ImgNew.src.replace($tm2dep_ov,$tm2dep_NaN);
		},
		
		//user 2dep autoDefault Position
		autoDefault_on : function(dep1){		
			$tmAutoDefaultTime = setTimeout(
				function(){
					//old
					var dep1ImgOld = $tmC.eq($tmSavedep1).find(">a>img").get(0);
					dep1ImgOld.src = dep1ImgOld.src.replace($tm1dep_ov,$tm1dep_NaN);
					//new						
					var dep1ImgNew = $tmC.eq((dep1-1)).find(">a>img").get(0);
					dep1ImgNew.src = dep1ImgNew.src.replace($tm1dep_NaN,$tm1dep_ov);
					//¿¡·¯¿¹¹æ
					var dep1ImgNewError = $tm1dep_ov.split(".");
					var dep1ImgNewErrorCh1 = dep1ImgNewError[0]+dep1ImgNewError[0];					
					dep1ImgNew.src = dep1ImgNew.src.replace(dep1ImgNewErrorCh1,dep1ImgNewError[0]);
					
					//ÀçÁ¤ÀÇ
					$tmCC.hide().eq((dep1-1)).show();
					//ÀÚµ¿»ç¶óÁüÈ¿°ú ¼±ÅÃ½Ã ÀçÈ£Ãâ
					if($tm2dep_autoHide == "Y" && $tmAutoDefaultSpeed >= $tm2dep_autoHideSpeed){
						$j.newTm.autoHide_on("fast",(dep1-1));
					}
					//ÃÊ±â°ª ¼³Á¤
					$tmSavedep1 = dep1;
				},
				$tmAutoDefaultSpeed				
			);			
		},
		
		autoDefault_off : function(){
			clearTimeout($tmAutoDefaultTime);
		},
		
		//2dep autoSize
		autoSize : function(){
			var objLeftPosition=0;//left°ªÀ» ¹Þ¾Æ¿À±âÀ§ÇØ 1depÀÇ ³ÐÀÌ°ªÀ» ¼øÂ÷ÀûÀ¸·Î ÀúÀåÇÏ¿© ¹Ý¿µÇÑ´Ù.
			
			for(var i=0; i<$tmC.size(); i++){				
				var obj = $tmC.eq(i).find(">ul");
				var objC = $tmC.eq(i).find(">ul>li");	
				
				var objAllWidth = 0;					
				for(var j=0; j<objC.size(); j++){
					objAllWidth += objC.eq(j).width();
				}
				//»çÀÌÁî°¡ ºÎ¸ðº¸´Ù ÀÛÀ»¶§¸¸ Àû¿ë, ¾Æ´Ò½Ã¿¡´Â ºÎ¸ðÀÇ ³ÐÀÌ°ªÀû¿ë					
				if(objAllWidth < Number($tm.width())){
					//³ÐÀÌÁ¤ÀÇ
					if($tm2dep_imgCheck == "N"){
						//2dep°¡ textÀÏ¶§ css font-weight:bold ¼Ó¼ºÀ¸·ÎÀÎÇÑ ¿øÀÎÀ¸·Î ³ÐÀÌ°ªÀ» +10pxÁ¤µµ¸¦ ´õÇÑ´Ù.
						objAllWidth = objAllWidth+10;
					}						
					obj.width(objAllWidth);
					//À§Ä¡Á¤ÀÇ
					var objP = obj.parent();
					var objPLeft = objLeftPosition;
					var leftCheck = objAllWidth+objPLeft;
					
					if(leftCheck < Number($tm.width())){
						obj.css("left",objPLeft+"px");
						//alert(obj.css("left"));
					} else {
						//ºÎ¸ð°ªÀ» ³Ñ¾î°¬À»½Ã ¿À¸¥ÂÊÁ¤·Ä·Î ¼Ó¼ºÀ» ¹Ù²Û´Ù.
						var objPLeft_re = Number($tm.width())-objAllWidth;
						obj.css("left",objPLeft_re+"px");
					}
					//1depÀÇ ³ÐÀÌ°ªÀ» ¼øÂ÷ÀûÀ¸·Î ÀúÀå
					objLeftPosition += $tmC.eq(i).find(">a").width();
				} else {
					//³ÐÀÌÁ¤ÀÇ
					obj.width($tm.width());
					//À§Ä¡Á¤ÀÇ
					obj.css("left","0px");
				}
			}
		},
		
		
		
/*********************************************************************************************


									½ºÅ² Àû¿ë ¹× Ãß°¡


**********************************************************************************************/
		//½ºÅ²Àû¿ë
		skin : function(skin,dep1,ch){
			if(skin != ""){				
				if(skin == "type_1"){jQuery.newTm.type_1(dep1,ch);}//½ºÅ²Å¸ÀÔ1
				else if(skin == "type_2"){jQuery.newTm.type_2(dep1,ch);}//½ºÅ²Å¸ÀÔ2
				else if(skin == "type_3"){jQuery.newTm.type_3(dep1,ch);}//½ºÅ²Å¸ÀÔ3
				else if(skin == "type_4"){jQuery.newTm.type_4(dep1,ch);}//½ºÅ²Å¸ÀÔ4
			}
		},
		
		//2dep ½ºÅ² ÇÃ·¯±×
		type_1 : function(dep1,ch){
			var obj = $tmC.eq(dep1).find(">ul");
			if(ch == "on"){
				//over
				$tmCC.css("opacity","0");//ÀüÃ¼ 2dep opacity Àû¿ë
				obj.stop();
				obj.animate({opacity:1},1000);
			} else {
				//out
				obj.stop();
				obj.animate({opacity:0},1000);
			}
		},
		type_2 : function(dep1,ch){
			var obj = $tmC.eq(dep1).find(">ul>li");
			var typeSpeed = 1000;//±âº» Time
			var typeSpeedPlus = 300;//±âº» Time Áõ°¡Ä¡
			
			if(ch == "on"){
				//over
				$tmCCC.css("opacity","0");//ÀüÃ¼ 2dep opacity Àû¿ë
				obj.stop();				
				for(var i=0; i<obj.size();i++){					
					obj.eq(i).animate({opacity:1},typeSpeed);
					//timeLineÀ» Áõ°¡½ÃÅ²´Ù.
					typeSpeed = typeSpeed+typeSpeedPlus;
				}
			} else {
				//out
				obj.stop();
				obj.animate({opacity:0},1000);
			}
		},
		type_3 : function(dep1,ch){			
			var obj = $tmC.eq(dep1).find(">ul");
			if($j(".tmBlind").size() == 0){
				//»ý¼º
				$j('<div class="tmBlind"></div>').prependTo($j("body"));
				var $blind = $j(".tmBlind");
				var $topVal = ($tm.position().top+$tmC.eq(0).find(">a").height());//tmblind Top°ªÀ» ¼³Á¤ÇÑ´Ù
				
				//css±¸¼º
				$blind.css({
					"position":"absolute",
					"left":"0",
					"top":$topVal+"px",
					"z-index":(Number($tm.css("z-index"))-1),
					"width":"100%",
					"height":"0px",
					"line-height":"0px",
					"background":"#000",
					"opacity":"0.7"
				});
			} else {
				var $blind = $j(".tmBlind");				
			}
			
			if(ch == "on"){
				//over				
				$tmCC.css("opacity","0");//ÀüÃ¼ 2dep opacity Àû¿ë
				if(obj.size() != 0){
					//2dep»ó´Ü¿©¹é°ªÀ» À§¾Æ·¡·Î ÁÖ±âÀ§ÇØ *2Àû¿ë
					var onHeight = obj.innerHeight()+(Number($tm2dep_topPotision*2));
				} else {
					var onHeight = 0;
				}
				//blind ½ÃÀÛ
				$blind.stop();
				obj.stop();
				$blind.animate(
					{height:onHeight+"px"},300
					,function(){
						obj.animate({opacity:1},500);
					}
				);
			} else {
				//out
				var $blind = $j(".tmBlind");
				//blind ½ÃÀÛ
				$blind.stop();				
				obj.stop();
				obj.animate(
					{opacity:0},500
					,function(){
						$blind.animate({height:0},300);
					}
				);
			}
			
		},
		type_4 : function(dep1,ch){
			var obj = $tmC.eq(dep1).find(">ul");
			var $topVal = $tmC.eq(0).find(">a").height();//2dep Top°ªÀ» ¼³Á¤ÇÑ´Ù				
			if($tm.css("overflow") != "hidden"){
				$tm.css({"overflow":"hidden"});
				$tmC.css({"z-index":"100"});//ÀüÃ¼ 2dep z-index Àû¿ë				
			}
			if(ch == "on"){
				//over
				obj.stop();
				$tmCC.css({"top":"-"+$topVal+"px","z-index":"-1"});//ÀüÃ¼ 2dep top Àû¿ë
				obj.animate({top:$topVal},300);
			} else {
				//out
				obj.stop();
				
				//ie°¡ ¾Æ´Ñ°æ¿ì¿¡¸¸ ½ÇÇà.
				//ie¿¡¼­´Â tmÀÇ bg°¡ ¾øÀ»½Ã °ø°£À» ÀÎ½ÄÇÏÁö ¾Ê¾Æ ¿¹¿ÜÃ³¸®
				if(!$j.browser.msie){
					obj.animate({top:"-"+$topVal+"px"},300);
				}
			}
		}
	}//newTm end
		
})(jQuery);
