if(typeof(Memo) == "undefined") {
	var Memo = {
		init : function(domainid, myLevel, writeLevel) {
			this.domainid = domainid;
			this.myLevel = myLevel;
			this.writeLevel = writeLevel;
			
			this.intervals = new Array();
			
			this.initUI();
			this.getList(1);
		},
		
		initUI : function() {
			if(this.myLevel > 0) {
				//----- 댓글 아바타 표정 변화 기능 -----------------------------------------------------
				$("#btnChangeMood").click(function() {
					$("#expressionList").toggle();
				});
				
				$("#expressionList p a").click(function() {
					$("#expressionList").hide();
				});
				
				$("#expressionList ul").find("a").click(function() {
					$("#mood").val($(this).attr("mood"));
					
					var src = $(this).find("img").attr("src");
					$("#memoWriterIcon").attr("src", src);
					
					$("#expressionList").hide();
				});
				//---------------------------------------------------------------------------			
				
				if(this.myLevel < this.writeLevel) {	
					$("#memoContent").click(function() {
						var msg = "해당 방송국 메모장은<br/>";
						if(this.writeLevel == 5) msg += "국장만";
						else if(this.writeLevel == 4) msg += "CJ 이상만";
						else if(this.writeLevel == 3) msg += "스텝 이상만";
						else if(this.writeLevel == 2) msg += "즐찾멤버 이상만";
						else msg += "손님 이상만";
						
						msg += " 메모를 남길 수 있습니다.";
						
						LayerHandler.alertCntlCallback(msg);
					}.bind(this));
				}
				else {
					$("#memoContent").focus(function() {
						$(this).removeClass("default").addClass("focus");
					}).blur(function() {
						$(this).removeClass("focus").addClass("default");
					}).keyup(function(e) {
						if(e.keyCode == 13) this.post();
					}.bind(this));
					
					$("#btnWriteMemo").click(function() {
						this.post();
					}.bind(this));
				}
				
				setInterval("movingFontAni(document.getElementById('memoContent'))", 1000);
			}
			else {
				$("#memoContent").val("로그인 후 메모를 남길 수 있습니다.").attr("readonly", true).click(function() {
					goSayLoginForm();
				});
				
				$("#btnWriteMemo").click(function() {
					goSayLoginForm();
				});			
			}
		},
		
		getList : function(page) {
			var _T = this;
			
			$.get(_staticUrl + "/station/home/getMemoList/" + this.domainid, {page : page || 1}, function(html) {
				//----- 애니 폰트용 interval clear -----------------------------------------
				// interval관리를 해주지 않을 경우 AJAX로 다른 페이지를 가져올때 interval이 기존에 돌고 있어서 오류가 남
				for(var i = 0; i < _T.intervals.length; i++) {
					clearInterval(_T.intervals[i]);
				}
				_T.intervals = new Array();
				//---------------------------------------------------------------------
				
				$("#memoList").children().remove().end().html(html);
				
				//----- 애니 폰트용 interval 세팅 --------------------------------------------
				$("ul.visitors span[@id^=moving]").each(function() {
					var iv = $(this).attr("onactivate")();
					_T.intervals.push(iv);
				});
				//---------------------------------------------------------------------
				
				$("#memoList a[id=btnNav]").click(function() {
					var page = $(this).attr("page");
					
					_T.getList(page);
					return false;
				});
				
				$("#memoList a[id=btnDelMemo]").click(function() {
					var keystr = $(this).attr("keystr");
					
					_T.deleteMemo(keystr);
				});
			});
		},
		
		post : function() {
			var content = $("#memoContent").val();
			if($n.valid.empty(content)) {
				LayerHandler.alertCntlCallback("메모를 입력해주세요.", function() {
					$("#memoContent").focus();
					LayerHandler.closeAlert();
				});
				return false;
			}
			
			if($n.utils.byteSize(content) > 78) {
				LayerHandler.alertCntlCallback("최대 78바이트까지 입력 가능합니다.");
				return false;
			}		
			
			var mood = $("#mood").val();
			
			$.post(_staticUrl + "/ajax/json/station/home/postMemo/" + this.domainid, {content : content, mood : mood}, function(data) {
				if(data.result) {
					$("#memoContent").val("");
					
					this.getList();
				}
				else LayerHandler.alertCntlCallback(data.error || "ERROR");
			}.bind(this), "json");
		},
		
		deleteMemo : function(keystr) {
			$.post(_staticUrl + "/ajax/json/station/home/deleteMemo/" + keystr, {}, function(data) {
				if(data.result) {
					this.getList();
				}
				else LayerHandler.alertCntlCallback(data.error || "ERROR");
			}.bind(this), "json");
		}
	}
}
