// 브랜드팟 내의 커스텀 셀렉트 박스 UI 관련 Class
var SelectBox = Class.create();

SelectBox.prototype = {
	initialize: function(boxHead) {
		this.boxHead = boxHead;
		
		$A(this.boxHead).each(function(obj){
			obj.observe("click", function(e){
				if (obj.next(0).className.match("hidden")) {
					obj.next(0).removeClassName("hidden");
					this.clearId = setTimeout(function(){
						obj.next(0).addClassName("hidden");
					}, 2000);
				} else {
					clearTimeout(this.clearId );
					obj.next(0).addClassName("hidden");
				}
				e.stop();
			}.bind(this));
			
			obj.next(0).observe("mouseover", function(e){
				clearTimeout(this.clearId );
			}.bind(this));
			
			obj.next(0).observe("mouseout", function(e){
				this.clearId = 	setTimeout(function(){ 
					obj.next(0).addClassName("hidden");
				}, 1000);
			}.bind(this));
		});
		
		Event.observe(document, "click", function(evt){
			$A(this.boxHead).each(function(obj){
				if(obj.next(0).className !== "hidden"){
					obj.next(0).addClassName("hidden");
				}
			});
		}.bind(this));
	}
};

var BrandPotSelectBox = Class.create( SelectBox, {
	initialize : function($super, params) {
		this.boxHead = params.boxHead;
		this.boxList = params.boxList;
		this.formObj = params.submitForm;
		this.isSubmit = params.autoSubmit?params.autoSubmit:"enable";

		$super(this.boxHead);
				
		this.boxList.each(function(obj){
			obj.observe("click", function(e){
				this.boxHead[0].innerHTML = obj.firstChild.nodeValue;
				this.boxHead[0].next(0).addClassName("hidden");
				obj.previous("input").checked = "checked";
				if (this.isSubmit === "enable") {
					this.formObj.submit();
				}				
			}.bind(this));
			
			obj.observe("mouseover", function(e){
				obj.addClassName("over");
			}.bind(this));
			
			obj.observe("mouseout", function(e){
				obj.removeClassName("over");
			}.bind(this));
			
		}.bind(this));
	},
	// 브랜드팟 전체보기 셀렉트 박스 탭메뉴별 이동
	menuList : function() {
		var h3Array = $$(".myPotNav .menuList h3"); 

		h3Array.each(function(obj){	
			obj.observe("click", function(e){
				h3Array.each(function(obj1){
					obj1.removeClassName("selected");
					obj1.next("div").addClassName("hidden");
				}.bind(this));
				
				obj.addClassName("selected");
				obj.next("div").removeClassName("hidden");
				Event.stop(e);
			});
		}.bind(this));
	},
	// 즐겨찾기 이벤트 등록
	addFavorite : function() {
		var aObj = this.boxHead[0].up("li").previous("li.favorite").down("a");

		aObj.observe("click", function(e){
			popupOpener.addfavorite(aObj.getAttribute("href"));
			Event.stop(e);
		});
	}
});



var BrandPotEachSetLayerBox = Class.create( SelectBox, { 
	initialize : function($super, params){
		this.boxHead = params.boxHead;
		this.boxList = params.boxList;
		
		$super(this.boxHead);
			
		this.boxList.each(function(obj){
			obj.observe("mouseover", function(e){
				obj.addClassName("over");
			}.bind(this));
			
			obj.observe("mouseout", function(){
				obj.removeClassName("over");
			}.bind(this));
			
		}.bind(this));
	}
});

var BrandPotAllSetLayerBox = Class.create( SelectBox, {
	initialize : function($super, params) {
		this.boxHead = params.boxHead;
		this.boxList = params.boxList;
		this.formObj = params.submitForm;
		this.clipList = [];

		var util = new BrandPotUtil();
		
		$super(this.boxHead);
		
		this.boxList.each(function(obj) {
			obj.observe("click", function(e) {
				this.clipList = util.checkBoxValid( $$("#deleteTypeForm td.checkBox input") ); 

				if( this.clipList.length > 0 ) {
					if( confirm("선택하신 영상 설정을 모두 " + obj.firstChild.nodeValue + "하시겠습니까?") ){
						obj.previous("input").checked = "checked";
						this.formObj.clipList.value = this.clipList;
						this.formObj.submit();
					} else {
						return false;
					}
				} else {
					alert("선택한 동영상이 없습니다");
					e.stop();		
				}
				
				this.boxHead[0].next(0).addClassName("hidden");
			}.bind(this));
		
			obj.observe("mouseover", function(){
				obj.addClassName("over");	
			}.bind(this));
			
			obj.observe("mouseout", function(){
				obj.removeClassName("over");
			}.bind(this));			
		}.bind(this));
	}
});

var BrandPotUtil = Class.create();
BrandPotUtil.prototype = {
	initialize : function() {
		this.checkBoxs = "";
		this.clipList = [];
		this.clearId = "";
	},
	checkBoxValid : function(obj) {
		this.checkBoxs = obj; 
		this.checkBoxs.each(function(obj1) {
			if(obj1.checked) {
				this.clipList.push(obj1.value);
			}
		}.bind(this));
		
		return this.clipList;
	},
	checkAll : function(obj) {
		this.checkBoxs = obj;
		this.checkBoxs.each(function(obj1) {
			if (!obj1.disabled) {
				obj1.checked = true;
			}	
		}.bind(this));	
	},
	uncheckAll : function(obj) {
		this.checkBoxs = obj;
		this.checkBoxs.each(function(obj1) {
			if (!obj1.disabled) {
				obj1.checked = false;
			}	
		}.bind(this));		
	}
};

// 검색폼 서브밋 유효성 검사
var SearchBox = Class.create(); 
SearchBox.prototype = {
	initialize : function(params){
		this.formObj = params.submitForm;
		this.inputText = params.inputText;
		
		Event.observe(this.formObj, "submit", function(e){
			this.checkForm(e);
		}.bind(this));
	},
	checkForm : function(e) {
		if(this.inputText.value === "") {
			alert("검색어를 입력해주세요.");
			this.inputText.focus();
			Event.stop(e);
		}
	}
};

// 최신 댓글 목록 내용 텍스트, 이미지 간격조절(IE에서 발생하는 문제)
var ResetLineHeight = {
	init : function() {	
		if($$(".recentCommentList .captureCls").length > 0) {
			$$(".recentCommentList .captureCls").each( function(obj){
				if(Prototype.Browser.IE) {
					obj.vspace = "2";
				}
			});
		}
		
		if($$(".recentCommentList .newCls").length > 0) {
			$$(".recentCommentList .newCls").each( function(obj){
				obj.vspace = "5";
			});
		}
	}
};

// 최신 댓글 목록 장면댓글 캡쳐이미지 미리보기
var CommentCaptureImage = Class.create();
CommentCaptureImage.prototype = {
	initialize : function(params) {
		this.targetObjs = params.targetObjs;
		this.tmpY = params.moveTopPos?params.moveTopPos:48;
		this.captureImgObj = $("captureImgLayer");		
								
		if(this.targetObjs.length > 0) {
			
			this.targetObjs.each( function(obj){
				obj.observe("mouseover", function(e){
					this.captureImgObj.down("em").innerHTML = obj.up("dd").next(".captureImg").down("em").innerHTML;
					this.captureImgObj.down("img").setAttribute("src", obj.up("dd").next(".captureImg").down("a").getAttribute("href")); 
					
					this.captureImgObj.removeClassName("hidden");
										
					var x = obj.positionedOffset().left; 
					var y = obj.positionedOffset().top;
					
					this.captureImgObj.style.left = x + "px"; 
					this.captureImgObj.style.top = y + this.tmpY + "px";									
				}.bind(this));

				obj.observe("mouseout", function(e){
					if(!e.relatedTarget.descendantOf(this.captureImgObj))
						this.captureImgObj.addClassName("hidden");
					Event.stop(e);
				}.bind(this));

				this.captureImgObj.down("a").observe("click", function(e){
					this.captureImgObj.addClassName("hidden");
					Event.stop(e);								
				}.bind(this));

				this.captureImgObj.down("img").observe("click", function(e){
					this.captureImgObj.addClassName("hidden");
					Event.stop(e);														
				}.bind(this));
				
				this.captureImgObj.observe("mouseout", function(e){
					if(!e.relatedTarget.descendantOf(this.captureImgObj))
						this.captureImgObj.addClassName("hidden");
					Event.stop(e);														
				}.bind(this));
				
			}.bind(this));
		}
	}
};

/* 방명록 글쓰기 폼값 유효성 체크 */
var commentForm = {
	check : function() {
		var textareaObj = $("contents");
		var formObj = $("contents").up("form");
		formObj.observe("submit", function(e){
			if(textareaObj.value === "") {
				alert("내용을 입력해주세요.");
				Event.stop(e);
				return;
			}
			if(textareaObj.value.length>600)
			{
				textareaObj.value = textareaObj.value.substring(0,600);
				alert("최대 한글 600자, 영문 600자 까지 입력 가능하므로 초과된 글자는 자동으로 삭제됩니다.  ");
				Event.stop(e);
				return;
			}			
		});		
	}
};

/* 방명록 답글달기 폼 표시 및 폼값 유효성 체크 */
var recommentForm = {
	toggle : function() {
		$$(".commentList .replyBtn").each( function(obj) {
			var targetObj = obj.up("li").next(".replayFormWrapper");
			var textareaObj = targetObj.down("textarea");
			var formObj = targetObj.down("form");
			
			formObj.observe("submit", function(event){
				if(textareaObj.value === "") {
					alert("내용을 입력해주세요.");
					Event.stop(event);
				}
				if(textareaObj.value.length>600)
				{
					textareaObj.value = textareaObj.value.substring(0,100);
					alert("최대 한글 600자, 영문 600자 까지 입력 가능하므로 초과된 글자는 자동으로 삭제됩니다.  ");
					Event.stop(event);
					//return;
				}				
			});	
			obj.observe("click", function(event){
				$$(".commentList form").each( function(obj1) {
					obj1.up("li").className = "hideForm";
				});
				
				if(targetObj.className == "hideForm") {
					targetObj.className = "showForm";
				} else {
					targetObj.className = "hideForm";
				}

				textareaObj.value = formObj["original"].value;
				Event.stop(event);
			});
		});
		
			
		$$(".commentList .modifyBtn").each( function(obj) {
			if(obj.up("li").next(".modifyFormWrapper")) {
				var targetObj = obj.up("li").next(".modifyFormWrapper");
				var textareaObj = targetObj.down("textarea");
				var formObj = targetObj.down("form");
				
				formObj.observe("submit", function(event){
					if(textareaObj.value === "") {
						alert("내용을 입력해주세요.");
						Event.stop(event);
					}
					if(textareaObj.value.length>600)
					{
						textareaObj.value = textareaObj.value.substring(0,100);
						alert("최대 한글 600자, 영문 600자 까지 입력 가능하므로 초과된 글자는 자동으로 삭제됩니다.");
						Event.stop(event);
						//return;
					}				
				});	
				obj.observe("click", function(event){
					$$(".commentList form").each( function(obj1) {
						obj1.up("li").className = "hideForm";
					});
					
					if(targetObj.className == "hideForm") {
						targetObj.className = "showForm";
					} else {
						targetObj.className = "hideForm";
					}

					textareaObj.value = formObj["original"].value;
					Event.stop(event);
				});	
			}
		});
		
		$$(".commentList input.cancelBtn").each( function(obj) {
			obj.observe("click", function(event){
				obj.up("li").className = "hideForm";
				var str = obj.up("form")["original"].value;
				obj.up("li").down("textarea").value = str;
			});			
		});
	}

};

/* 방명록 삭제하기 */
var commentList = {
	init : function() {
		commentList.remove();
	},
	remove : function() {
		$$(".deleteBtn").each(function(obj) {
			obj.observe("click", function(event) {
				if (confirm("삭제하시겠습니까?")) {
					location.href = obj.getAttribute("href");
				}
				Event.stop(event);				
			});
		});
	}
};

/* 텍스티콘 사용 */
var textIcon = {
	init : function() {
		$$(".textIcon").each( function(obj) {
			obj.observe("click", function(event) {
				var url = obj.getAttribute("href");

				window.open( url, "texticonWindow", "width=630, height=530, resizable=yes, scrollbars=no" );
				Event.stop(event);
			});
		});
	}
};

/* 마이팟 바로가기 */
function goMypot(isexist, url){
	if ( isexist == 'false' ) { 
		alert("마이팟이 아직 생성되지 않았습니다.");
	} else { 	
 		location.href = url;
 	}
}

/* URL 패턴 유효성 검사 */
function checkValidation(str) {
	this.str = str;
	var flag = true;

	for(var i=0; i<this.str.length; i++) {
		if ( this.str[i].match(/[a-zA-Z0-9]/) === null ) {
		  	flag = false;
			break;
		}		
	}
	return flag;
}

function cancelWriteForm(e) {
	if (!confirm('입력하신 정보가 저장되지 않았습니다. 취소하시겠습니까?')) {
		e.stop();
		return false;
	}
}

function confirmWriteForm(e) {
	if (!confirm('입력하신 기본정보를 저장 하시겠습니까?')) {
		e.stop();
		return false;
	}
}

/* iframe 리사이즈 */
function resizeIframe(tgtObj) {
	var iframe = parent.document.getElementById(tgtObj);
	var height = document.getElementsByTagName("body")[0].offsetHeight;
	iframe.style.height = height + 10 + "px";
}

var getAjaxData= function (url,method,params,func){
    var myAjax = new Ajax.Request( 
            url, 
            {   method: method, 
                parameters: params, 
                onComplete: eval(func),
				onFailure: function() {
					alert("오류가 발생하였습니다.");
				}
            }
    ); 
};

/* 알리미 배너 롤링 */
function rollingBanners(banners,time){
	if (banners.length < 2) {
		return;
	}

	var targetIndex = 0;
	setInterval(function(){
		for(var i=0; i<banners.length; ++i){
			banners[i].addClassName("hidden");
		}
		targetIndex = (targetIndex + 1) % banners.length;
		banners[targetIndex].removeClassName("hidden");
	},time);
}

/* 관련 동영상 롤링 */
var seriesList = Class.create();
	seriesList.prototype={
	visibleListCnt:null,
	totalSetCnt:null,
	selectedSetIndex:null,
	seriesList:null,
	list:null,
	nextBtnObj:null,
	prevBtnObj:null,
	initialize: function( params ){
		this.nextBtnObj = params.nextBtnObj;
		this.prevBtnObj = params.prevBtnObj;

		this.nextBtnObj.onclick=function(){this.show(1);}.bind(this);
		this.prevBtnObj.onclick=function(){this.show(-1);}.bind(this);

		this.visibleListCnt = params.visibleListCnt;
		this.list = params.list;
		this.selectedSetIndex=0;
		this.totalSetCnt = parseInt(((this.list.length -1) / this.visibleListCnt)+1, 10);
	},
	show:function(){
		var direction = arguments[0] || 1;
		this.selectedSetIndex = (this.selectedSetIndex + this.totalSetCnt + direction) % this.totalSetCnt;

//		맨처음, 맨뒤로 갔을때 기능오프 시키는 부분			
//		if(this.selectedSetIndex === 0) {
//			this.prevBtnObj.addClassName("disabled");
//			this.prevBtnObj.disabled = "disabled";	
//		} else if(this.selectedSetIndex === (this.totalSetCnt-1)){
//			this.nextBtnObj.addClassName("disabled");
//			this.nextBtnObj.disabled = "disabled";
//		} else {
//			this.prevBtnObj.removeClassName("disabled");
//			this.nextBtnObj.removeClassName("disabled");
//			this.prevBtnObj.disabled = "";
//			this.nextBtnObj.disabled = "";
//		}

		var first = this.selectedSetIndex * this.visibleListCnt;
		var last = first + this.visibleListCnt ;
		this.list.each(function(value,index){
			if (index >= first && index < last) {
				value.removeClassName("hidden");
			} else {
				value.addClassName("hidden");
			}
		}.bind(this));
	}
};

// 관리 > 스킨 설정
var Skin = Class.create();
Skin.prototype = {
	initialize : function() {
		this.skinLabels = $$(".selectSkin dl"); 
		this.whBgLabels = $$(".whiteSkin li");
		this.setBg();
	},
	setBg : function() {	
		this.whBgLabels.each(function(labelObj, idx){
			labelObj.observe("click", function(e){ 
				var ddObj = $$(".whiteSkin dd");
				labelObj.down("input").checked = true;

				this.skinLabels[0].removeClassName("selected");
				
				this.whBgLabels.each(function(obj){
					obj.removeClassName("selected");
				});

				ddObj.each(function(bgObj){
					bgObj.addClassName("hidden");
				});
				
				labelObj.addClassName("selected");
				ddObj[idx].removeClassName("hidden");
				
				e.stop();
			}.bind(this));
		}.bind(this));			
	}
};

// 관리 > 대문만들기 > 메인동영상형 > 동영상 검색하기
function uploadBtnEventListner() {
	$$(".searchUploadBtn")[0].observe("click", function(e){
		window.open($$(".searchUploadBtn")[0].href, "popupClipList", "width=628, height=603, resizable=yes");
		e.stop();
	});
}

// 관리 > 대문만들기 > 메인동영상형 > 동영상 검색팝업창에서 해당 클립 등록
function setFrontClipInfo(clipData, ownerId)	{
	var html = ""
		+ '<dl>'
		+ '<dt><a href="' + clipData.linkUrl + '" target="_blank">' + clipData.title + '</a></dt>'
		+ '<dd class="image"><a href="' + clipData.linkUrl + '" target="_blank"><img src="' + clipData.thumbImg + '" width="68" height="50" alt="" /></a></dd>'
		+ '<dd class="etc">'
		+ '<em class="play_">' +  clipData.playCnt + '</em>'
		+ '<span>|</span>'
		+ '<em class="wow_">' + clipData.wowCnt + '</em>'
		+ '<span>|</span>'
		+ '<em class="date">' + clipData.date + '</em>'
		+ '</dd>'
		+ '<dd class="button"><a href="PopupClipList.do?ownerid=' + ownerId + '" class="searchUploadBtn" title="동영상 검색하기">동영상 검색하기</a></dd>'
		+ '</dl>';
		
	$("mainClipTypeForm").frontClipId.value	= clipData.clipId;
	$("mainSearchSelectList").innerHTML = html;
}

// 관리 > 대문만들기 페이지 샘플보기
var FrontSamplePreview = Class.create();
FrontSamplePreview.prototype = {
	initialize : function(params) {
		this.targetObjs = params.targetObjs;
		this.captureImgObj = params.previewImg;
		this.tmpY = params.moveTopPos?params.moveTopPos:48;

								
		if(this.targetObjs.length > 0) {
			this.targetObjs.each( function(obj){
				obj.observe("click", function(e){
					
					this.captureImgObj.down("img").setAttribute("src", obj.up("dd").next(".sampleImg").down("img").getAttribute("src")); 
					this.captureImgObj.removeClassName("hidden");
										
					var x = obj.positionedOffset().left; 
					var y = obj.positionedOffset().top;
					
					this.captureImgObj.style.left = x + "px"; 
					this.captureImgObj.style.top = y + this.tmpY + "px";
					Event.stop(e);								
				}.bind(this));

				this.captureImgObj.down("a").observe("click", function(e){
					this.captureImgObj.addClassName("hidden");
					Event.stop(e);					
				}.bind(this));

				this.captureImgObj.down("img").observe("click", function(e){
					this.captureImgObj.addClassName("hidden");
					Event.stop(e);														
				}.bind(this));
				
			}.bind(this));
		}
	}
};

// 관리 > 대문 만들기 > 
var setObject = {
	init : function(w, h, id, objectWrapperId, classId, codeBase, params) {
		var html = ''
		+ '<object id="' + id +'" width="'+ w +'" height="'+ h +'" classid="' + classId + '" codebase="' + codeBase + '">';
		for( i = 0; i < params.length; i++ ) {	
			html += '<param name="' +  params[i].name + '" value="' + params[i].value + '" \/>';
		}
		html += '<p>파이어폭스, 오페라, 사파리등의 브라우저에서는 웹에서 보기가 지원되지 않습니다.'
		+ '익스플로러를 통해서 감상해 주세요.<\/p>'
		+ '<\/object>';
		document.getElementById(objectWrapperId).innerHTML = html;
	}	
};


// 관리 > 클립리스트 페이지 이벤트 등록, 폼 유효성 검사
var ClipList = {
	init : function() {
		$$(".deleteLink").each(function(obj){
			obj.observe("click", function(e){
				if(! confirm("이 영상을 삭제 하시겠습니까?") ) {
					e.stop();
				}
			});
		});
		
		$("checkBoxControl").observe("click", function(e) {
			var checkOjs = $$("#deleteTypeForm td.checkBox input");
			var util = new BrandPotUtil();

			if( $("checkBoxControl").checked ) {
				util.checkAll(checkOjs);
			} else {
				util.uncheckAll(checkOjs);
			}
		});
		
		$("deleteTypeForm").observe("submit", function(e){
			var util = new BrandPotUtil();
			var clipLists = util.checkBoxValid( $$("#deleteTypeForm td.checkBox input") );
					
			if( clipLists.length > 0 ) {
				if(! confirm("선택하신 영상을 모두 삭제하시겠습니까?") ){
					e.stop();
					return false;
				} else {
					this.clipList.value = clipLists;
				}
			} else {
				alert("선택한 동영상이 없습니다");
				e.stop();
			}
		});
	}
};



/*
 * date: 2008/09/24 99corps
 */

if( typeof( Comment ) != 'function' ) {
    Comment = function (){};
}

/* 폼의 바이트 수 체크 관련 클래스 */
Comment.Validation = Class.create( {
	initialize : function (maxLength, obj) {
		this.maxLength = maxLength;	
		this.targetId = obj;
						
		this.targetId.observe("keyup", function() {
			this.charCheck();
		}.bind(this));
	},
	charCheck : function () {
		var charValue = this.targetId.value;
		var nbytes = 0;
		
		for( i = 0; i < charValue.length; i++) {
			var charS = charValue.charAt(i);
			if (escape(charS).length > 4) {
				nbytes += 2;
			} else {
				nbytes += 1;
			}
		}
		
		if (nbytes > this.maxLength) {
			alert("최대 한글 100자, 영문 200자 까지 입력 가능하므로 초과된 글자는 자동으로 삭제됩니다.  ");
			$(this.targetId).value = charValue.substr(0, this.maxLength);

			nbytes = 0;
			for (i = 0; i < charValue.length; i++) {
				charS = charValue.charAt(i);

				if (escape(charS).length > 4) {
					nbytes += 2;
				} else {
					nbytes += 1;
				}
						
				if (nbytes > this.maxLength) {
					if (escape(charS).length > 4) {
						nbytes -= 2;
					} else {
						nbytes -= 1;
					}
					break;
				}
			}
		}
		this.targetId.up("div").next("p").down("span").innerHTML = nbytes;
	}
});


