/*****************************************************************************
 * 파일명 : cart.js
 * 작성일 : 
 * 작성자 : 
 * 설   명 : cart 기본기능  javascript 정의 파일
 * ===========================================================================
 * 변경이력:
 *    DATE		   AUTHOR	DESCRIPTION
   2009.10.9      jk     최초 생성
 * ---------------------------------------------------------------------------
 * 
 *****************************************************************************/
var GO_LOCATION = true;
biz.event_common = {};
/**
 *
 */
biz.event_common = function(){
	var EVENT_COMMON_FRM = "eventCommonFrm";
	var eventForm ;
	var dataResult ; 
	
	// 변수 선언
	return {
		// 화면 초기화
		initialize: function(){
		},

		// 이벤트 시작 (타입코드에 따른 이벤트 존재여부 및 로그인 체크)
		start_event: function(evntTpCd, evntCd, inputFrm){
			if(inputFrm == undefined){
				inputFrm = document.createElement('form');
				inputFrm.setAttribute('id', EVENT_COMMON_FRM);
				inputFrm.setAttribute('name', EVENT_COMMON_FRM);
				document.appendChild(inputFrm);
			}
			
			JslForm.createHiddenField(inputFrm, 'evntTpCd', evntTpCd);
			JslForm.createHiddenField(inputFrm, 'evntCd', evntCd);

			var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventLoginInfo.action";
			jsl.Ajax.submitRequest(url, inputFrm, function(res){
				var data = res.responseJSON;
				
				// 로그인여부 체크
				if(data.result.loginYn == ''){
					return;
				}
				if(data.result.loginYn == 'Y'){
					biz.event_common.loginCheck(function() {
						biz.event_common.open_event(data.result, inputFrm);
			    	});
				}
				else{
					biz.event_common.open_event(data.result, inputFrm);
				}
			}
			);
		},
		
		// 선택 이벤트 시작 (구분코드와 링크코드로 적용할 이벤트 선택)
		start_sel_event: function(linkCode, gbnCode){
			var inputFrm = document.createElement('form');
			inputFrm.setAttribute('id', EVENT_COMMON_FRM);
			inputFrm.setAttribute('name', EVENT_COMMON_FRM);
			document.appendChild(inputFrm);
			
			JslForm.createHiddenField(inputFrm, "linkCode", linkCode);
			JslForm.createHiddenField(inputFrm, "gbnCode", gbnCode);
			
			biz.event_common.loginCheck(function() {
				var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventSelPageInfo.action";
				jsl.Ajax.submitRequest(url, inputFrm, function(res){
					var data = res.responseJSON;
					
					if(data.result.evntCd == ""){
						GO_LOCATION = false;
						biz.event_common.start_no_login_event('','EI000005');
						return;
					}

					JslForm.createHiddenField(inputFrm, "evntCd", data.result.evntCd);
					JslForm.createHiddenField(inputFrm, "evntTpCd", data.result.evntTpCd);

					var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventValidInfo.action";
					jsl.Ajax.submitRequest(url, inputFrm, function(res){
						var data = res.responseJSON;
						
						// 이벤트 시작여부 체크
						if(data.result.beingYn == 'N'){
							return;
						}
						
						// 쿠키정보 체크
						var flag = biz.event_common.getCookie("event_" + data.result.evntTpCd);
						if(flag == 'noagain') return;
						
						var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventPageForm.action";
						JslWindow.openwinPlace(url, inputFrm, "eventPop", 625, 726, 30 ,150, "no");
						//JslWindow.openwin(url, inputFrm, "eventPop", 625, 726);
					});
				});
	    	});
		},
		
		// 이벤트 시작(로그인 체크 안함.)
		start_no_login_event: function(evntTpCd, evntCd, inputFrm){
			if(inputFrm == undefined){
				inputFrm = document.createElement('form');
				inputFrm.setAttribute('id', EVENT_COMMON_FRM);
				inputFrm.setAttribute('name', EVENT_COMMON_FRM);
				document.appendChild(inputFrm);
			}
			
			JslForm.createHiddenField(inputFrm, 'evntTpCd', evntTpCd);
			JslForm.createHiddenField(inputFrm, 'evntCd', evntCd);

			var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventLoginInfo.action";
			jsl.Ajax.submitRequest(url, inputFrm, function(res){
				var data = res.responseJSON;
				biz.event_common.open_event(data.result, inputFrm);
				GO_LOCATION = true;
				var url = jsl.APPLICATION_CONTEXT_ROOT + "/mypage/selectMypageAction.action";
				location.href=url;
				}
			);
		},
		
		// 이벤트 시작(이벤트 결과 조회)
		// evntCd : 이벤트코드
		start_result_serche_event: function(evntCd, inputFrm){
			if(inputFrm == undefined){
				inputFrm = document.createElement('form');
				inputFrm.setAttribute('id', EVENT_COMMON_FRM);
				inputFrm.setAttribute('name', EVENT_COMMON_FRM);
				document.appendChild(inputFrm);
			}
			
			JslForm.createHiddenField(inputFrm, 'evntTpCd', '');
			JslForm.createHiddenField(inputFrm, 'evntCd', evntCd);

			var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventLoginInfo.action";
			jsl.Ajax.submitRequest(url, inputFrm, function(res){
				var data = res.responseJSON;
				
				// 로그인여부 체크
				if(data.result.loginYn == ''){
					return;
				}
				if(data.result.loginYn == 'Y'){
					biz.event_common.loginCheck(function() {
						biz.event_common.open_serche_event(data.result, inputFrm);
			    	});
				}
				else{
					biz.event_common.open_serche_event(data.result, inputFrm);
				}
			}
			);
		},
		
		// 이벤트 Open
		open_event: function(result, frmObj){
			frmObj.evntCd.value = result.evntCd;
			frmObj.evntTpCd.value = result.evntTpCd;
			
			var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventValidInfo.action";
			jsl.Ajax.submitRequest(url, frmObj, function(res){
				var data = res.responseJSON;
				
				// 이벤트 시작여부 체크
				if(data.result.beingYn == 'N'){
					return;
				}
				
				// 쿠키정보 체크
				var flag = biz.event_common.getCookie("event_" + data.result.evntTpCd);
				if(flag == 'noagain') return;
				
				var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventPreProcInfo.action?pageNo=1";
				jsl.Ajax.submitRequest(url, frmObj, function(res){
					var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventPageForm.action";
					JslWindow.openwin(url, frmObj, "eventPop", 440, 435);
				});
			}
			);
		},
		
		// 이벤트 Open(선처리를 안함, 이벤트 유효성 검사 안함)
		open_serche_event: function(result, frmObj){
			frmObj.evntCd.value = result.evntCd;
			frmObj.evntTpCd.value = result.evntTpCd;
			// 쿠키정보 체크
			var flag = biz.event_common.getCookie("event_" + result.evntTpCd);
			if(flag == 'noagain') return;
			
			var url = jsl.APPLICATION_CONTEXT_ROOT + "/m_event/eventPageForm.action";
			JslWindow.openwinPlace(url, frmObj, "eventPop", 625, 726, 30 ,150, "no");
			// JslWindow.openwin(url, frmObj, "eventPop", 625, 726);
		},
		
		// 창닫기 버튼(하루동안 다시 열지 않는다.)
		doNotOpen: function(evntTpCd){
			biz.event_common.setCookie("event_"+evntTpCd, "noagain");
			window.close();
		},
		
		loginCallBack : function(callback){
			callback();
			if(GO_LOCATION){
				var url = jsl.APPLICATION_CONTEXT_ROOT + "/mypage/selectMypageAction.action";
				location.href=url;
			}
		},
		// 이벤트에서 사용하는 로그인 체크
		loginCheck: function(callback){
			//var userCd = jsl.getCookie("userCd");
			// 로그인여부를 조회한다.
			var loginCheckUrl = jsl.APPLICATION_CONTEXT_ROOT + "/login/loginCheck.action";
			var options = {
					success : function(res) {
				var result = res.responseJSON;
				if (result.code.substring(0, 4) != 'CMMI') {
					var loginUrl = jsl.APPLICATION_CONTEXT_ROOT + "/login/login.action";
					var returnVal = JslWindow.openmodal(loginUrl,476,243,"no");
					if(returnVal && returnVal.value) {
						biz.event_common.loginCallBack(callback);
					}
				}
				else {
					callback();
				}
			}
			};
			jsl.Ajax2.request(loginCheckUrl, options);
		},
	
		// 팝업창 자동 설정
		autoResizePopup: function() {
			var winW, winH, sizeToW, sizeToH;
	
			if ( parseInt(navigator.appVersion) > 3 ) {
	
				if ( navigator.appName=="Netscape" ) {
					winW = window.innerWidth;
					winH = window.innerHeight;
				}
	
				if ( navigator.appName.indexOf("Microsoft") != -1 ) {
					winW = document.body.scrollWidth;
					winH = document.body.scrollHeight;
				}
			}
	
			sizeToW = 0;
			sizeToH = 0;
			
			if ( winW > 950 ) { // 제한하고자 하는 가로크기
				sizeToW = 950 - document.body.clientWidth;
			} else if ( Math.abs(document.body.clientWidth - winW ) > 3 ) {
				sizeToW = winW - document.body.clientWidth;
			}
	
			if ( winH > 730 ) {  // 제한하고자 하는 세로크기
				sizeToH = 730 - document.body.clientHeight;
			} else if ( Math.abs(document.body.clientHeight - winH) > 4 ) {
				sizeToH = winH - document.body.clientHeight;
			}
			
			if ( sizeToW != 0 || sizeToH != 0 ) {
				window.resizeBy(sizeToW, sizeToH);
			}
		},
		
		getCookie: function(Name) {
			var search = Name + "=";
			if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
				offset = document.cookie.indexOf(search);
				if (offset != -1) { // 쿠키가 존재하면
					offset += search.length;
					// set index of beginning of value
					end = document.cookie.indexOf(";", offset);
					// 쿠키 값의 마지막 위치 인덱스 번호 설정
					if (end == -1) end = document.cookie.length;
					
					return unescape(document.cookie.substring(offset, end));
				}
			}
			return "";
		},
		
		//쿠키를 설정한다.(쿠키명, 쿠키값, 만료일자)
		setCookie: function(c_name, value, expiredays) {
			var exdate = new Date();
			exdate.setDate(exdate.getDate());
			opener.document.cookie = c_name+ "=" + escape(value) + 
				((expiredays==null) ? "" : ";expires=" + exdate.toGMTString());
		}
		
	}
}();

/**
 * 초기화
 */
Event.observe(window, 'load', biz.event_common.initialize);

