function Cboard()
{
	this.f = $('articleListForm');
	this.articleList = $("articleList");
	this.pageNavigation = $("pageNavigation");

	this.commentSubmitCheck = 0;
	this.commentRecommCheck = 0;
	this.maxCommentPage = 10;
}

Cboard.prototype.getArticleList = function()
{
	var cb = this;

	if (this.articleList == null)
	{
		this.articleList = $("articleList");
		this.pageNavigation = $("pageNavigation");
	}

	if(cb.f)
	{
		new Ajax.Request(cb.f.action, {
			method: 'get',
			encoding: 'utf-8',
			parameters: cb.f.serialize(true),
			onSuccess: function(transport) {
				if (transport.responseText != "")
				{
					xmlDoc = transport.responseText.evalJSON(true);
					cb.removeAllList();
					cb.reloadList(xmlDoc);
				}
			}
		});
	}
}

Cboard.prototype.removeAllList = function()
{
	while(this.articleList.hasChildNodes())
	{
		this.articleList.removeChild(this.articleList.firstChild);
	}
}

Cboard.prototype.reloadList = function(jsonData)
{
	var i, j;
	var printArticle = jsonData['list'].length;
	var startArticle = 0;
	var lastArticle = 0;
	var page = parseInt(this.f.page.value, 10);
	var npp = parseInt(this.f.npp.value, 10);
	var msg = "";
	var oTr = null;
	var oTd = null;
	var strClass = "";

	if (printArticle == 0)
	{
		if (this.f.q.value.length > 0) msg = '요청하신 "' + this.f.q.value + '"에 대한 검색결과가 없습니다.';
		else msg = '요청하신 결과가 없습니다.';

		if (Prototype.Browser.IE)
		{
			oTr = this.articleList.insertRow();
			oTr.className = "last";

			oTd = oTr.insertCell();
			oTd.className = "col1";
			oTd.innerHTML = "";

			oTd = oTr.insertCell();
			oTd.className = "col2";
			oTd.style.textAlign = "center";
			oTd.innerHTML = "";

			oTd = oTr.insertCell();
			oTd.className = "col3";
			oTd.innerHTML = "";
		}
		else
		{
			oTr = document.createElement("TR");
			oTr.className = "last";
			this.articleList.appendChild(oTr);

			oTd = document.createElement("TD");
			oTd.className = "col1";
			oTd.innerHTML = "";
			oTr.appendChild(oTd);

			oTd = document.createElement("TD");
			oTd.className = "col2";
			oTd.style.textAlign = "center";
			oTd.innerHTML = msg;
			oTr.appendChild(oTd);

			oTd = document.createElement("TD");
			oTd.className = "col3";
			oTd.innerHTML = "";
			oTr.appendChild(oTd);
		}
	}
	else
	{
		for (i = 0; i < printArticle; i++)
		{
			if (Prototype.Browser.IE)
			{
				oTr = this.articleList.insertRow();

				strClass = (i + 1 == printArticle) ? "col1 last" : "col1";
				oTd = oTr.insertCell();
				Element.writeAttribute(oTd, "class", strClass);
				oTd.innerHTML = jsonData['list'][i]['article_num'];

				strClass = (i + 1 == printArticle) ? "col2 last" : "col2";
				oTd = oTr.insertCell();
				Element.writeAttribute(oTd, "class", strClass);
				oTd.innerHTML = '<a href="' + jsonData['list'][i]['cb_link'] + '">' + jsonData['list'][i]['cb_title'] + '</a>';

				strClass = (i + 1 == printArticle) ? "col3 last" : "col3";
				oTd = oTr.insertCell();
				Element.writeAttribute(oTd, "class", strClass);
				oTd.innerHTML = jsonData['list'][i]['regdate'];
			}
			else
			{
				oTr = document.createElement("TR");
				this.articleList.appendChild(oTr);

				strClass = (i + 1 == printArticle) ? "col1 last" : "col1";
				oTd = document.createElement("TD");
				oTd.className = strClass;
				oTd.innerHTML = jsonData['list'][i]['article_num'];
				oTr.appendChild(oTd);

				strClass = (i + 1 == printArticle) ? "col2 last" : "col2";
				oTd = document.createElement("TD");
				oTd.className = strClass;
				oTd.innerHTML = '<a href="' + jsonData['list'][i]['cb_link'] + '">' + jsonData['list'][i]['cb_title'] + '</a>';
				oTr.appendChild(oTd);

				strClass = (i + 1 == printArticle) ? "col3 last" : "col3";
				oTd = document.createElement("TD");
				oTd.className = strClass;
				oTd.innerHTML = jsonData['list'][i]['regdate'];
				oTr.appendChild(oTd);
			}
		}
	}

//	startArticle = (page - 1) * npp + 1;
//	lastArticle = printArticle > 0 ? startArticle + jsonData['list'].length - 1 : startArticle;
//	if (printArticle > 0)
//	{
		//$("pageInfo").innerHTML = '<span>|</span> 총 <em>' + jsonData.total + '</em>건 <span style="color:#7d7d7d;">' + startArticle + '-' + lastArticle + '</span>';
		this.pageNavigation.innerHTML = jsonData.paging;
		this.f.page.value = jsonData.page;
//	}
}

Cboard.prototype.getCommentList = function(page)
{
	var cmt = this;
	var f = $('commentForm');
	f.c_page.value = page;

	if(f)
	{
		new Ajax.Request("/common/ajax/community_comment.html", {
			method: 'get',
			encoding: 'utf-8',
			parameters: {'p_no' : f.p_no.value, 'c_page' : page, 'act' : "list"},
			onSuccess: function(transport) {
				if (transport.responseText != "")
				{
					xmlDoc = transport.responseText.evalJSON(true);
//					cmt.removeAllComment();
					cmt.reloadComment(xmlDoc);
				}
			}
		});
	}
}

Cboard.prototype.removeAllComment = function()
{
	var obj = $("comments").getElementsByTagName("UL")[0];
	while (obj.hasChildNodes())
	{
		obj.removeChild(obj.firstChild);
	}
//	$("pageNavigation").innerHTML = "";
}

Cboard.prototype.reloadComment = function(jsonData)
{
	var cmt = this;
	for (var i = 0; i < jsonData['comment'].length; i++)
	{
		cmt.addComment(jsonData['comment'][i]);
	}
	$('articleCommCnt').innerHTML = '[' + jsonData['total'] + ']';
	if (jsonData['recomm_cnt'])
	{
		$('articleRecommCnt').innerHTML = jsonData['recomm_cnt'];
		$('cmntRecommBtn').style.display = "none";
		$('cmntCommBtn').style.marginTop = "-13px";


	}

//	$('pageNavigation').innerHTML = jsonData['paging'];
//	$("commentForm").c_page.value = jsonData['c_page'];
}

Cboard.prototype.addComment = function(jsonData)
{
	var html = "";
	var objLi = document.createElement("LI");
	html = '<div class="writer">' + jsonData.name + '</div>';
	html += '<div class="txt">' + jsonData.comment + ' <span class="del" onClick="deleteComment(' + jsonData.no + ', event);">x</span></div>';
	html += '<div class="date">' + jsonData.regdate + '</div>';
	objLi.innerHTML = html;
	$("comments").getElementsByTagName("UL")[0].appendChild(objLi);
}

Cboard.prototype.saveComment = function()
{
	var cmt = this;

	var f = $('commentForm');

	var author = f.author.value;
	var comment = f.comment.value;
	var password = f.password.value;

	f.act.value = 'save';

	if (author == '이름을 입력해주세요.' || Trim(author) == '')
	{
		alert('이름을 입력해주세요.');
		f.author.focus();
		return;
	}

	if (Trim(password) == '')
	{
		alert('패스워드를 입력해주세요.');
		changeFocus(f.password2, "password");
		return;
	}

	if (comment == '내용을 입력해주세요.' || Trim(comment) == '')
	{
		alert('내용을 입력해주세요.');
		f.comment.focus();
		return;
	}


	if(cmt.commentSubmitCheck == 1){
	   alert("입력 버튼을  여러번 클릭 하지 마세요");
	   return;
	}
	cmt.commentSubmitCheck =1;

	if(f)
	{
		new Ajax.Request("/common/ajax/community_comment.html", {
			method: 'post',
			encoding: 'utf-8',
			parameters: f.serialize(true),
			onSuccess: function(transport) {
				cmt.commentSubmitCheck = 0;
//				alert(transport.responseText);
				xmlDoc = transport.responseText.evalJSON(true);
				if (xmlDoc['msg'] == "OK")
				{
					cmt.removeAllComment();
					cmt.reloadComment(xmlDoc);
					alert("코멘트가 입력되었습니다.");
				}
				else
				{
					alert(xmlDoc['msg']);
				}
				f.author.value = "이름을 입력해주세요.";
				f.comment.value = "내용을 입력해주세요.";
				f.password.value = "";
				changeFocus2(f.password, "password2");
			}
		});
	}
}

Cboard.prototype.recommComment = function()
{
	var cmt = this;

	var f = $('commentForm');

	var author = f.author.value;
	var comment = f.comment.value;
	var password = f.password.value;


	if (cmt.commentRecommCheck == 2) return error_msg("이미 추천했습니다.");
	else if (cmt.commentRecommCheck == 1) return error_msg("추천하기 버튼을 여러번 클릭하지 마세요.");
	f.act.value = 'recomm';

	if (author == '이름을 입력해주세요.' || Trim(author) == '')
	{
		alert('이름을 입력해주세요.');
		f.author.focus();
		return;
	}

	if (Trim(password) == '')
	{
		alert('패스워드를 입력해주세요.');
		changeFocus(f.password2, "password");
		return;
	}

	if (comment == '내용을 입력해주세요.' || Trim(comment) == '')
	{
		alert('내용을 입력해주세요.');
		f.comment.focus();
		return;
	}

	cmt.commentRecommCheck = 1;

	if(f)
	{
		new Ajax.Request("/common/ajax/community_comment.html", {
			method: 'post',
			encoding: 'utf-8',
			parameters: f.serialize(true),
			onSuccess: function(transport) {
				xmlDoc = transport.responseText.evalJSON(true);
				if (xmlDoc['msg'] == "OK")
				{
					cmt.commentRecommCheck = 2;

//					$("recomm").innerHTML = xmlDoc['recomm_cnt'];
//					$("recommDiv").innerHTML = "";
					cmt.removeAllComment();
					cmt.reloadComment(xmlDoc);
					alert("추천했습니다.");
				}
				else if (xmlDoc['msg'] == "YET")
				{
					cmt.commentRecommCheck = 2;
					alert("이미 추천했습니다.");
				}
				else
				{
					cmt.commentRecommCheck = 0;
					alert(xmlDoc['msg']);
				}
				f.author.value = "이름을 입력해주세요.";
				f.comment.value = "내용을 입력해주세요.";
				f.password.value = "";
				changeFocus2(f.password, "password2");
			}
		});
	}
}

Cboard.prototype.delComment = function()
{
	var cmt = this;

	if(Trim($("passwd").value) == '') return error_msg("패스워드를 입력해주세요.", $("passwd"));

	var fc = $("delCommentForm");
	var f = $('commentForm');
	f.act.value = 'delete';
	f.password.value = $("passwd").value;
	fc.style.display = "none";

	if(f)
	{
		new Ajax.Request("/common/ajax/community_comment.html", {
			method: 'post',
			encoding: 'utf-8',
			parameters: f.serialize(true),
			onSuccess: function(transport) {

				f.password.value = "";
				$('passwd').value = "";

				xmlDoc = transport.responseText.evalJSON(true);
				if (xmlDoc['msg'] == "OK")
				{
					alert("코멘트가 삭제되었습니다.");
					cmt.removeAllComment();
					cmt.reloadComment(xmlDoc);
				}
				else
				{
					alert(xmlDoc['msg']);
				}
			}
		});
	}
}

function saveComment()
{
	if (cboard == null) cboard = new Cboard();
	cboard.saveComment();
}

function recommComment()
{
	if (cboard == null) cboard = new Cboard();
	cboard.recommComment();
}

function delComment()
{
	if (cboard == null) cboard = new Cboard();
	cboard.delComment();
}

function deleteComment(c_no, evt)
{
	$('commentForm').c_no.value = c_no;
	$('delCommentForm').style.left = Event.pointerX(evt) + 20 + "px";
	$('delCommentForm').style.top = Event.pointerY(evt) - 20 + "px";
	$('delCommentForm').style.display = "block";
	$('passwd').focus();
}

function closeDelComment()
{
	$('delCommentForm').style.display = "none";
	$('passwd').value = "";
}

var cboard = null;

function getCommList(page)
{
	if (cboard == null) cboard = new Cboard();
	cboard.getCommentList(page);
}

function getList(page)
{
//	getAd('movie');
//	getArticleList(page);

	$("articleListForm").page.value = page;
	if (cboard == null) cboard = new Cboard();
	cboard.getArticleList();
}

function getCateList(cate)
{
	$("articleListForm").page.value = 1;
	$("articleListForm").cmna_no.value = cate;

	var cla = $$('.text_category ul li a');

	for (var i = 0; i < cla.length ; i++)
	{
		if (cate == cla[i].parentNode.firstChild.value)
		{
			Element.writeAttribute(cla[i], "class", "strong");
		}
		else
		{
			Element.writeAttribute(cla[i], "class", "");
		}
	}

	if (cboard == null) cboard = new Cboard();
	cboard.getArticleList();
}

function chkKbd(evt)
{
	if (evt.keyCode == 13)
	{
		getSearchList();
	}
}

function getSearchList()
{
	if (!ChkEle($("searchForm").q.value, "C", 2, 30)) return error_msg("검색어는 두자이상 입력해주세요.");

	$("articleListForm").page.value = 1;
	$("articleListForm").c.value = $("searchForm").qf.value;
	$("articleListForm").q.value = $("searchForm").q.value;

	if (cboard == null) cboard = new Cboard();
	cboard.getArticleList();
}

function moveListbodyForm()
{
	$("articleListForm").method = "get";
	$("articleListForm").act.value = "listbody";
	$("articleListForm").submit();
}

function movePostForm()
{
	$("articleListForm").method = "get";
	$("articleListForm").act.value = "postform";
	$("articleListForm").submit();
}

function moveReplyForm()
{
	$("articleListForm").method = "get";
	$("articleListForm").act.value = "replyform";
	$("articleListForm").submit();
}

function moveModifyForm()
{
	$("articleListForm").method = "get";
	$("articleListForm").act.value = "modifyform";
	$("articleListForm").submit();
}

function moveListForm(page)
{
	if (page == null) page = 0;
	$("articleListForm").method = "get";
	$("articleListForm").act.value = "list";
	$("articleListForm").submit();
}

function moveCateListForm(cate)
{
	$("articleListForm").cmna_no.value = cate;
	$("articleListForm").method = "get";
	$("articleListForm").act.value = "list";
	$("articleListForm").submit();
}

var submit = 0;
function checkForm()
{
	var f = $("update_form");
	if (!checkFormEle(f))
	{
		return;
	}

//	if (ChkEle(f.cmnt_image.value, "C") && !isImage(f.cmnt_image.value))
//	{
//		error_msg("이미지화일은 gif, jpg, png만 등록가능합니다.");
//		return;
//	}

	f.act.value = "post";
	submitForm();
}

function checkUpdateForm()
{
	var f = $("update_form");
	if (!checkFormEle(f))
	{
		return;
	}

	f.act.value = "modify";
	submitForm();
}

function checkReplyForm()
{
	var f = $("update_form");
	if (!checkFormEle(f))
	{
		return;
	}

//	if (ChkEle(f.cmnt_image.value, "C") && !isImage(f.cmnt_image.value))
//	{
//		error_msg("이미지화일은 gif, jpg, png만 등록가능합니다.");
//		return;
//	}

	f.act.value = "reply";
	submitForm();
}

function submitForm()
{
	var f = $("update_form");
	var fl = $("articleListForm");

	var actMsg = (f.act.value == "post") ? "등록" : (f.act.value == "reply" ? "답변" : "수정");

	if (submit == 1)
	{
		alert(actMsg + "처리중입니다.\n\n응답이 없는경우 게시물" + actMsg + "을 다시해주세요.");
		return;
	}
	submit = 1;

	new Ajax.Request(f.action, {
		method: 'post',
		encoding: 'utf-8',
		parameters: f.serialize(true),
		onSuccess: function(transport) {
			xmlDoc = transport.responseText.evalJSON(true);
			if (xmlDoc.msg == "OK")
			{
				alert("게시물이 " + actMsg + "되었습니다.");
				if (f.act.value == "post")
				{
					moveListForm(fl.page.value);
				}
				else
				{
					moveListbodyForm();
				}
			}
			else
			{
				alert(xmlDoc.msg);
			}
			submit = 0;
		}
	});
}

function checkDeleteForm()
{
	var f = $("articleListForm");

	if (submit == 1)
	{
		alert("삭제처리중입니다.\n\n응답이 없는경우 게시물삭제을 다시해주세요.");
		return;
	}

	if (!confirm("삭제하신 데이터는 복구하실 수 없습니다.\n\n정말로 삭제하시겠습니까?"))
	{
		return;
	}

	submit = 1;

	f.method = "post";
	f.act.value = "delete";

	new Ajax.Request(f.action, {
		method: 'post',
		encoding: 'utf-8',
		parameters: f.serialize(true),
		onSuccess: function(transport) {
			submit = 0;
			xmlDoc = transport.responseText.evalJSON(true);

			if (xmlDoc.msg == "OK")
			{
				alert("게시물이 삭제되었습니다.");
				moveListForm(f.page.value);
			}
			else
			{
				alert(xmlDoc.msg);
			}
		}
	});
}


//	window.onload = function()
function setHtmlEditor()
{
	var oFCKeditor = new FCKeditor('fr_mv_contents');
	oFCKeditor.Width = "650px;"
	oFCKeditor.Height = "250px;"
	oFCKeditor.ReplaceTextarea();
}

function uploadScreenShot()
{
	var mv_file = Trim($('fr_mv_file').value);
	if (mv_file == '') return error_msg("첨부화일을 첨부해주세요.", $('fr_mv_file'));
	if (!isImage(mv_file)) return error_msg("첨부화일은 이미지만 가능합니다.", $('fr_mv_file'));

	// 인증번호
	if(!ChkEle($("fr_auth2").value, "C", 4, 4)) return error_msg("화일업로드를 위한 인증번호를 입력해주세요.", $("fr_auth2"));
	if ( $("fr_auth2").value.length != 4 ) return error_msg("인증번호를 정확하게 입력해주세요.", $("fr_auth2"));

	$('fileUploadForm').act.value = "post_file";
	closeLayer('screenShot');

	$('fileUploadForm').submit();

	$('fr_mv_file').value = "";
	$("fr_auth2").value = "";
	$("fr_mv_thumb").value = "";
}

function viewScreenShot(img)
{
	var curr_date = new Date()
	var time = curr_date.getTime();
	$("upload_auth_image").src = "/files/makeAuthImage2.html?" + time;

	if (img != "")
	{
		$("img_screenShot").src = "/files/viewTmpImage.html?img=" + img + "&" + time;
		$("fr_mv_thumb").value = img;
	}
}

