var _nine,
	_scroll;
com.ninebridges = {
	ids : {
		main : '#contentIndex',
		body : 'body',
		header : '#header',
		topNav : '#topNav',
		contents : '#contents',
		subTitle : '#subTitleArea',
		content : '#content',
		contentInner : '#contentInner',
		visual : '#fullVisual',
		footer : '#footer'
	},
	indexURL : '/index_flash.asp',
	winW : null,
	winH : null,
	
	mainScrollAble : true,

	CONTENTS_WIDTH : 940,
	CONTENTS_LEFT_SPACE : 0,
	CONTENTS_MIN_LEFT_SPACE : 20, // 20
	CONTENT_MIN_HEIGHT : 580,
	CONTENT_MIN_TOP_SPACE : 95,
	FOOTER_FLASH_HEIGHT : 54, // 56	
	FULLVISUAL_LOAD_COMPLEATE : _code.INSTANCENAME+'fullvisual.FULLVISUAL_LOAD_COMPLEATE',
	CONTENTS_HEIGHT_CONTAINER : _code.INSTANCENAME+'contents.CONTENTS_HEIGHT_CONTAINER',
	CONTENTS_TAB_SCROLL_EVENT : _code.INSTANCENAME+'contents.CONTENTS_TAB_SCROLL_EVENT',
	CONTENTS_RESIZE_SCROLL_EVENT : _code.INSTANCENAME+'contents.CONTENTS_RESIZE_SCROLL_EVENT',
	CONTENTS_SCROLL_ABLE_EVENT : _code.INSTANCENAME+'contents.CONTENTS_SCROLL_ABLE_EVENT',
	
	CONTENTS_SCROLL_TAG_CONTAINER : "<div class=\"scrollContainer\" />",
	CONTENTS_SCROLL_TAG_BTN : "<div class=\"scrollBtn\" />",
	CONTENTS_SCROLL_TAG_BG : "<div class=\"scrollBg\" />",
	
	isContents : function(){
		return ($(_nine.ids.contents).length) ? true : false; 
	},
	
//	isIndex : function(){
//		return ($(_nine.ids.main).length) ? true : false;
//	},
	
	init : function(){
		if(_nine.isContents()){
			var container = new com.ninebridges.Container();
			container.init();
		}
//		if(_nine.isIndex()){
//			var indexContent = new com.ninebridges.indexContent();
//			indexContent.init();
//		}
		$("html").rightClick(function(e){}).noContext();
	}
	
};

//com.ninebridges.indexContent = function(){
//	var $index = $(_nine.ids.main);
//	var $indexIFR = null;
//	var windwSizeUpdate = function(){
//		_nine.winW = $(window).width();
//		_nine.winH = $(window).height();
//	};
//	
//	this.setIframeWidthHeight = function(){
//		$indexIFR.attr({
//			width : _nine.winW
//			,height : _nine.winH
//		});
//	};
//	
//	this.resize = function(){
//		windwSizeUpdate();
//		this.setIframeWidthHeight();
//	};
//	
//	this.init = function(){
//		windwSizeUpdate();
//		
//		var _this = this;
//		var strIframe = '<iframe id="index-ifr" name="_nine" src="'+_nine.indexURL+'" frameborder="0" width="'+_nine.winW+'" height="'+_nine.winH+'" marginwidth="0" marginheight="0" scrolling="no"></iframe>';
//		$index.empty().append(strIframe);
//		$indexIFR = $('#index-ifr');
//		
//		$(window).bind({
//			resize : function(){
//				_this.resize();
//			}
//		});
//	};
//};

com.ninebridges.Container = function(){
	_nine.winW = $(window).width();
	_nine.winH = $(window).height();
	
	var $contents = $(_nine.ids.contents);
	var $content = $contents.find(_nine.ids.content);  
	var $contentInner = $content.find(_nine.ids.contentInner);
	var contentsH = $contents.height();
	var contentInnerH = $contentInner.height();  
	var fullBackground = null;
	// var header = null;
	var contents = null;
	var contentsScroll = null;
	var contentsScrollBar = null;
	var contentsScrollFlag = false;
	var contentSizeData = null;
	var resizeTimerID = null;
	var firstResizeFlag = false;
	var _this = this;
		
	var $scrollContainer = $("<div class=\"scrollContainer\" />");
	var $scrollBtn = $("<div class=\"scrollBtn\" />");
	var $scrollBg =  $("<div class=\"scrollBg\" />"); 
	
	var layoutEventHandler = function(){
		
		$(window).bind({
			load : function(){
				$('body').trigger(_nine.CONTENTS_RESIZE_SCROLL_EVENT);
			},
			resize : function(){
				clearTimeout(resizeTimerID);
				
				contentsSizeData = getContentsSizeData();
				fullBackground.resize();
				
				resizeTimerID = setTimeout(function(){
					_this.contentsHeightContainer(contentsSizeData);
				},500);
			}
		});			
	};
	
	var getContentsSizeData = function(){
		_nine.winW = $(window).width();
		_nine.winH = $(window).height();
		
		var contentScreenH = _nine.winH - _nine.FOOTER_FLASH_HEIGHT;
		var contentsTopHeight = contentsBottomHeight = (_nine.winH - (_nine.CONTENT_MIN_HEIGHT + _nine.FOOTER_FLASH_HEIGHT))/2;
		contentsTopHeight = (contentsTopHeight > _nine.CONTENT_MIN_TOP_SPACE) ? contentsTopHeight : _nine.CONTENT_MIN_TOP_SPACE;  
		contentsBottomHeight = (contentsBottomHeight > 0) ? contentsBottomHeight : 0;
		  
		// var contentsPosX = ((_nine.winW - _nine.CONTENTS_WIDTH)/2) - _nine.CONTENTS_MIN_LEFT_SPACE;
		var contentsPosX = ((_nine.winW - _nine.CONTENTS_WIDTH)/2);
		contentsPosX = (contentsPosX > _nine.CONTENTS_MIN_LEFT_SPACE) ? contentsPosX : _nine.CONTENTS_MIN_LEFT_SPACE;
		
		var contentsPosY = contentsTopHeight;
		
		var contentsAllH = (_nine.CONTENT_MIN_HEIGHT + contentsTopHeight + contentsBottomHeight);
		contentsAllH = (contentsAllH > _nine.CONTENT_MIN_HEIGHT) ? contentsAllH : _nine.CONTENT_MIN_HEIGHT;

		var contentH = contentScreenH - contentsTopHeight;
		contentH = (contentH > _nine.CONTENT_MIN_HEIGHT) ? contentH : _nine.CONTENT_MIN_HEIGHT;
		
		return {
			contentScreenH : contentScreenH
			,contentScreenMinH : _nine.CONTENT_MIN_HEIGHT + _nine.CONTENT_MIN_TOP_SPACE
			,topH : contentsTopHeight
			,contentsAllH : contentsAllH  
			,contentH : contentH
			,contentInnerH : $contentInner.innerHeight() 
			,spaceAllH : (contentsTopHeight + contentsBottomHeight + _nine.FOOTER_FLASH_HEIGHT)
			,posX : contentsPosX
			,posY : contentsPosY
		};
	};
	
	var contentsScrollInit = function(o){
		contentsScroll = new ScrollContent(o);
		contentsScroll.init("contentScroll", {
			scrollContainer: $scrollContainer
			,scrollBtn: $scrollBtn
			,scrollBg: $scrollBg
			,eventTarget : $(_nine.ids.content)
			,scrollTarget : $(_nine.ids.contentInner)
			,scrollTargetSpace : o.topH
			,scrollHeight : 450
//			,scrollHeight : _nine.CONTENT_MIN_HEIGHT
		});
		
		$('body').bind(ScrollBar.EVENT_SCROLL_OVER, catchedScrollBarEventHandler);
		$('body').bind(ScrollBar.EVENT_SCROLL_OUT, catchedScrollBarEventHandler);
		$('body').bind(ScrollBar.EVENT_SCROLL_PRESS, catchedScrollBarEventHandler);
		$('body').bind(ScrollBar.EVENT_SCROLL_RELEASE, catchedScrollBarEventHandler);
		$('body').bind(ScrollBar.EVENT_SCROLL_DRAG, catchedScrollBarEventHandler);
		$('body').bind(ScrollBar.EVENT_SCROLL_WHEEL, catchedScrollBarEventHandler);
		
		$('body').bind(_nine.CONTENTS_RESIZE_SCROLL_EVENT, _this.contentsResizeScroll);
		$('body').bind(_nine.CONTENTS_SCROLL_ABLE_EVENT, _this.contentsScrollAble);
		
		if(_this.isContentMinHeigh()) contentsScroll.scrollBar.hide();
		
		$(_nine.ids.subTitle).append(contentsScroll.scrollBar.getScrollContainer);
	};
	
	function catchedScrollBarEventHandler(evt, extraParam){
		contentsScrollBar = contentsScroll.scrollBar;
		var scrollBtn = contentsScrollBar.scrollBtn;
		var scrollBg = contentsScrollBar.scrollBg;
		if(_nine.mainScrollAble == false){
			contentsScrollBar.wheelAble = false;
			return;
		}else{
			contentsScrollBar.wheelAble = true;
		}
		if(extraParam.nameSpace == contentsScrollBar.nameSpace){
			var cssBtnHover = 'scrollBtnHover',
				cssBgHover = 'scrollBgHover';

			switch(evt.type){
				case ScrollBar.EVENT_SCROLL_OVER:
					scrollBtn.addClass(cssBtnHover);
					scrollBg.addClass(cssBgHover);
					break;
	
				case ScrollBar.EVENT_SCROLL_OUT:
					scrollBtn.removeClass(cssBtnHover);
					scrollBg.removeClass(cssBgHover);
					break;
	
//				case ScrollBar.EVENT_SCROLL_PRESS:
//					scrollBtn.css({
//						background : "#0f82bd"
//					});
//					break;
//				case ScrollBar.EVENT_SCROLL_RELEASE:
//					scrollBtn.css({
//						background:"#333"
//					});
//					break;
	
				case ScrollBar.EVENT_SCROLL_DRAG:
					contentsScroll.scrollMoveToPercentage(extraParam.percent);
					break;
	
				case ScrollBar.EVENT_SCROLL_WHEEL:
					contentsScroll.scrollMoveToPercentage(extraParam.percent);
					break;
			}
		}
	};
	
	this.isContentMinHeigh = function(){
		var b = (contentInnerH <= _nine.CONTENT_MIN_HEIGHT);  
		return b;
	};
	
	this.isScreenMinHeight = function(){
		var b = (contentInnerH > _nine.CONTENT_MIN_HEIGHT && contentInnerH <= (contentsSizeData.contentScreenH - contentsSizeData.topH)); 
		return b;
	};
	
	this.contentsScrollAble = function(){
		_nine.mainScrollAble == false;
		contentsScroll.scrollBar.wheelAble = true;
	}
	
	this.contentsResizeScroll = function(){
		var o = getContentsSizeData();
		contentsScroll.resize(o);
	};
	
	this.contentsHeightContainer = function(o){
		// header.resize(o);
		contents.move(o);
		contentsScroll.resize(o);

//		if(this.isContentMinHeigh()){
//			contentsScroll.scrollBar.hide();
//		}else{
//			if(this.isScreenMinHeight()){
//				contentsScroll.scrollBar.hide();
//			}else{
//				contentsScroll.scrollBar.show();
//			}
//		}
	};
	
	this.fullVisualLoadCompleate = function(){
		$('body').unbind(_nine.FULLVISUAL_LOAD_COMPLEATE, _this.fullVisualLoadCompleate);		
		
		_this.contentsHeightContainer(contentsSizeData);
	};
	
	this.gotoMove = function(evt, extraParam){
		var $target = $('#'+extraParam.targetID),
			targetPosition = $target.position(),
			targetPosTop = targetPosition.top,
			targetMarginTop = parseInt($target.css('marginTop')),
			targetPaddingTop = parseInt($target.css('paddingTop'));
		targetPosTop = targetPosTop + targetMarginTop;
		contentsScroll.moveToPixel(targetPosTop);
		contentsScroll.scrollBar.setPixel(targetPosTop);
	};
	
	this.init = function(){
		$('body').bind(_nine.FULLVISUAL_LOAD_COMPLEATE, _this.fullVisualLoadCompleate);
		$('body').bind(_nine.CONTENTS_CLONE_SCROLL_EVENT, _this.cloneContentsUpdate)
		
		//header = new com.ninebridges.Header();
		contents = new com.ninebridges.Contents();
		fullBackground = new com.ninebridges.FullBackground();
		
		$('body').bind(_nine.CONTENTS_TAB_SCROLL_EVENT, this.gotoMove);

		contentsSizeData = getContentsSizeData();

		//header.init(contentsSizeData);
		contents.init(contentsSizeData);
		contentsScrollInit(contentsSizeData);
		
		fullBackground.init();
		layoutEventHandler();
	};
};

com.ninebridges.FullBackground = function(){
	var $fullVisualImage = null,
		strLoading = null,
		_this = this;
	
	var getFitRectSize = function($originalW, $originalH, $areaW, $areaH){
		var sH, sW,
			sPer = $areaW / $areaH,
			imgPer = $originalW / $originalH,
			imgX = 0,
			imgY = 0;
		
		if (imgPer > sPer) {
			sW = Math.round($originalW * ($areaH / $originalH));
			sH = $areaH;
			imgX = Math.round(($areaW - sW) >> 1);
			imgY = 0;
		} else {
			sW = $areaW;
			sH = Math.round($originalH * ($areaW / $originalW));   
			imgX = 0;
			imgY = Math.round(($areaH - sH) >> 1);
		}

		return {
			imgX: imgX,
			imgY: imgY,
			sW: sW,
			sH: sH
		};
	};
	
	var setFullBackground = function(){
		var visualSize = getFitRectSize($fullVisualImage.width(),$fullVisualImage.height(),_nine.winW,_nine.winH);

		$fullVisualImage.css({
			marginLeft : visualSize.imgX,
			marginTop : visualSize.imgY,
			width : visualSize.sW,
			height : visualSize.sH
		});
	};
	
	this.resize = function(){
		setFullBackground();
	};
		
	this.imageLoadCompleate = function(){
		$('body').trigger(_nine.FULLVISUAL_LOAD_COMPLEATE);
		
		setFullBackground();
		
		setTimeout(function(){
			strLoading.remove();
		},300);
	};
	
	this.init = function(){
		$fullVisual = $(_nine.ids.visual);
		$fullVisualImage = $fullVisual.find('img:first');
//		$fullVisualImageSrc = $fullVisualImage.attr('src');
		strLoading = new _code.net.StrLoading({
			opt : { opacity : 1 },
			css : { 
				opacity : 1,
				zIndex : 2
			}
		});
		
		strLoading.set();
		$fullVisualImage.imgpreload(function(){
			_this.imageLoadCompleate();
		});
	};
};

/*
com.ninebridges.Header = function(){
	var $header = $(_nine.ids.header),
		$topNav = $(_nine.ids.topNav),
		spaceLeft = 240,
		headerWidth = null,
		posX = null;
	
	var updateHeader = function(o){
		posX = o.posX + spaceLeft;
		headerWidth = (_nine.winW - $topNav.innerWidth())/2;
	};

	this.resize = function(o){
		updateHeader(o);
		this.move(o);
	};

	this.move = function(o){

		var speed = 350,
			easeOpt = 'easeInOutExpo';
		$header.css({
			width : headerWidth,
			left : posX
		});

//		$header.stop().animate({
//			width : headerWidth, 
//			left : posX
//		},speed, easeOpt);

	};

	this.init = function(o){
		updateHeader(o);

		$header.css({
			width : headerWidth,
			left : posX
		});
	};
};
*/

com.ninebridges.Contents = function(){
	var $contents = $(_nine.ids.contents),
		$content = $contents.find(_nine.ids.content),
		$hoverEvent = null,
		$checkRadio = null,
		$imgAll = null;

	var tableHoverEvent = function(){
		var $trElem = $hoverEvent.find('tr'),
			cssFirst = 'first', cssLast = 'last',
			cssHover = 'hover', cssNext = 'next',
			$tdElem = null;
		$trElem.bind({
			mouseenter : function(){
				$tdElem = $(this).find('td');
				$(this).addClass(cssHover).next().addClass(cssNext);
				$tdElem.eq(0).addClass(cssFirst).end().eq(-1).addClass(cssLast);
			},
			mouseleave : function(){
				 $tdElem = $(this).find('td');
				$(this).removeClass(cssHover).next().removeClass(cssNext);
				$tdElem.eq(0).removeClass(cssFirst).end().eq(-1).removeClass(cssLast);
			}
		});
	},

	imgHoverEvent = function($img){
		var f = null, o = null,
			strOn = '_on';
		$img.bind({
			mouseenter : function(){
				if(f == null){
					f = $(this).attr('src').slice(-4);
					o = strOn+f;
				}
				$(this).attr({src:$(this).attr('src').split(f).join(o)});
			},
			mouseleave : function(){
				$(this).attr({src:$(this).attr("src").split(o).join(f)});
			}
		});
	};
	
	this.move = function(o){
		var $h2Title = $contents.find(_nine.ids.subTitle+':first'),
			speed = 350,
			easeOpt = 'easeInOutExpo';
			
		$contents.not(':animated').stop().animate({
			height : o.contentsAllH,
			left: o.posX
		}, speed, easeOpt);
		
		$content.not(':animated').animate({
			paddingTop : o.topH, 
			height : o.contentH
		},speed, easeOpt);
		
		$h2Title.not(':animated').animate({
			top : o.topH
		},speed, easeOpt);
	}

	this.init = function(o){
		$hoverEvent = $contents.find('tbody.hoverEvent');
		$checkRadio = $(_nine.ids.body).find("input[type='checkbox'], input[type='radio']");
		$imgRollOver = $contents.find('img.hover');

		this.move(o);

		if($hoverEvent.length && (tableHoverEvent()));
		if($checkRadio.length && (makeinputtoimage()));
		if($imgRollOver.length && (imgHoverEvent($imgRollOver)));
	};
};

com.ninebridges.scrollContent = {};
com.ninebridges.scrollContent.roundingHeader = function(){
	var scrollID1 = '#roundingMember';
	var scrollInner1 = '#roundingMemberInner';
	var scrollID2 = '#roundingAnniversary';
	var scrollInner2 = '#roundingAnniversaryInner';
	var scrollInnerHeight1 = $(scrollInner1)[0].scrollHeight;
	var scrollInnerHeight2 = $(scrollInner2)[0].scrollHeight;
	var scrollBarHeight = 85;
	
	var $scrollContainer1 = $(_nine.CONTENTS_SCROLL_TAG_CONTAINER);
	var $scrollBtn1 = $(_nine.CONTENTS_SCROLL_TAG_BTN);
	var $scrollBg1 =  $(_nine.CONTENTS_SCROLL_TAG_BG);
	$(scrollInner1).bind({
		mouseenter : function(){
			_nine.mainScrollAble = false;
		},
		mouseleave : function(){
			_nine.mainScrollAble = true;
			$('body').trigger(_nine.CONTENTS_SCROLL_ABLE_EVENT);
		}
	});
	var clauseScroll1 = new ScrollContent();
		clauseScroll1.init("roundingHeader1",{
			scrollContainer: $scrollContainer1
			,scrollBtn: $scrollBtn1
			,scrollBg: $scrollBg1
			,eventTarget : $(scrollInner1)
			,scrollHeight : scrollBarHeight
		});
	if(scrollInnerHeight1 <= scrollBarHeight-25) clauseScroll1.scrollBar.hide();
	$(scrollID1).append(clauseScroll1.scrollBar.getScrollContainer);
	$('body').bind(ScrollBar.EVENT_SCROLL_OVER, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_OUT, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_PRESS, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_RELEASE, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_DRAG, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_WHEEL, catchedScrollBarEventHandler1);
	function catchedScrollBarEventHandler1(evt, extraParam){
		var clauseScrollBar = clauseScroll1.scrollBar;
		var scrollBtn = clauseScrollBar.scrollBtn;

		if(extraParam.nameSpace == clauseScrollBar.nameSpace){
			switch(evt.type){	
				case ScrollBar.EVENT_SCROLL_DRAG:
					clauseScroll1.scrollMoveToPercentage(extraParam.percent);
					break;
	
				case ScrollBar.EVENT_SCROLL_WHEEL:
					clauseScroll1.scrollMoveToPercentage(extraParam.percent);
					break;
			}
		}
	};
	
	var $scrollContainer2 = $(_nine.CONTENTS_SCROLL_TAG_CONTAINER);
	var $scrollBtn2 = $(_nine.CONTENTS_SCROLL_TAG_BTN);
	var $scrollBg2 =  $(_nine.CONTENTS_SCROLL_TAG_BG);
	$(scrollInner2).bind({
		mouseenter : function(){
			_nine.mainScrollAble = false;
		},
		mouseleave : function(){
			_nine.mainScrollAble = true;
			$('body').trigger(_nine.CONTENTS_SCROLL_ABLE_EVENT);
		}
	});
	var clauseScroll2 = new ScrollContent();
		clauseScroll2.init("roundingHeade2",{
			scrollContainer: $scrollContainer2
			,scrollBtn: $scrollBtn2
			,scrollBg: $scrollBg2
			,eventTarget : $(scrollInner2)
			,scrollHeight : scrollBarHeight
		});
	if(scrollInnerHeight2 <= scrollBarHeight-25) clauseScroll2.scrollBar.hide();
	$(scrollID2).append(clauseScroll2.scrollBar.getScrollContainer);
//	clauseScroll2.scrollBar.hide();
	$('body').bind(ScrollBar.EVENT_SCROLL_OVER, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_OUT, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_PRESS, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_RELEASE, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_DRAG, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_WHEEL, catchedScrollBarEventHandler2);
	function catchedScrollBarEventHandler2(evt, extraParam){
		var clauseScrollBar = clauseScroll2.scrollBar;
		var scrollBtn = clauseScrollBar.scrollBtn;

		if(extraParam.nameSpace == clauseScrollBar.nameSpace){
			switch(evt.type){
				case ScrollBar.EVENT_SCROLL_DRAG:
					clauseScroll2.scrollMoveToPercentage(extraParam.percent);
					break;
	
				case ScrollBar.EVENT_SCROLL_WHEEL:
					clauseScroll2.scrollMoveToPercentage(extraParam.percent);
					break;
			}
		}
	};
	
};
com.ninebridges.scrollContent.singUp = function(){
	var scrollID1 = '#clauseWrapper1';
	var scrollInner1 = '#clauseInner1';
	var scrollID2 = '#clauseWrapper2';
	var scrollInner2 = '#clauseInner2';
		
	var $scrollContainer1 = $(_nine.CONTENTS_SCROLL_TAG_CONTAINER);
	var $scrollBtn1 = $(_nine.CONTENTS_SCROLL_TAG_BTN);
	var $scrollBg1 =  $(_nine.CONTENTS_SCROLL_TAG_BG);
	$(scrollInner1).bind({
		mouseenter : function(){
			clauseScroll1.scrollBar.show();
			_nine.mainScrollAble = false;
		},
		mouseleave : function(){
			clauseScroll1.scrollBar.hide();
			_nine.mainScrollAble = true;
			$('body').trigger(_nine.CONTENTS_SCROLL_ABLE_EVENT);
		}
	});
	var clauseScroll1 = new ScrollContent();
		clauseScroll1.init("clauseWrapper1",{
			scrollContainer: $scrollContainer1
			,scrollBtn: $scrollBtn1
			,scrollBg: $scrollBg1
			,eventTarget : $(scrollInner1)
			,scrollHeight : 169
		});
	$(scrollInner1).append(clauseScroll1.scrollBar.getScrollContainer);
	clauseScroll1.scrollBar.hide();
	$('body').bind(ScrollBar.EVENT_SCROLL_OVER, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_OUT, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_PRESS, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_RELEASE, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_DRAG, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_WHEEL, catchedScrollBarEventHandler1);
	function catchedScrollBarEventHandler1(evt, extraParam){
		var clauseScrollBar = clauseScroll1.scrollBar;
		var scrollBtn = clauseScrollBar.scrollBtn;

		if(extraParam.nameSpace == clauseScrollBar.nameSpace){
			var easeOpt = 'easeInOutExpo',
				speed = 150;
			switch(evt.type){
				case ScrollBar.EVENT_SCROLL_OVER:
					scrollBtn.stop().animate({
						width : 13
					}, speed, easeOpt);
					break;
	
				case ScrollBar.EVENT_SCROLL_OUT:
					scrollBtn.stop().animate({
						width : 10
					}, speed, easeOpt);
					break;
	
				case ScrollBar.EVENT_SCROLL_DRAG:
					clauseScroll1.scrollMoveToPercentage(extraParam.percent);
					break;
	
				case ScrollBar.EVENT_SCROLL_WHEEL:
					clauseScroll1.scrollMoveToPercentage(extraParam.percent);
					break;
			}
		}
	};
	
	var $scrollContainer2 = $(_nine.CONTENTS_SCROLL_TAG_CONTAINER);
	var $scrollBtn2 = $(_nine.CONTENTS_SCROLL_TAG_BTN);
	var $scrollBg2 =  $(_nine.CONTENTS_SCROLL_TAG_BG);
	$(scrollInner2).bind({
		mouseenter : function(){
			clauseScroll2.scrollBar.show();
			_nine.mainScrollAble = false;
		},
		mouseleave : function(){
			clauseScroll2.scrollBar.hide();
			_nine.mainScrollAble = true;
			$('body').trigger(_nine.CONTENTS_SCROLL_ABLE_EVENT);
		}
	});
	var clauseScroll2 = new ScrollContent();
		clauseScroll2.init("clauseWrapper2",{
			scrollContainer: $scrollContainer2
			,scrollBtn: $scrollBtn2
			,scrollBg: $scrollBg2
			,eventTarget : $(scrollInner2)
			,scrollHeight : 169
		});
	$(scrollInner2).append(clauseScroll2.scrollBar.getScrollContainer);
	clauseScroll2.scrollBar.hide();
	$('body').bind(ScrollBar.EVENT_SCROLL_OVER, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_OUT, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_PRESS, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_RELEASE, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_DRAG, catchedScrollBarEventHandler2);
	$('body').bind(ScrollBar.EVENT_SCROLL_WHEEL, catchedScrollBarEventHandler2);
	function catchedScrollBarEventHandler2(evt, extraParam){
		var clauseScrollBar = clauseScroll2.scrollBar;
		var scrollBtn = clauseScrollBar.scrollBtn;

		if(extraParam.nameSpace == clauseScrollBar.nameSpace){
			var easeOpt = 'easeInOutExpo',
				speed = 150;
			switch(evt.type){
				case ScrollBar.EVENT_SCROLL_OVER:
					scrollBtn.stop().animate({
						width : 13
					}, speed, easeOpt);
					break;
	
				case ScrollBar.EVENT_SCROLL_OUT:
					scrollBtn.stop().animate({
						width : 10
					}, speed, easeOpt);
					break;
	
				case ScrollBar.EVENT_SCROLL_DRAG:
					clauseScroll2.scrollMoveToPercentage(extraParam.percent);
					break;
	
				case ScrollBar.EVENT_SCROLL_WHEEL:
					clauseScroll2.scrollMoveToPercentage(extraParam.percent);
					break;
			}
		}
	};
};
com.ninebridges.scrollContent.inquiry = function(){
	var scrollID1 = '#inquiryWrapper';
	var scrollInner1 = '#inquiryInner';
		
	var $scrollContainer1 = $(_nine.CONTENTS_SCROLL_TAG_CONTAINER);
	var $scrollBtn1 = $(_nine.CONTENTS_SCROLL_TAG_BTN);
	var $scrollBg1 =  $(_nine.CONTENTS_SCROLL_TAG_BG);
	$(scrollInner1).bind({
		mouseenter : function(){
			clauseScroll1.scrollBar.show();
			_nine.mainScrollAble = false;
		},
		mouseleave : function(){
			clauseScroll1.scrollBar.hide();
			_nine.mainScrollAble = true;
			$('body').trigger(_nine.CONTENTS_SCROLL_ABLE_EVENT);
		}
	});
	var clauseScroll1 = new ScrollContent();
		clauseScroll1.init("clauseWrapper1",{
			scrollContainer: $scrollContainer1
			,scrollBtn: $scrollBtn1
			,scrollBg: $scrollBg1
			,eventTarget : $(scrollInner1)
			,scrollHeight : 173
		});
	$(scrollInner1).append(clauseScroll1.scrollBar.getScrollContainer);
	clauseScroll1.scrollBar.hide();
	$('body').bind(ScrollBar.EVENT_SCROLL_OVER, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_OUT, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_PRESS, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_RELEASE, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_DRAG, catchedScrollBarEventHandler1);
	$('body').bind(ScrollBar.EVENT_SCROLL_WHEEL, catchedScrollBarEventHandler1);
	function catchedScrollBarEventHandler1(evt, extraParam){
		var clauseScrollBar = clauseScroll1.scrollBar;
		var scrollBtn = clauseScrollBar.scrollBtn;

		if(extraParam.nameSpace == clauseScrollBar.nameSpace){
			var easeOpt = 'easeInOutExpo',
				speed = 150;
			switch(evt.type){
				case ScrollBar.EVENT_SCROLL_OVER:
					scrollBtn.stop().animate({
						width : 11
					}, speed, easeOpt);
					break;
	
				case ScrollBar.EVENT_SCROLL_OUT:
					scrollBtn.stop().animate({
						width : 10
					}, speed, easeOpt);
					break;
	
				case ScrollBar.EVENT_SCROLL_DRAG:
					clauseScroll1.scrollMoveToPercentage(extraParam.percent);
					break;
	
				case ScrollBar.EVENT_SCROLL_WHEEL:
					clauseScroll1.scrollMoveToPercentage(extraParam.percent);
					break;
			}
		}
	};
};

com.ninebridges.util = {};
com.ninebridges.util.quickContentMove = function(tabNavID){
	var $tabNav = $('#'+tabNavID),
		$tabNavLink = $tabNav.find('a'),
		quickLinkID = null;
		targetPosition = null;
		
	$tabNavLink.click(function(){
		var extraParam = {
			targetID : $(this)[0].href.match(/#([a-z0-9_]+)/)[1]
		};
		$('body').trigger(_nine.CONTENTS_TAB_SCROLL_EVENT, extraParam);
		return false;
	});
};
com.ninebridges.util.contentCloneAppend = function(contentID){
	var $subTitle = $(_nine.ids.subTitle),
		$appendContent = $('#'+contentID),
		cloneData = $appendContent.clone(true);
	$subTitle.append(cloneData);
	$appendContent.remove();
};
com.ninebridges.util.setFlashHeight = function (swf_id, targetHeight){
	switch(swf_id){
		case 'SubTopNavi' : 
			swf_id = 'subTopNaviFlash';
			break;
		case 'SubLocationHeader' : 
			swf_id = 'subLocationHeaderFlash';
			break;
		case 'SubBottomNavi' : 
		swf_id = 'footer';
			break;
	}
	// swf_id = (swf_id != 'SubTopNavi') ? 'footer' : 'subTopNaviFlash';
	
	var $flashElement = $('#'+swf_id);
	
	if(swf_id != 'footer'){
		$flashElement.attr({ height:targetHeight });
	}else{
		$flashElement.css({ height:targetHeight });
	}
};
com.ninebridges.util.classMakeTabs = function(_o){
	_o = (typeof(_o) != 'undefined') ? _o : {};
	var tabContentClass = (typeof(_o.content) != 'undefined') ? ('.'+_o.content) : '.tabContent',
		onTab = (typeof(_o.index) != 'undefined') ? (_o.index-1) : 0,
		tabNav = (typeof(_o.tab) != 'undefined') ? ('.'+_o.tab) : '.tabNav',
		$tabContent = $(tabContentClass),
		$tabsNavLink = $(tabNav+' a'),
		onCss = 'on';
		
	$tabsNavLink.bind({
		click : function(){
			var i = $tabsNavLink.index(this);
			activeContent(i);
			$('body').trigger(_nine.CONTENTS_RESIZE_SCROLL_EVENT);
			return false;
		}
	});
		
	activeContent(onTab);
	
	function activeContent(_on){
		var $parent = $tabsNavLink.eq(_on).parent();
		$parent.radioClass(onCss);
		
		$tabContent.css({ 
			display:'none'
		}).eq(_on).css({ 
			display:'block'
		});
	}
};
com.ninebridges.util.imageSlider = function(_arr){
	var sSet = (_arr) ? _arr : [{ vID : 'imageSliderWrapper', nID : 'imageSliderButton', pnID : 'imageSliderPrenNext'}];
	$.each(sSet,function(i){
		var $tg = $('#'+sSet[i].vID),
			$imgs = $tg.find('li'),
			$imgNav = $('#'+sSet[i].nID),
			$imgPrevNext = $('#'+sSet[i].pnID),
			$btnPrevNext = $imgPrevNext.find('button'),
			$btn = $imgNav.find('a'),
			$btnParent = $btn.siblings(),
			$visuaWrap = $tg.find('>ul'),
			imgWrapW = $imgs.eq(0).innerHeight()*($imgs.length+1),
			easingOpt = (sSet[i].easing) ? sSet[i].easing : 'easeInOutExpo',
			rTime = (sSet[i].time) ? sSet[i].time : 3000,
			speed = (sSet[i].speed) ? sSet[i].speed : 1000,
			css = 'on',
			imgCloneCheck = $visuaWrap.find('li:last').attr('id') != '';
			$visuaWrap.css({top:'0px'});
			clearTimeout(com.ninebridges.util.imageSlider.timerID);
			com.ninebridges.util.imageSlider.currentCount = 0;
			$btnParent.eq(com.ninebridges.util.imageSlider.currentCount).radioClass(css);
			if(imgCloneCheck){
				$visuaWrap.find('li:first').clone().removeAttr('id').appendTo($visuaWrap);
			}
			$imgAll = $visuaWrap.find('li');
			imgW = $imgAll.innerHeight();
		
		var slider = function(){
				imgW = $imgAll.innerHeight();
				var shotLeft = parseInt($visuaWrap.css('top'), 10),
					maxW = (imgW * $imgAll.length)+imgW,
					maxL = ($imgAll.length-1)*imgW-imgW;
				if((parseInt($visuaWrap.css('height')) < imgWrapW) && ($visuaWrap.css({ height:maxW+'px'})));
				if (shotLeft < -maxL){
					$visuaWrap.css({top:'0px'});
					com.ninebridges.util.imageSlider.currentCount = 0;
				}
				com.ninebridges.util.imageSlider.currentCount += 1;
				if(($imgAll.length-2 < com.ninebridges.util.imageSlider.currentCount) && (com.ninebridges.util.imageSlider.currentCount = 0));
				$btnParent.eq(com.ninebridges.util.imageSlider.currentCount).radioClass(css);
				$visuaWrap.animate({
					top : ['-='+imgW,'easeOutExpo']
				},speed);
				if(sSet[i].auto){
					var tmpSpeed = 2000;
					$imgPrevNext.hover(function(){
						clearTimeout(com.ninebridges.util.imageSlider.timerID);
					}, function(){
						clearTimeout(com.ninebridges.util.imageSlider.timerID);
						com.ninebridges.util.imageSlider.timerID = setTimeout(slider, tmpSpeed);
					});
					$btnParent.hover(function(){
						clearTimeout(com.ninebridges.util.imageSlider.timerID);
					},function(){
						clearTimeout(com.ninebridges.util.imageSlider.timerID);
						com.ninebridges.util.imageSlider.timerID = setTimeout(slider, tmpSpeed);
					});
				}
				com.ninebridges.util.imageSlider.timerID = setTimeout(slider,rTime);
			};
		if(($visuaWrap.css('position') != 'relative') && ($visuaWrap.css({position:'relative'})));
		if((parseInt($visuaWrap.css('height')) < imgWrapW) && ($visuaWrap.css({ height:imgWrapW+'px'})));
		
		$btnPrevNext.bind({
			click : function(){
				if(sSet[i].auto) clearTimeout(com.ninebridges.util.imageSlider.timerID);
				var cssName = $(this)[0].className;
				var imgPosX = null;
				var thisCurrentCount = com.ninebridges.util.imageSlider.currentCount;
				var maxCount = $imgs.length-1;
				
				if(cssName == 'next'){
					thisCurrentCount = (thisCurrentCount == maxCount)? maxCount : ++com.ninebridges.util.imageSlider.currentCount;
					thisCurrentCount = (thisCurrentCount < maxCount) ? thisCurrentCount : maxCount;
				}else{
					thisCurrentCount = (com.ninebridges.util.imageSlider.currentCount == 0) ? 0 : --com.ninebridges.util.imageSlider.currentCount;
					thisCurrentCount = (thisCurrentCount > 0) ? thisCurrentCount : 0;
				}
				
				imgPosX = -imgW*thisCurrentCount;
				$visuaWrap.stop(true).animate({
					top : [imgPosX,'easeOutExpo']
				},speed);
				$btnParent.eq(thisCurrentCount).radioClass(css);
			}
		});
		
		$btn.bind({
			click : function(){
				var bIndex = $btn.index(this),
					imgPosX = (-imgW*(bIndex));
				$visuaWrap.stop(true).animate({
					top : [imgPosX,'easeOutExpo']
				},speed);
				com.ninebridges.util.imageSlider.currentCount = bIndex;
				$btnParent.eq(com.ninebridges.util.imageSlider.currentCount).radioClass(css);
				if(sSet[i].auto) clearTimeout(com.ninebridges.util.imageSlider.timerID);
				return false;
			},
			focus : function(){
				this.blur();
			}
		});
		
		if(sSet[i].auto) {
			com.ninebridges.util.imageSlider.timerID = setTimeout(slider,rTime);
		}
	});
};
com.ninebridges.util.faq = function(faqActiveIndex){
	var $faq = $('.faq')
		,$faqAParent = $faq.find('h4')
		,$faqALink = $faqAParent.find('a')
		,$faqQ = $faq.find('.faqCont')
		,faqAactive = 'faqActive'
		,faqAhover = 'faqAhover'
		,faqQactive = 'faqContActive'
		,faqQhover = 'faqQhover'
		,activeFaqIndex = faqActive = (faqActiveIndex) ? (faqActiveIndex-1) : null;
			
	$faqALink.bind({
		click : function(){
			var _thisNext = $(this).parent().next();
			var _thisNextNode = _thisNext[0].nodeName;
			var $thisFaqQ = (_thisNext.length && (_thisNextNode == 'DIV')) ? _thisNext : null;
			if($thisFaqQ != null){
				$faqAParent.removeClass(faqAactive);
				$(this).parent().addClass(faqAactive);
				$faqQ.removeClass(faqQactive);
				$thisFaqQ.addClass(faqQactive);
			}
//			if(activeFaqIndex == $faqALink.index(this) && $thisFaqQ != null){
//				$(this).parent().removeClass(faqAactive);
//				$thisFaqQ.removeClass(faqQactive);
//			}
			activeFaqIndex = $faqALink.index(this);
			
			$('body').trigger(_nine.CONTENTS_RESIZE_SCROLL_EVENT);
			return false;
		}
	});

	$faqAParent.bind({
		mouseenter : function(){
			$(this).addClass(faqAhover);
		},
		mouseleave : function(){
			$(this).removeClass(faqAhover);
		}
	});
	
	if($faqQ != null){
		$faqQ.bind({
			mouseenter : function(){
				$(this).addClass(faqQhover);
			},
			mouseleave : function(){
				$(this).removeClass(faqQhover);
			}
		});
	};
	
	if(faqActive != null){
		$faqAParent.eq(faqActive).addClass(faqAactive);
		$faqQ.eq(faqActive).addClass(faqQactive);
	}
};
com.ninebridges.util.newsLetter = function(){
	var newsLetterID = 'newsLetterNav';
	var letterNamem = 'magazine';
	var letterWidth = 796;
	var letterHeight = 560;
	var letterFlag = 'yes';
	var letterPos = { center: true };
	var $newsLetterLink = $('.newsLetterList a');
	var newsLetterLength = $newsLetterLink.length;
	
	com.ninebridges.util.contentCloneAppend(newsLetterID);
	com.ninebridges.util.quickContentMove(newsLetterID);
	
	for(var i=0;i<newsLetterLength;i++){
		var $this = $newsLetterLink.eq(i);
		$this.bind({
			click : function(e){
				_nine.util.popup(this.href,letterNamem,letterWidth,letterHeight,letterFlag,letterPos);
				return false;
			}
		});
	}
};
com.ninebridges.util.siteMapLink = function(){
	var $flashLink = $('.sitemapArea a.flash');
	$flashLink.bind({
		click : function(){
			var flashSeenName = $(this).attr('href');
			searchFlashPage(flashSeenName);
			return false;
		}
	});
}
/**
 * u : linkURL(String), n : popupName(String), w : width(Number), h : height(Numer), s : scroll('yes/no'), p : popup position( { center : false, left:0, top:0} )
 */
com.ninebridges.util.popup = function(u,n,w,h,s,p){
	var popupURL = u || null;
	if(popupURL == null) return false;
	
	var browserCheck = (window.navigator.userAgent.indexOf("SV1") != -1) || (window.navigator.userAgent.indexOf("MSIE 7") != -1);
	var popupName = n || 'popup';
	var popupWidth = w || 100;
	var popupHeight = h || 100;
	var popupScroll = s || 'no';
	var popupPosition = p || { center:false, left:0, top:0 };
	
	if(browserCheck){
		popupWidth = popupWidth + 8;
		popupHeight = popupHeight + 10;
	}
	if(popupPosition.center){
		popupPosition.left = (screen.availWidth-popupWidth)/2;
		popupPosition.top = (screen.availHeight-popupHeight)/2;
	}
	
	var winObj =  window.open(popupURL,popupName,"toolbar=0,menubar=0,scrollbars="+popupScroll+",resizable=no,left="+popupPosition.left+",top="+popupPosition.top+",width="+popupWidth+",height="+popupHeight+";");
	
	try{
		winObj.focus();
	} catch(e) {}
};

com.ninebridges.flash = {
	ver : "10.0.0",
	install : "/flash/expressInstall.swf",
	setDepthCode : function(d1,d2,d3){
		com.ninebridges.flash.topNav.vars.depth1code = d1; 
		com.ninebridges.flash.topNav.vars.depth2code = d2;
		com.ninebridges.flash.topNav.vars.depth3code = d3;

		com.ninebridges.flash.titleNav.vars.depth1code = d1; 
		com.ninebridges.flash.titleNav.vars.depth2code = d2;
		com.ninebridges.flash.titleNav.vars.depth3code = d3;

		com.ninebridges.flash.bottomNav.vars.depth1code = d1; 
		com.ninebridges.flash.bottomNav.vars.depth2code = d2;
		com.ninebridges.flash.bottomNav.vars.depth3code = d3;
	},
	params : {
		allowScriptAccess	:	'always',
		allowFullScreen		:	'false',
		quality				:	'high',
		wmode				:	'transparent'
	}
};
com.ninebridges.flash.index = {
	vars : {
		domain : "*",
		configXmlPath : "/flash/xml/configIndex.xml"
	},
	attributes : {
		id : "index",
		name: "index"
	}
};
com.ninebridges.flash.topNav = {
	vars : {
		configXmlPath: "/flash/xml/configTopNavi.xml",
		depth1code : '',
		depth2code : '',
		depth3code : ''
	},
	attributes : {
		id : "subTopNaviFlash",
		name : "subTopNaviFlash"
	}
};
com.ninebridges.flash.titleNav = {
	vars : {
		configXmlPath: "/flash/xml/configLocationHeader.xml",
		depth1code : '',
		depth2code : '',
		depth3code : ''
	},
	attributes : {
		id : "subLocationHeaderFlash",
		name : "subLocationHeaderFlash"
	}
};
com.ninebridges.flash.bottomNav = {
	vars : {
		configXmlPath: "/flash/xml/configBottomNavi.xml",
		depth1code : '',
		depth2code : '',
		depth3code : ''
	},
	attributes : {	
		id : "subBottomNaviFlash",
		name : "subBottomNaviFlash"
	}
};

_nine = com.ninebridges;
_scroll = com.ninebridges.scrollContent;

/**
 * set swfobject
 */
swfobject.embedSWF("/flash/Index.swf", "flashIndex", "100%", "100%", 
	_nine.flash.ver,
	_nine.flash.install,
	_nine.flash.index.vars,
	_nine.flash.params,
	_nine.flash.index.attributes); // index

swfobject.embedSWF("/flash/99_common/SubLocationHeader.swf", "flashTitleLocation", "160", "160", 
	_nine.flash.ver,
	_nine.flash.install,
	_nine.flash.titleNav.vars,
	_nine.flash.params,
	_nine.flash.titleNav.attributes); // titleNav

swfobject.embedSWF("/flash/99_common/SubTopNavi.swf", "flashTopNav", "100%", "26", // 814
	_nine.flash.ver,
	_nine.flash.install,
	_nine.flash.topNav.vars,
	_nine.flash.params,
	_nine.flash.topNav.attributes); // top navigation
swfobject.embedSWF("/flash/99_common/SubBottomNavi.swf", "flashFooterNav", "100%", "356",
	_nine.flash.ver,
	_nine.flash.install,
	_nine.flash.bottomNav.vars,
	_nine.flash.params,
	_nine.flash.bottomNav.attributes); // bottom navigation

/**
 * Set Flash Height
 */
function setFlashHeight(swf_id, targetHeight){
	_nine.util.setFlashHeight(swf_id, targetHeight);
}

$(function(){
	_nine.init();
	// _nine.flash.flashAddressForm();
	/*
	$('.subTabNav li').hover(function() {
		$(this).addClass('hover');
	},function(){
		$(this).removeClass('hover');
	});
	*/
});
