$(function() {
	var f_nBnrCnt = 0; // jQBanner¸¦ »ç¿ëÇØ¼­ È­¸é¿¡ Ãâ·ÂµÇ´Â º£³Ê¼ö

	$.f_varBanner = {
		defaults: {
			/* ³»ºÎÀûÀ¸·Î ¾²ÀÌ´Â º¯¼ö */
			objScr: null,	// ½ºÅ©¸° ¿µ¿ª
			objBtn: null, // ¹öÆ° ¿µ¿ª
			objTimer: null, // Å¸ÀÌ¸Ó
			nOrderNo: 999, // ÇöÀç ¼±ÅÃµÈ ·¹ÀÌ¾î
			nOrderNoBtn: -1, // ¹öÆ° ¼±ÅÃ½Ã ·¹ÀÌ¾î

			/* ÃÊ±â¼¼ÆÃÀÌ °¡´ÉÇÑ  ÇÊ¼ö º¯¼ö */
			nWidth: 0, // º£³Ê ½ºÅ©¸° ¿µ¿ª Æø
			nHeight: 0, // º£³Ê ½ºÅ©¸° ¿µ¿ª ³ôÀÌ
			nCount: 0, // º£³Ê ½ºÅ©¸° ¿µ¿ª¿¡ ¼ÓÇØÀÖ´Â ·¹ÀÌ¾îÀÇ ¼ö
			isActType: "none",	// º£³Ê ¾×¼Ç Å¸ÀÔ none,left,right,up,down,fade,page

			/* ÃÊ±â¼¼ÆÃÀÌ °¡´ÉÇÑ  ¿É¼Ç º¯¼ö */
			isShuffle: "N", // º£³Ê ·¹ÀÌ¾îµéÀÇ ¼ÅÇÃ ¿©ºÎ Y:¼ÅÇÃ,N:¼øÂ÷Àû
			isBtnAct: "mouseover",	// ¹öÆ° ÀÛµ¿¹æ½Ä mouseover,click
			isBtnType: "img", // ¹öÆ° Å¸ÀÔ img,li			
			nStartUp: 300, // ½ºÅ¸Æ® ½Ã Ã¹ ·¹ÀÌ¾îÀÇ FadeIn ¼Óµµ
			nDelay: 5000, // µô·¹ÀÌ
			nSpeed: 500, // ¾×¼Ç½ÃÀÇ ¼Óµµ
			nSpeedFade: 300, // ÆäÀÌµå °ü·Ã ¾×¼Ç¿¡¼­ ¹öÆ° ÀÛµ¿½Ã ¼ÓµµÀÇ ±³Á¤°ª [µÇµµ·Ï °íÁ¤]
			isStartFade:"Y", // ½ºÅ¸Æ® FadeIn È¿°ú ¿©ºÎ [ÇÁ·Î±×·¥À¸·Î ½ºÅ©¸°À» Display:block Ã³¸®ÇÒ °æ¿ì »ç¿ë]
			isStartDelay:"N" // ½ºÅ¸Æ®½Ã µô·¹ÀÌ¸¦ °¡Áö°í ½ÇÇà [¹«°Å¿î ÆäÀÌÁöÀÇ °æ¿ì µô·¹ÀÌ¸¦ °¡Áö°í ÃÊ±âÈ­]
		}
	};

	$.fn.jQBanner = function(defaults){
		var config = $.extend({}, $.f_varBanner.defaults, defaults);
		var isIEChk = jsBrowserCheck();

		config.objScr = "#"+this.attr("id")+" .clsBannerScreen";
		config.objBtn = "#"+this.attr("id")+" .clsBannerButton";
		
		if (config.isStartDelay=="Y" && isIEChk==true) {
			/* ½ºÅ¸Æ® µô·¹ÀÌ Ã³¸® */
			if (f_nBnrCnt>=0 && f_nBnrCnt<=3) {
				setTimeout( function(){jsBanInit(config)}, f_nBnrCnt*100);
			} else if (f_nBnrCnt>3 && f_nBnrCnt<=6) {
				setTimeout( function(){jsBanInit(config)}, f_nBnrCnt*200);
			} else if (f_nBnrCnt>6 && f_nBnrCnt<=10) {
				setTimeout( function(){jsBanInit(config)}, f_nBnrCnt*300);
			} else if (f_nBnrCnt>10) {
				setTimeout( function(){jsBanInit(config)}, 400);
			}
			f_nBnrCnt++;
		} else {
			jsBanInit(config);
		}

		return this;
	};

	function jsBanInit(config) {
		var nPosFix;

		/* º£³Ê ½ºÅ©¸° CSS ¼³Á¤ */
		$(config.objScr).css({'position':'relative','height':config.nHeight+'px','width':config.nWidth+'px','overflow':'hidden'});
		
		/* Ã¹ ·¹ÀÌ¾î ¼±ÅÃ */
		config.nOrderNo = (config.nOrderNo==999) ? Math.floor(Math.random() * config.nCount):config.nOrderNo-1;

		/* ¾×¼Ç Å¸ÀÔ¿¡ µû¸¥ ÃÊ±â ¼¼ÆÃ */
		if (config.isActType == "left") {
			$(config.objScr+" div").each(function(i){
				nPosFix = (config.nOrderNo==i)?0:config.nWidth;
				$(this).css({'position':'absolute','top':'0','left':(-1*nPosFix)+'px'});
				if (!(config.nOrderNo==i && config.isStartFade=="N")) {
					$(this).fadeIn(config.nStartUp);
				}
				$(this).attr("divno",i);
			});
		} else if (config.isActType == "right") {
			$(config.objScr+" div").each(function(i){
				nPosFix = (config.nOrderNo==i)?0:config.nWidth;				
				$(this).css({'position':'absolute','top':'0','left':nPosFix+'px'});
				if (!(config.nOrderNo==i && config.isStartFade=="N")) {
					$(this).fadeIn(config.nStartUp);
				}
				$(this).attr("divno",i);
			});
		} else if (config.isActType == "up") {
			$(config.objScr+" div").each(function(i){
				nPosFix = (config.nOrderNo==i)?0:config.nHeight;
				$(this).css({'position':'absolute','top':(-1*nPosFix)+'px','left':'0'});
				if (!(config.nOrderNo==i && config.isStartFade=="N")) {
					$(this).fadeIn(config.nStartUp);
				}
				$(this).attr("divno",i);
			});
		} else if (config.isActType == "down") {
			$(config.objScr+" div").each(function(i){
				nPosFix = (config.nOrderNo==i)?0:config.nHeight;
				$(this).css({'position':'absolute','top':nPosFix+'px','left':'0'});
				if (!(config.nOrderNo==i && config.isStartFade=="N")) {
					$(this).fadeIn(config.nStartUp);
				}
				$(this).attr("divno",i);
			});
		} else if (config.isActType == "fade") {
			$(config.objScr+" div").each(function(i){
				if (config.nOrderNo==i) {
					nPosFix = 0;
					if (!(config.nOrderNo==i && config.isStartFade=="N")) {
						$(this).fadeIn(config.nStartUp);
					}
				} else {
					nPosFix = config.nWidth;
				}
				$(this).css({'position':'absolute','top':'0','left':nPosFix+'px'});
				$(this).attr("divno",i);
			});
		} else if (config.isActType == "page") {
			$(config.objScr+" div").each(function(i){
				nPosFix = (config.nOrderNo==i)?0:config.nHeight;
				$(this).css({'position':'absolute','top':nPosFix+'px','left':'0'});
				if (!(config.nOrderNo==i && config.isStartFade=="N")) {
					$(this).fadeIn(config.nStartUp);
				}
				$(this).attr("divno",i);
			});
		} else if (config.isActType == "none") {
			$(config.objScr+" div").each(function(i){
				if (config.nOrderNo==i) {
					nPosFix = 0;
					if (!(config.nOrderNo==i && config.isStartFade=="N")) {
						$(this).fadeIn(config.nStartUp);
					}
				} else {
					nPosFix = config.nWidth;
				}
				$(this).css({'position':'absolute','top':'0','left':nPosFix+'px'});
				$(this).attr("divno",i);
			});
		}

		/* ¹öÆ° ¼ø¹ø ¼³Á¤ */
		$(config.objBtn+" "+config.isBtnType).each(function(i){ $(this).attr("btnno",i); $(this).css("cursor","hand") });

		/* ¹öÆ° ¹ÙÀÎµå */
		jsBanBtnBind(config);
		
		/* ½ºÅ©¸° pause ¹ÙÀÎµå */
		jsScrPauseBind(config);

		/* º£³Ê Å¸ÀÌ¸Ó µî·Ï ¹× ¾×¼Ç ½ÃÀÛ!!!! */
		if (config.isActType != "none" && config.isActType != "page") {
			config.objTimer = setTimeout( function(){jsBanTimer(config)}, config.nDelay);
		}
	};

	/* ¹è³Ê Å¸ÀÌ¸Ó */
	function jsBanTimer(config) {
		/* ¹öÆ° ¾×¼Ç ¼ø¹øÀÇ ÃÊ±âÈ­ */
		config.nOrderNoBtn = -1;

		jsBanAction(config);
		config.objTimer = setTimeout( function(){jsBanTimer(config)}, config.nDelay);
	};

	/* ¹è³Ê ¾×¼Ç Ã³¸® */
	function jsBanAction(config) {
		var nPageSel;
		var nSpeed = config.nSpeed;
		var nDivNoSel = config.nOrderNo;
		var nOrderNext = (config.nOrderNo+1)%(config.nCount);

		/* 'page' ¾×¼ÇÀÏ °æ¿ì ¼±ÅÃÆäÀÌÁö ÃßÃâ */
		if (config.isActType == "page") {
			var nOrderMinus = config.nOrderNoBtn-config.nOrderNo;
			nPageSel = (nOrderMinus==1 || (nOrderMinus==(config.nCount-1)*-1)) ? 1 : 0;
		}	

		if (config.nOrderNoBtn >= 0) {
			config.nOrderNo = config.nOrderNoBtn;
			nOrderNext = config.nOrderNoBtn;
			nSpeed = (config.isActType=="fade" || config.isActType=="page" || config.isActType=="none") ? config.nSpeedFade : 0;
		} else {
			config.nOrderNo = ((config.nCount-1)==config.nOrderNo) ? nOrderNext : config.nOrderNo+1;
		}

		var nDivNoNext = nOrderNext;

		var objSelObj = $(config.objScr+" div[divno='"+nDivNoSel+"']");
		var objNextObj = $(config.objScr+" div[divno='"+nDivNoNext+"']");

		/* ¾×¼Ç¿¡ ÀÇÇÑ ¹öÆ° ¼±ÅÃ */
		if (config.isActType != "page") {
			jsBanBtnRO(config,nOrderNext);
		}

		/* ½ÇÁ¦ ½ºÅ©¸° ·¹ÀÌ¾îµéÀÇ µ¿ÀÛ Ã³¸® */
		if (config.isActType == "left") {
			objNextObj.css('left',(config.nWidth)+'px');
			objSelObj.animate({'left':(-1*config.nWidth)+'px'},nSpeed);
			objNextObj.animate({'left':'0'},nSpeed);
		} else if (config.isActType == "right") {
			objNextObj.css('left',(-1*config.nWidth)+'px');
			objSelObj.animate({'left':config.nWidth+'px'},nSpeed);
			objNextObj.animate({'left':'0'},nSpeed);
		} else if (config.isActType == "up") {
			objNextObj.css('top',config.nHeight+'px');
			objSelObj.animate({'top':(-1*config.nHeight)+'px'},nSpeed);
			objNextObj.animate({'top':'0'},nSpeed);
		} else if (config.isActType == "down") {
			objNextObj.css('top',(-1*config.nHeight)+'px');
			objSelObj.animate({'top':config.nHeight+'px'},nSpeed);
			objNextObj.animate({'top':'0'},nSpeed);
		} else if (config.isActType == "fade") {
			objSelObj.css({'left':config.nWidth+'px','display':'none'});
			objNextObj.css('left','0');
			objNextObj.fadeIn(nSpeed);
		} else if (config.isActType == "page") {
			if (nPageSel == 0) {
				objNextObj.css({'top':'0','left':config.nWidth+'px'});
				objSelObj.animate({'left':(-1*config.nWidth)+'px'},nSpeed);
				objNextObj.animate({'left':'0'},nSpeed);
			} else if (nPageSel == 1) {
				objNextObj.css({'top':'0','left':(-1*config.nWidth)+'px'});
				objSelObj.animate({'left':config.nWidth+'px'},nSpeed);
				objNextObj.animate({'left':'0'},nSpeed);
			}
		} else if (config.isActType == "none") {
			objSelObj.css({'left':config.nWidth+'px','display':'none'});
			objNextObj.css('left','0');
			objNextObj.fadeIn(nSpeed);
		}
	}

	/* ½ºÅ©¸° pause ¹ÙÀÎµå */
	function jsScrPauseBind(config) {
		/* ½ºÅ©¸°¿¡ ´ëÇÑ Ã³¸® */
		$(config.objScr).mouseover(function(){
			clearTimeout(config.objTimer);
		});
		$(config.objScr).mouseout(function(){
			if (config.isActType != "none" && config.isActType != "page") {
				config.objTimer = setTimeout( function(){jsBanTimer(config)}, config.nDelay);
			}
		});		
	}
	
	/* ¹öÆ° ¹ÙÀÎµå */
	function jsBanBtnBind(config) {
		/* ÃÊ±â ¹öÆ° ¼³Á¤ */
		if (config.isActType != "page") {
			jsBanBtnRO(config,config.nOrderNo);
		}
		
		/* ¹öÆ°¿¡ ´ëÇØ ¸¶¿ì½º ¿À¹öÀÏ °æ¿ì Ã³¸® */
		if (config.isBtnAct=="mouseover") {
			/* ¹öÆ°¿¡ ´ëÇÑ Ã³¸® */
			$(config.objBtn+" "+config.isBtnType).mouseover(function(){
				var nImgNo = $(this).attr("btnno");

				if (config.isActType != "none" && config.isActType != "page") {
					clearTimeout(config.objTimer);
				}

				if (config.isActType == "page") {
					if (nImgNo == 0) {
						config.nOrderNoBtn = ((config.nOrderNo-1)<0) ? config.nCount-1 : config.nOrderNo-1;
					} if (nImgNo == 1) {
						config.nOrderNoBtn = ((config.nOrderNo+1)==config.nCount) ? (config.nOrderNo+1)%config.nCount : config.nOrderNo+1;
					}
					jsBanBtnRO(config,nImgNo);
				} else {
					config.nOrderNoBtn = parseInt(nImgNo);
				}

				jsBanAction(config);
			});
			$(config.objBtn+" "+config.isBtnType).mouseout(function(){
				if (config.isActType != "none" && config.isActType != "page") {
					config.objTimer = setTimeout( function(){jsBanTimer(config)}, config.nDelay);
				}
			});

		/* ¹öÆ°¿¡ ´ëÇØ Å¬¸¯ÀÏ °æ¿ì Ã³¸® */
		} else if (config.isBtnAct=="click") {
			$(config.objBtn+" "+config.isBtnType).click(function(){
				var nImgNo = $(this).attr("btnno");
				
				if (config.isActType != "none" && config.isActType != "page") {
					clearTimeout(config.objTimer);
				}

				if (config.isActType == "page") {
					if (nImgNo == 0) {
						config.nOrderNoBtn = ((config.nOrderNo-1)<0) ? config.nCount-1 : config.nOrderNo-1;
					} if (nImgNo == 1) {
						config.nOrderNoBtn = ((config.nOrderNo+1)==config.nCount) ? (config.nOrderNo+1)%config.nCount : config.nOrderNo+1;
					}
					jsBanBtnRO(config,nImgNo);
				} else {
					config.nOrderNoBtn = parseInt(nImgNo);
				}
				
				jsBanAction(config);

				if (config.isActType != "none" && config.isActType != "page") {
					config.objTimer = setTimeout( function(){jsBanTimer(config)}, config.nDelay);
				}
			});
		}
	};

	/* ¹öÆ° ·Ñ¿À¹ö Ã³¸® */
	function jsBanBtnRO (config,nSel) {
		if (config.isBtnType=="img") {
			$(config.objBtn+" img").each(function(i){
				if (nSel==i) {
					$(this).attr("src",$(this).attr("oversrc"));
				} else {
					$(this).attr("src",$(this).attr("outsrc"));
				}
			});
			
		} else if (config.isBtnType=="li") {
			$(config.objBtn+" li").each(function(i){
				if (nSel==i) {
					$(this).attr("class",$(this).attr("overclass"));
				} else {
					$(this).attr("class",$(this).attr("outclass"));
				}
			});
			
		}
	}

	/* IE Ã¼Å© */
	function jsBrowserCheck() {
		appname = navigator.appName;
		useragent = navigator.userAgent;
	
		if(appname == "Microsoft Internet Explorer") appname = "IE";
		IE55 = (useragent.indexOf('MSIE 5.5')>0);  //5.5 ¹öÀü
		IE6 = (useragent.indexOf('MSIE 6')>0);     //6.0 ¹öÀü
		IE7 = (useragent.indexOf('MSIE 7')>0);     //7.0 ¹öÀü
		IE8 = (useragent.indexOf('MSIE 8')>0);     //8.0 ¹öÀü
	
		if(appname=="IE" && IE55 || IE6 || IE7 || IE8){
			return true
		}else{
			return false; 
		}
	}	
});
