/**
 * 개인화에서 일어나는  Action Management
 */
var Prsn = {
	
	// Tab background image constant
	tabBgImgUrl : '/images/main/bottom/tab1_bg.gif',
	
	
	/**
	 * 개인화의 상품영역 Frame을 펼친다.
	 */
	showCntsArea : function() {
		
		$('tabArea').hide();
		$('cntsArea').show();
		
		/*
		 * 화면 이동시 다시 그 Tab을 선택한채로 개인화를 보여주기 위해서
		 * 이전에 펼쳤던 Tab의 정보를 Cookie에 저장해 둔다.
		 */
		var currTab = getCookie('currTab');
		
		// 조회된 Cookie의 정보가 없을 경우 최근 본 상품을 기본 Tab으로 선택한다.
		if (null == currTab || '' == currTab) {
			currTab = 'sight';
		}
		
		
		// Tab 배경 설정
		Prsn.setTabBgImg($(currTab + 'Tab'));
		// 상품 Frame 영역 갱신
		Prsn.refreshSubFrame(currTab);
		
		// 로그인 한 경우 개인화의 Open 상태를 유지하기 위해 Cookie에 기록해 둔다.
		if ('1' == f_chkLogin()) {
			setCookieComm('isOpen', 'true', '');
		}
		
	},
	
	/**
	 * 개인화의 상품영역 Frame을 닫는다.
	 */
	hideCntsArea : function() {
		$('tabArea').show();
		$('cntsArea').hide();
		// 로그인 한 경우 개인화의 Open 상태를 유지하기 위해 Cookie에 기록해 둔다.
		if ('1' == f_chkLogin()) {
			setCookieComm('isOpen', 'false', '');
		}
	},
	
	/**
	 * 로그인, 비 로그인의 경우에 따라 left 메뉴 출력을 설정한다.
	 */
	selectLeftMenu : function() {
		
		 var loginIndc = f_chkLogin();
		 
		 // 로그인 한 경우
		 if ('1' == loginIndc) {
			$('loginLeft').show();		 	
		 } else { // 로그인 하지 않은 경우
		 	$('noLoginLeft').show();
		 }
		
	},
	
	/**
	 * Tab 선택에 따라 상품 Frame을 갱신한다.
	 */
	refreshSubFrame : function(tabName) {
		
		// 현재 선택한 Tab을 Cookie에 저장해 둔다.		
		setCookieComm('currTab', tabName, '');
				
		var loginIndc = f_chkLogin();
		
		// 로그인 한 경우
		if ('1' == loginIndc) {
			
			// 추천여행
			if ('recomm' == tabName) {
				$('subFrame').src = URLConstants.BASE_URL + URLConstants.LOGIN_RECOMM_URL;
			} else if ('goods' == tabName) { // 찜
				$('subFrame').src = URLConstants.BASE_URL + URLConstants.LOGIN_MYGOODS_URL;
			} else if ('scrap' == tabName) { // 스크랩
				$('subFrame').src = URLConstants.BASE_URL + URLConstants.LOGIN_SCRAP_URL;
			}
			
		} else { // 로그인 하지 않은 경우는 각각의 이미지 영역을 표현해 준다.
			
			// 추천여행
			if ('recomm' == tabName) {
				$('subFrame').src = URLConstants.BASE_URL + URLConstants.NOLOGIN_RECOMM_URL;
			} else if ('goods' == tabName) { // 찜
				$('subFrame').src = URLConstants.BASE_URL + URLConstants.NOLOGIN_MYGOODS_URL;
			} else if ('scrap' == tabName) { // 스크랩
				$('subFrame').src = URLConstants.BASE_URL + URLConstants.NOLOGIN_SCRAP_URL;
			}
				
		}
		
		// 최근 본 상품의 경우는 로그인, 비로그인의 화면이 동일하다.
		if ('sight' == tabName) {
			$('subFrame').src = URLConstants.BASE_URL + URLConstants.COMM_SIGHT_URL;
		}
			
	},
	
	/**
	 * Tab을 선택했을 Tab의 배경을 설정한다.
	 */
	setTabBgImg : function(obj) {
		
		// 기존의 모든 Tab을 선택안함 상태로 변경한다.
		$('recommTab').background = '';
		$('goodsTab').background = '';
		$('scrapTab').background = '';
		$('sightTab').background = '';
		
		
		// 기존의 모든 Tab의 글자색을 회색으로 설정한다.
		StyleConf.setDisableTab($('recommTab'));
		StyleConf.setDisableTab($('goodsTab'));
		StyleConf.setDisableTab($('scrapTab'));
		StyleConf.setDisableTab($('sightTab'));

		// Event가 발생한 Tab만 글자색을 검은색으로 변경한다.
	 	StyleConf.setEnableTab(obj);
		
		// Event가 발생한 Tab만 선택함 상태로 변경한다.
		$(obj).background = Prsn.tabBgImgUrl;
	},
	
	
	/**
	 * 개인화의 상품 영역이 가려진(닫혀진) 상태에서 Tab을 클릭했을 경우 선택한 탭 정보에 해당하는
	 * 상품 정보를 Frame 영역에 보여준다.
	 */
	closedTabSelect : function(tabName) {
		
		// 먼저 탭 영역을 가리고 상품 영역을 활성화 시킨다.
		$('tabArea').hide();
		$('cntsArea').show();
		
		/*
		 * 현재 선택한 Tab을 Cookie에 저장해 둔다.
		 * 다음번에 호출시 개인화의 열기버튼을 누를 경우
		 * 선택핸던 Tab을 보여주기 위함이다. 
		 */
		setCookieComm('currTab', tabName, '');
		
		// Tab 배경 설정
		Prsn.setTabBgImg($(tabName + 'Tab'));
		// 상품 Frame 영역 갱신
		Prsn.refreshSubFrame(tabName);
		// 개인화의 Open 상태를 유지하기 위해 Cookie에 기록해 둔다.
		if ('1' == f_chkLogin()) {
			setCookieComm('isOpen', 'true', '');
		}
		
	},
	
	/**
	 * 선택된 찜 상품 목록을 삭제한다.
	 * cmType에 sel을 전달할 경우 선택 값 삭제를
	 * all을 전달할 경우 전체 삭제를 한다.
	 */
	delChckedGdList : function(cmdType) {
		
		// 전체 삭제의 경우 삭제 여부를 다시한번 확인한다.
		if ('all' == cmdType) {
			// 아니오를 선택한 경우는 더 이상 처리할 필요가 없다.(아래 메시지는 "정말 전체 삭제를 하시겠습니까?" 를 암호화 한 결과이다.)
			if (!confirm(unescape("%uC804%uCCB4%20%uC0C1%uD488%uC744%20%uC0AD%uC81C%uD558%uC2DC%uACA0%uC2B5%uB2C8%uAE4C%3F"))) {
				return false;				
			}
		}
		
		// 개인화 영역에 존재하는 input tag를 찾는다.
		var objs = $$('input');
		var delGdSeqs = '';
		var currObjId = '';
		var currSeqKey = '';
		
		for (var i = 0; i < objs.length; i++) {
			
			// 선택한 값만 삭제하고자 하는 경우
			if ('sel' == cmdType) {
				// CheckBox이며, Check된 것을 찾아낸다.
				if ('checkbox' == objs[i].type && objs[i].checked) {
					currObjId = objs[i].id;
					currSeqKey = currObjId.substring(0, currObjId.lastIndexOf(':')) + ':seq';
					delGdSeqs += $(currSeqKey).value;
					delGdSeqs += '|';
				}
			} else if ('all' == cmdType) { // 모든 값을 삭제하고자 하는 경우
				if ('checkbox' == objs[i].type) { // CheckBox이면 모두 찾아낸다.
					currObjId = objs[i].id;
					currSeqKey = currObjId.substring(0, currObjId.lastIndexOf(':')) + ':seq';
					delGdSeqs += $(currSeqKey).value;
					delGdSeqs += '|';
				}
			}
		}
		
		var paramStr = delGdSeqs.toString();
		paramStr = paramStr.substring(0, paramStr.lastIndexOf('|'));
		var response = ProWave.remoteCall('prsnBean.delChckedGoodsList', {delSeqs : paramStr});
		
		if( response.result != null ) {
		// 성공적으로 삭제한 경우 찜 상품 건수를 조회하여 반환한다.
			parent.$('prsnFrm:openMyGdCnt').innerText = response.result;
			parent.$('prsnFrm:closeMyGdCnt').innerText = response.result;
		
			document.location.reload();
		} else {
			alert((unescape("%uC0AD%uC81C%uD560%20%uCC1C%20%uC0C1%uD488%uC744%20%uC120%uD0DD%uD574%uC8FC%uC138%uC694")));
		}
		
	},
	
	
	/**
	 * 찜 목록에서 상품 비교를 위해 선택시 최대 2개 이상 선택 여부를 감지한다.
	 */
	chckGdSel : function(obj) {
		
		// 개인화 영역에 존재하는 input tag를 찾는다.
		var objs = $$('input');
		var chckedGdCnt = 0;
		
		for (var i = 0; i < objs.length; i++) {
			if ('checkbox' == objs[i].type && objs[i].checked) {
				chckedGdCnt++;				
			}
			
			// 2개 이상 선택하려고 하는 경우는 선택을 막는다.
			if (2 < chckedGdCnt) {
				$(obj).checked = false;
				// 암호화된 메시지 : "두개의 상품만 비교 가능 합니다"
				alert(unescape("%uB450%uAC1C%uC758%20%uC0C1%uD488%uB9CC%20%uBE44%uAD50%20%uAC00%uB2A5%20%uD569%uB2C8%uB2E4"));
				return false;
			}
		}
	},
	
	/**
	 * 찜 목록에서 선택한 두개의 상품을 비교한다.
	 */
	myGdComp : function() {
		
		// 개인화 영역에 존재하는 input tag를 찾는다.
		var objs = $$('input');
		// 비교할 상품코드 목록
		var gdCdArr = new Array();
		// 비교할 행사코드 목록
		var etCdArr = new Array();
		// 비교할 Category 목록
		var ctgArr = new Array();
		// 현재 Object의 ID
		var currObjId = '';
		
		// 선택된 Checkbox를 가려낸다.
		for (var i = 0; i < objs.length; i++) {
			if ('checkbox' == objs[i].type && objs[i].checked) {
				currObjId = objs[i].id;
				ctgArr.push($(currObjId.substring(0, currObjId.lastIndexOf(':')) + ':ctg').value);
				gdCdArr.push($(currObjId.substring(0, currObjId.lastIndexOf(':')) + ':gdCd').value);
				etCdArr.push($(currObjId.substring(0, currObjId.lastIndexOf(':')) + ':etCd').value);
			}
		}
		
		// 세가지 property들이 2쌍 존재해야만 비교가 가능하다.
		if (2 > ctgArr.length || 2 > gdCdArr.length || 2 > etCdArr.length) {
			
			// 암호화된 String : 최소 2개의 상품을 선택해 주세요.
			alert(unescape("%uCD5C%uC18C%202%uAC1C%uC758%20%uC0C1%uD488%uC744%20%uC120%uD0DD%uD574%20%uC8FC%uC138%uC694."));
			return false;
			
		} else {
			// 정상적으로 입력값을 받은 경우는 두가지 상품을 비교하기 위한 URL을 생성한다.
			var popupUrl = '';

			popupUrl += '/xhtml/popup/compare.xhtml?CTG_SEQ1='+ Number(ctgArr[0]) + '&CTG_SEQ2=' + Number(ctgArr[1]);
			popupUrl += '&EVENT_CD1=' + etCdArr[0] + '&EVENT_CD2=' + etCdArr[1];
			popupUrl += '&GOODS_CD1=' + gdCdArr[0] + '&GOODS_CD2=' + gdCdArr[1];
			
			window.open(popupUrl, 'compare','width=695,height=450,scrollbars=yes,resizable=yes');			
		}
	},
	
	
	/**
	 * 선택된  스크랩 목록을 삭제한다.
	 * cmType에 sel을 전달할 경우 선택 값 삭제를
	 * all을 전달할 경우 전체 삭제를 한다.
	 */
	delChckedScrapList : function(cmdType) {
		
		// 전체 삭제의 경우 삭제 여부를 다시한번 확인한다.
		if ('all' == cmdType) {
			// 아니오를 선택한 경우는 더 이상 처리할 필요가 없다.(아래 메시지는 "정말 전체 삭제를 하시겠습니까?" 를 암호화 한 결과이다.)
			if (!confirm(unescape("%uC804%uCCB4%20%uC0C1%uD488%uC744%20%uC0AD%uC81C%uD558%uC2DC%uACA0%uC2B5%uB2C8%uAE4C%3F"))) {
				return false;				
			}
		}
		
		// 개인화 영역에 존재하는 input tag를 찾는다.
		var objs = $$('input');
		var delGdSeqs = '';
		var currObjId = '';
		var currSeqKey = ''; //BBS_SEQ
		var currHeadSeqKey=''; //BBS_HEAD_SEQ
		
		for (var i = 0; i < objs.length; i++) {
			
			// 선택한 값만 삭제하고자 하는 경우
			if ('sel' == cmdType) {
				// CheckBox이며, Check된 것을 찾아낸다.
				if ('checkbox' == objs[i].type && objs[i].checked) {
					currObjId = objs[i].id;
					currSeqKey = currObjId.substring(0, currObjId.lastIndexOf(':')) + ':bbsSeq';
					currHeadSeqKey = currObjId.substring(0, currObjId.lastIndexOf(':')) + ':bbsHeadSeq';
					delGdSeqs += $(currSeqKey).value+"/"+$(currHeadSeqKey).value; // BBS_SEQ, BBS_HEAD_SEQ 를 구분 ' / ' 
					delGdSeqs += '|'; // 선택 된 각 행의 parameter 구분 ' | '
				}
			} else if ('all' == cmdType) { // 모든 값을 삭제하고자 하는 경우
				if ('checkbox' == objs[i].type) { // CheckBox이면 모두 찾아낸다.
					currObjId = objs[i].id;
					currSeqKey = currObjId.substring(0, currObjId.lastIndexOf(':')) + ':bbsSeq';
					currHeadSeqKey = currObjId.substring(0, currObjId.lastIndexOf(':')) + ':bbsHeadSeq';
					delGdSeqs += $(currSeqKey).value+"/"+$(currHeadSeqKey).value; // BBS_SEQ, BBS_HEAD_SEQ 를 구분 ' / ' 
					delGdSeqs += '|'; // 선택 된 각 행의 parameter 구분 ' | '
				}
			}
		}
		
		var paramStr = delGdSeqs.toString();
		paramStr = paramStr.substring(0, paramStr.lastIndexOf('|'));
		var response = ProWave.remoteCall('prsnBean.delChckedScrapList', {delSeqs : paramStr});
		
		if (response.result != null) {
		
		// 성공적으로 삭제한 경우 스크랩 건수를 조회하여 반환한다.
			parent.$('prsnFrm:openMyScrapCnt').innerText = response.result;
			parent.$('prsnFrm:closeMyScrapCnt').innerText = response.result;
		
			document.location.reload();
		
		} else {
			alert((unescape("%uC0AD%uC81C%uD558%uC2E4%20%uC2A4%uD06C%uB7A9%uC744%20%uC120%uD0DD%uD574%uC8FC%uC138%uC694")));
		}
	},
	
	/**
	 * 개인화의 Open, Close를 제어한다.
	 */
	chckOpenYn : function() {
		
		/*
		
		// Open 상태를 나타내는 정보를 Cookie로부터 읽는다.
		var isOpen = getCookie('isOpen');
		
		// 정보가 존재하지 않은 경우는 최초로 Site에 접속한 경우이며, 이때는 Open 상태로 설정한다.
		if ( (null == isOpen || '' == isOpen) && '1' == f_chkLogin() ) {
			Prsn.showCntsArea();
		} else { // 정보가 존재하는 경우는 Open, Close여부에 따라 분기한다.
			
			// 이전에 Open시킨 상태면 계속 Open
			if ('true' == isOpen && '1' == f_chkLogin()) {
				Prsn.showCntsArea();
			} else if ('false' == isOpen && '1' == f_chkLogin()) { // Close시킨 상태면 계속 Close
				Prsn.hideCntsArea();
			}
			
		}
		*/ 
		
	}
	
	
};

/**
 * 스타일 변경과 관련된 Method 집합.
*/
var StyleConf = {
	
	// 선택된 Tab의 Style 변경(배경 흰색, 글자 굵은 검정색)
	setEnableTab : function(obj) {
		$(obj).style.color = '#232323';
		$(obj).style.fontSize = '12px';
		$(obj).style.fontFamily = 'dotum';
		$(obj).style.fontWeight = 'bold';
		$(obj).style.lineHeight = '16px';
	},
	
	// 선택되지 않은 Tab들 Style 초기화(배경 검정색, 글자 회색)
	setDisableTab : function(obj) {
		
		$(obj).style.color = '#919191';
		$(obj).style.fontSize = '12px';
		$(obj).style.fontFamily = 'dotum';
		$(obj).style.fontWeight = '';
		$(obj).style.lineHeight = '16px';
	}
	
	
};

/**
 * 개인화에서 IFrame 영역에 출력할 URL Constants
 */
var URLConstants = {
	
	// Prefix URL
	BASE_URL : '/xhtml/prsn/',
	// 비로그인 추천 상품  
	NOLOGIN_RECOMM_URL : 'noLoginRecomm.xhtml',
	// 비로그인 찜 상품
	NOLOGIN_MYGOODS_URL : 'noLoginGoods.xhtml',
	// 비로그인 스크랩 상품
	NOLOGIN_SCRAP_URL : 'noLoginScrap.xhtml',
	
	// 로그인 추천 상품
	LOGIN_RECOMM_URL : 'loginRecomm.xhtml',
	// 로그인 찜 상품
	LOGIN_MYGOODS_URL : 'myGoodsListFrame.xhtml',
	// 로그인 스크랩 상품
	LOGIN_SCRAP_URL : 'loginScrap.xhtml',
	
	// 최근 본 상품은 비로그인, 로그인 공통으로 호출
	COMM_SIGHT_URL : 'sightListFrame.xhtml'
	
};




	
