// IE Background Setting
try{
	document.execCommand('BackgroundImageCache',false,true);
}catch(e){}

// Check Browser
var isie=(/msie/i).test(navigator.userAgent), //ie
	isie6=(/msie 6/i).test(navigator.userAgent), //ie 6
	isie7=(/msie 7/i).test(navigator.userAgent), //ie 7
	isie8=(/msie 8/i).test(navigator.userAgent), //ie 8
	isfirefox=(/firefox/i).test(navigator.userAgent), //firefox
	isapple=(/applewebkit/i).test(navigator.userAgent), //safari,chrome
	isopera=(/opera/i).test(navigator.userAgent); //opera
if(isie7 || isie8) isie6=false;

/* KAFFA UI Script */
var kaffa = function(){
	var $body, $wrapper, $gnb, $menu, $banner, $footerArea;

	init = function(){
			$body = $('body'),
			$wrapper = $body.find('#wrap'),
			$gnb = $wrapper.find('#gnb'),
			$menu = $wrapper.find('#menu'),
			$banner = $wrapper.find('#banner'),
			$footerArea = $wrapper.find('#footer');

		var $navLink = $menu.find('.nav a');
			naviAnimate();
			bannerScroll();

		var $imgAll = $wrapper.find('img'),
			$imgOver = $wrapper.find('img.imgover'),
			$inputRC = $wrapper.find('input:radio, input:checkbox'),
			$selectBox = $wrapper.find('select.select, select.selectWhite'),
			$boardOver = $wrapper.find('.tbover');
			
			if($imgOver.length && imgover()); // image rollover event
			if($selectBox.length && fakeSelectLoad()); // fake select load
			if($boardOver.length && this.ui.boardover()); // board list over event


			/* navi animate function */
			function naviAnimate(){
				var $overimg, easing = 'easeOutExpo',
					$naviOn = $navLink.filter('.on').find('img'),
					overImgSelect = 'img.over',
					f='.gif', o='_on.gif';
				if(!!$naviOn.length && ($naviOn.attr({src:$naviOn.attr('src').split(f).join(o)})));
				$navLink.not('.on').bind({
					mouseenter : function(){
						$navLink.find(overImgSelect).remove();
						var imgOver = $(this).find(overImgSelect),
							imgH = $(this).innerHeight();
						if(imgOver.length == 0){
							$overimg = $(this).find('img:not(.over)').clone();
							$overimg.attr({src:$overimg.attr('src').split(f).join(o)}).addClass('over').css({opacity : 0,top:imgH});
							$(this).append($overimg);
						}
						$overimg.prev().stop(true).animate({opacity : [0, easing],top : [-imgH, easing]},{duration:500,queue:false});
						$overimg.stop(true).animate({opacity : [1, easing],top : [0, easing]},{duration:500,queue:false});
					},
					mouseleave : function(){
						$overimg.prev().stop(true).animate({opacity : [1, easing],top : [0, easing]},{duration:500,queue:false});
						// $overimg.animate({opacity : [0, easing],top : [-$(this).innerHeight()/2, easing]},{duration:500,queue:false});
						$overimg.animate({opacity : [0, easing],top : [$(this).innerHeight(), easing]},{duration:500,queue:false});
					}
				});
			}

			/* banner scroll */
			function bannerScroll(){
				var bT = $banner.css('top'),
					posY = 0;
					// posY = parseInt(bT.substring(0,bT.indexOf("px")));
				$(window).scroll(function(){
					var offset = $(document).scrollTop()+"px";
					$banner.animate({
						top : [offset, 'easeInOutExpo']
					},{duration:500,queue:false});
				});

			}

			/* image rollover : class="imgover" */
			function imgover(){
				var f='.gif', o='_on.gif';
				$imgOver.bind({
					mouseenter : function(){
						$(this).attr({src:$(this).attr('src').split(f).join(o)});
					},
					mouseleace : function(){
							$(this).attr({src:$(this).attr("src").split(o).join(f)});
					}
				});
			}

			/* fake Select load */
			function fakeSelectLoad(){
				$.getScript('/js/fakeselect.js',function(){ fakeselect.initialize()});
			}
		},
		
		ui = {
			sliderInit : function(opt){
				var opt = opt || null,
					$idx = $('#'+opt.id),
					$imgWrap = $idx.find('div:first'),
					auto = ($.isEmptyObject(opt.auto)) ? opt.auto : false,
					speed = ($.isEmptyObject(opt.speed)) ? opt.speed : 1000,
					easingOpt = ($.isEmptyObject(opt.easing)) ? opt.easing : 'easeOutExpo',
					currentCount = 0,
					timerTime = 7500,
					timerID,
					$pagingWrap,
					$pagingImgAll,
					f='_off.png', o='_on.png',
					$mainWrap = $wrapper.find('.mainWrap:first');

				var slider = function(){
					var posX = parseInt($imgWrap.css('left'), 10),
						maxW = (imgW * $imgAll.length)+imgW,
						maxL = ($imgAll.length)*imgW-imgW;
					if (posX <= -maxL) {
						$imgWrap.css({left:'0px'});
						currentCount = 0;
					}
					
					$imgWrap.animate({
						left : ['-='+imgW+'px',easingOpt]
					},speed,function(){
						currentCount += 1;
						var c = $imgAll.length-2;
						if((c < currentCount) && (currentCount = 0));
						var thisImg = $pagingImgAll.eq(currentCount);
						$pagingImgAll.attr({src:$pagingImgAll.attr('src').split(o).join(f)});
						thisImg.attr({src:thisImg.attr('src').split(f).join(o)});
					});
					timerID = setTimeout(slider,timerTime);
				};

				$imgWrap.find('a:first')
					.clone()
					.appendTo($imgWrap);

				var $imgAll = $idx.find('>div img'),
					$linkAll = $idx.find('>div a'),
					imgW = $imgAll.eq(0).innerWidth(),
					imgWrapW = imgW*($imgAll.length);

				$imgWrap.css({
						left:0,
						width:imgWrapW
					});

				if(auto){
					setTimeout(slider,timerTime);

					$linkAll.hover(function(){
						clearTimeout(timerID);
					},function(){
						clearTimeout(timerID);
						timerID = setTimeout(slider,timerTime);
					});
				}

				$mainWrap.append('<span></span>');
				$pagingWrap = $mainWrap.find('span');
				$imgAll.not(':last').each(function(i){
					var ImgOnCode = '<img src="/img/icon/ico_on.png" class="png24" alt="" />',
						ImgOffCode = '<img src="/img/icon/ico_off.png" class="png24" alt="" />';
					(i != 0) ? ($pagingWrap.append(ImgOffCode)) : ($pagingWrap.append(ImgOnCode));
					/*
					if(i != 0){
						$pagingWrap.append(ImgOffCode);
					}else{
						$pagingWrap.append(ImgOnCode);
					}
					*/
				});
				$pagingImgAll = $pagingWrap.find('img');
				$pagingImgAll.bind({
					mouseover : function(){
						clearTimeout(timerID);
					},
					click : function(){
						var bIndex = $pagingImgAll.index(this),
							imgPosX = (-imgW*(bIndex));
						$imgWrap.stop(true).animate({
							left : [imgPosX, 'easeOutExpo']
						},speed,function(){
							currentCount = bIndex;
							var thisImg = $pagingImgAll.eq(currentCount);
							$pagingImgAll.attr({src:$pagingImgAll.attr('src').split(o).join(f)});
							thisImg.attr({src:thisImg.attr('src').split(f).join(o)});
						});
						//clearTimeout(timerID);
					}
				});
			},

			/* zipcode */
			zipcode : function(){
				var $zipcode = $wrapper.find('#zipcode'),
					posX = ($wrapper.innerWidth()/2)-($zipcode.innerWidth()/2),
					posY = ($wrapper.innerHeight()/2)-($zipcode.innerHeight()/2);
					if($zipcode.css('display') == 'none') $zipcode.css({display:'block', left:posX, top:posY});
					else $zipcode.css({display:'none'});
					$zipcode.find('button').click(function(){kaffa.ui.zipcode();});
			},

			
			/* table over class */
			boardover : function(css){
				var css = css || 'tbover',
					overCss = 'over';
				$tboverTr = $wrapper.find('.'+css+' > tr');
				$tboverTr.eq(0).addClass('first').end().eq(-1).addClass('last');
				$tboverTr.hoverClass(overCss);
			},
			
			/* about quick link */
			about : function(){
				var $quickA = $wrapper.find('.quickNav > li > a')
					speed = 500, easing = 'easeInOutExpo';
				$quickA.click(function(){
					var tg = this.href.match(/#([a-z0-9_]+)/)[1];
					$.scrollTo('#'+tg, speed, {easing:easing});
					return false;
				});
			},
			
			// PNG24
			setPng24 : function(obj){
				obj.width=obj.height=1;
				obj.className=obj.className.replace(/\bpng24\b/i,'');
				obj.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+obj.src+"',sizingMethod='image');";
				obj.src='';
				return '';
			}
		}

	return {
		init : init,
		ui : ui
	}
}();

/* jQuery fn Set */

jQuery.fn.hoverClass = function(c) {
	return this.hover(function() {
				$(this).toggleClass(c); 
			});
};

/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 */
jQuery.extend( jQuery.easing, {
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	}
});

/* Layout UI */
$(window).load(function(){
	kaffa.init();
});
