var Tag_NoSubmit

function go_category(Sels,URL,mode) {
	var ca = Sels.options[Sels.selectedIndex].value;
	var url = URL+ca;
	PageNavi(url,mode);
}

function selectall(TheForm) {
	for(i=0; i<TheForm.elements.length; i++) {
		if(TheForm.elements[i].type == "checkbox" && TheForm.elements[i].name == "id[]") {
			TheForm.elements[i].checked = true;
		}
	}
}

function unselectall(TheForm) {
	for(i=0; i<TheForm.elements.length; i++) {
		if(TheForm.elements[i].type == "checkbox" && TheForm.elements[i].name == "id[]") {
			TheForm.elements[i].checked = false;
		}
	}
}

function submitselected(TheForm,opt) {
	var find = 0;
	for(i=0; i<TheForm.elements.length; i++) {
		if(TheForm.elements[i].type == "checkbox" && TheForm.elements[i].name == "id[]" && TheForm.elements[i].checked == true) {
			find = 1;
			break;
		}
	}
	if(!find) {
		alert("삭제할 게시물을 선택하세요.");
		return false;
	}
	TheForm.submit();
}

function PageNavi(URL,mode) {
	if(mode == "list") {
		document.location.href=URL;
	} if(mode == "view") {
		_PageNavi('bbs_skin_view_defaults_list',URL+"&act="+mode);
	}
}

function _PageNavi(id,URL) {
	var Obj = $(id);
	if(Obj) {
		var _url = URL.split("?");
		var url = _url[0];
		var pars = _url[1];
		var sObj = new Ajax.Updater(
			{success: Obj},
			url,
			{
				method: 'get',
				parameters: pars
			}
		);
	}
}

function checkWrite(TheForm) {
	if(Tag_NoSubmit) {
		Tag_NoSubmit = 0;
		return false;
	}
	if(TheForm.subject.value == "") {
		alert("제목을 입력하세요.");
		TheForm.subject.focus();
		return false;
	}
	if(TheForm.name.value == "") {
		alert("이름을 입력하세요.");
		TheForm.name.focus();
		return false;
	}
	var p = $('bbs_passwd');
	if(p && p.value == "") {
		alert("비밀번호를 입력하세요.");
		p.focus();
		return false;
	}
	/* SEditor */
	if(oEditors) {
		oEditors[0].exec("UPDATE_IR_FIELD", []);
	}
	if(TheForm.content.value == "") {
		alert("내용을 입력하세요.");
		TheForm.content.focus();
		return false;
	}
	return true;
}

function check_html(obj) {
	var c_h;
	if(!obj.checked) {
		obj.value=1;
	} else {
		c_h = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 내용중 줄바뀐 곳을 <br />테그로 자동 변환하는 기능입니다.");
		if(!c_h) {
			obj.value=1;
		} else {
			obj.value=2;
		}
	}
}

function _tag_search(URL,tag) {
	var url = URL+"?s_mode[0]=tag&s_arg="+tag;
	document.location.href=url;
}

function EditTag(tagIdx) {
	var _liEl = $('bbs_skin_write_tag').getElementsByTagName('li')[tagIdx];
	if(_liEl) {
		var _inputEl = _liEl.getElementsByTagName('input')[0];
		var tag = _inputEl.value;
		_inputEl.remove();
		var _spanEl = _liEl.getElementsByTagName('span')[0];
		_spanEl.remove();
		var _aEl = _liEl.getElementsByTagName('a')[0];
		_aEl.remove();
		var __inputEl = document.createElement('input');
		__inputEl.setAttribute("type","text");
		__inputEl.setAttribute("value",tag);
		if(!__inputEl.attachEvent) {
			__inputEl.setAttribute("onblur","EditTagSubmit("+tagIdx+");");
			__inputEl.setAttribute("onkeypress","handleEnter(event,'edit',"+tagIdx+",'"+tag+"');");
		} else {
			__inputEl.onblur = new Function("EditTagSubmit("+tagIdx+");");
			__inputEl.onkeypress = new Function("handleEnter(event,'edit',"+tagIdx+",'"+tag+"');");
		}
		_liEl.replaceChild(__inputEl, _inputEl);
		__inputEl.focus();
	}
}

function EditTagSubmit(tagIdx) {
	var _liEl = $('bbs_skin_write_tag').getElementsByTagName('li')[tagIdx];
	if(_liEl) {
		var _inputEl = _liEl.getElementsByTagName('input')[0];
		var tag = _inputEl.value;
		replaceTag(_liEl,tag,tagIdx);
	}
}

function DelTag(tagIdx) {
	var _liEl = $('bbs_skin_write_tag').getElementsByTagName('li')[tagIdx];
	if(_liEl) _liEl.remove();
}

function rDelTag(URL,id,tagID) {
	var url = URL;
	var pars = "?id="+id+"&mode=tag2post&act=delete&tagID="+tagID;
	var sObj = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: _rDelTag,
			onFailure: FailureAddTag
		}
	);
}

function _rDelTag(sRequest) {
	if(sRequest.responseXML) {
		var channelList = sRequest.responseXML.getElementsByTagName('maybbs2_channel');
		if(!channelList.length) return false;
		var title = getNodeValues(channelList[0].getElementsByTagName('title')[0]);  
		if(title == "Invalid Tag") {
			var desc = getNodeValues(channelList[0].getElementsByTagName('description')[0]);
			alert(desc);
			return false;
		} else if(title == "Tag Manager") {
			var code = getNodeValues(channelList[0].getElementsByTagName('code')[0]);
			var id = getNodeValues(channelList[0].getElementsByTagName('id')[0]);
			var nodeList = sRequest.responseXML.getElementsByTagName('maybbs2_item');
			if(nodeList.length) {
				var node = nodeList[0];
				var tagID = getNodeValues(node.getElementsByTagName('tagID')[0]);
				var tid = "EditTag_"+id+"_"+tagID;
				var _liEl = $(id);
				if(_liEl) _liEl.remove();
			}
		}
	}
}

function addTag() {
	var _liEls = $('bbs_skin_write_tag').getElementsByTagName('li');
	var _liEl = _liEls[_liEls.length-1];
	if(_liEl) {
		var tag = _liEl.getElementsByTagName('input')[0].value;
		if(tag) {
			if(checkDup(_liEls,tag) == false) return false;
			_addTag(_liEl,tag,_liEls.length-1);
		}
	}
}

function raddTag(URL,id) {
	var _inputEl = $('addTag_'+id);
	if(!_inputEl) return false;
	var tag = trim(_inputEl.value);
	if(!tag) {
		alert("태그를 입력하세요");
		return false;
	}

	var _liEls = $('EditTag_'+id).getElementsByTagName('li');
	for(i=0; i< _liEls.length; i++) {
		var _sp = _liEls[i].getElementsByTagName('span')[0];
		var txt = trim(_sp.innerHTML);
		if(txt == tag) {
			alert("중복된 태그입니다.");
			return false;
		}
	}
	raddTagProc(URL,id,tag);
}

function raddTagProc(URL,id,tag) {
	var url = URL;
	var pars = "mode=tag2post&id="+id+"&act=add&tag="+tag;
	var sObj = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: _raddTag,
			onFailure: FailureAddTag
		}
	);
}

function _raddTag(sRequest) {
	if(sRequest.responseXML) {
		var channelList = sRequest.responseXML.getElementsByTagName('maybbs2_channel');
		if(!channelList.length) return false;
		var title = getNodeValues(channelList[0].getElementsByTagName('title')[0]);  
		if(title == "Invalid Tag") {
			var desc = getNodeValues(channelList[0].getElementsByTagName('description')[0]);
			alert(desc);
			return false;
		} else if(title == "Tag Manager") {
			var code = getNodeValues(channelList[0].getElementsByTagName('code')[0]);
			var id = getNodeValues(channelList[0].getElementsByTagName('id')[0]);
			var request_uri = getNodeValues(channelList[0].getElementsByTagName('request_url')[0]);
			var nodeList = sRequest.responseXML.getElementsByTagName('maybbs2_item');
			if(nodeList.length) {
				var node = nodeList[0];
				var tagID = getNodeValues(node.getElementsByTagName('tagID')[0]);
				var tag = getNodeValues(node.getElementsByTagName('tag')[0]);

				var _liEls = $("EditTag_"+id);
				var _liEl = document.createElement('li');
				_liEl.setAttribute("id","EditTag_"+id+"_"+tagID);
				var spanEl = document.createElement('span');
				if(!_spanEl.attachEvent)
					_spanEl.setAttribute("onclick","_tag_search('"+request_uri+"','"+tag+"');");
				else
					_spanEl.onclick = new Function("_tag_search('"+request_uri+"','"+tag+"');");
				var _txtEl = document.createTextNode(tag);
				_spanEl.appendChild(_txtEl);
				_liEl.appendChild(_spanEl);
				var _aEl = document.createElement('a');
				_aEl.setAttribute("href","javascript://");
				_aEl.setAttribute("title",tag+" 삭제");
				if(!_aEl.attachEvent)
					_aEl.setAttribute("onclick","rTegDel('"+request_uri+"',"+id+","+tagID+");");
				else
					_aEl.onclick = new Function("rTegDel('"+request_uri+"',"+id+","+tagID+");");
				var _txtEl = document.createTextNode("x");
				_aEl.appendChild(_txtEl);
				_liEl.appendChild(_aEl);
				_liEls.appendChild(_liEl);

				var _inputEl = $('addTag_'+id);
				_inputEl.value = "";
			}
		}
	}
}

function FailureAddTag(request) {
	return false;
}

function _addTag(_liEl,tag,tagIdx) {
	replaceTag(_liEl,tag,tagIdx);
	var _liEl = document.createElement('li');
	var _liEl = replaceAddTag(_liEl);
	$('bbs_skin_write_tag').appendChild(_liEl);
	_liEl.getElementsByTagName('input')[0].focus();
}

function checkDup(_liEls,tag) {
	if(_liEls.length > 1) {
		for(i=0; i<_liEls.length-1; i++) {
			if(tag == _liEls[i].getElementsByTagName('input')[0].value) {
				_liEls[_liEls.length-1].getElementsByTagName('input')[0].value = "";
				alert("중복된 태그입니다.");
				_liEls[_liEls.length-1].getElementsByTagName('input')[0].focus();
				return false;
			}
		}
	}
	return true;
}

function replaceTag(_liEl,tag,tagIdx) {
	var _cNode = _liEl.childNodes;
	if(_cNode) {
		for(i=_cNode.length-1; i>=0; i--) _liEl.removeChild(_cNode[i]);
	}
	var _inputEl = document.createElement('input');
	_inputEl.setAttribute("type","hidden");
	_inputEl.setAttribute("value",tag);
	_inputEl.setAttribute("name","tag[]");
	_liEl.appendChild(_inputEl);
	var _spanEl = document.createElement('span');
	if(!_spanEl.attachEvent)
		_spanEl.setAttribute("onclick","EditTag("+tagIdx+");");
	else
		_spanEl.onclick = new Function("EditTag("+tagIdx+");");
	_spanEl.appendChild(document.createTextNode(tag));
	_liEl.appendChild(_spanEl);
	var _aEl = document.createElement('a');
	_aEl.setAttribute("href","javascript://");
	_aEl.setAttribute("title","태그삭제");
	if(!_aEl.attachEvent)
		_aEl.setAttribute("onclick","DelTag("+tagIdx+");");
	else
		_aEl.onclick = new Function("DelTag("+tagIdx+");");
	_aEl.appendChild(document.createTextNode("x"));
	_liEl.appendChild(_aEl);
}

function replaceAddTag(_liEl) {
	var _inputEl = document.createElement('input');
	_inputEl.setAttribute("type","text");
	_inputEl.setAttribute("name","tag[]");
	if(!_inputEl.attachEvent) {
		_inputEl.setAttribute("onblur","addTag();");
		_inputEl.setAttribute("onkeypress","handleEnter(event,'add');");
	} else {
		_inputEl.onblur = new Function("addTag();");
		_inputEl.onkeypress = new Function("handleEnter(event,'add');");
	}
	_liEl.appendChild(_inputEl);
	return _liEl;
}

function dummy() {}

function handleEnter(e, flag, tagIdx, tag) {
	var key=e.keyCode || e.which;

	// Enter Key 
	if (key==13) {
		Tag_NoSubmit = 1;
		if(flag=='edit') {
			var _liEl = $('bbs_skin_write_tag').getElementsByTagName('li')[0];
			var _inputEl = _liEl.getElementsByTagName('input')[0];
			if(!_inputEl.attachEvent) {
				_inputEl.setAttribute('onblur', 'javascript:dummy();');
			} else {
				_inputEl.onblur = new Function('javascript:dummy();');
			}

			editTagSubmit(tagIdx);
		} else {
			var _liEls = $('bbs_skin_write_tag').getElementsByTagName('li');
			var _liEl = _liEls[_liEls.length-1];
			var _inputEl = _liEl.getElementsByTagName('input')[0];
			if(_inputEl.value == "") {
				alert("태그를 입력하세요.");
				_inputEl.focus();
				return false;
			}
			if(checkDup(_liEls,_inputEl.value) == false) {
				return false;
			}
			_addTag(_liEl,_inputEl.value,_liEls.length-1);
		}
	} else if (key==27) {
		cancelEdit(flag,tagIdx,tag);
	}
}

function cancelEdit(flag,tagIdx,tag) {
	if(flag == 'edit') {
		var _liEl = $('bbs_skin_write_tag').getElementsByTagName('li')[tagIdx];
		if(_liEl) replaceTag(_liEl,tag);
	} else {
		var _liEls = $('bbs_skin_write_tag').getElementsByTagName('li');
		var _liEl = _liEls[_liEls.length-1];
		var _inputEl = _liEl.getElementsByTagName('input')[0];
		_inputEl.value = "";
	}
}

function rhandleEnter(e, URL, id) {
	var key=e.keyCode || e.which;

	// Enter Key 
	if (key==13) {
		var _inputEl = $('addTag_'+id);
		var tag = trim(_inputEl.value);
		if(tag == "") {
			alert("태그를 입력하세요.");
			_inputEl.focus();
			return false;
		}
		var _liEls = $('EditTag_'+id).getElementsByTagName('li');
		for(i=0; i< _liEls.length; i++) {
			var _sp = _liEls[i].getElementsByTagName('span')[0];
			var txt = trim(_sp.innerHTML);
			if(txt == tag) {
				alert("중복된 태그입니다.");
				return false;
			}
		}
		raddTagProc(URL,id,tag);
		return true;
	} else if (key==27) {
		var _inputEl = $('addTag_'+id);
		_inputEl.value = "";
		return true;
	}
}

function comment_write() {
	var F = $('comment_write_form');
	if(F.name.value == "") {
		alert("이름을 입력하세요");
		F.name.focus();
		return false;
	}
	var p = $('comment_passwd');
	if(p && p.value == "") {
		alert("비밀번호를 입력하세요.");
		p.focus();
		return false;
	}
	if(F.content.value == "") {
		alert("내용을 입력하세요");
		F.content.focus();
		return false;
	}
	// 비밀번호 체크 */
	if(p && (F.act.value == "modify" || F.act.value == "delete" )) {
		var url = F.action;
		var pars = "?mode="+F.mode.value+"&act=check_passwd&no="+F.no.value+"&id="+F.id.value+"&passwd="+p.value;
		var sObj = new Ajax.Request(
			url,
			{
				method: 'post',
				parameters: pars,
				onComplete: CheckPasswdAtWrite,
				onFailure: FailureCheckPasswd
			}
		);
	} else {
		comment_write_act(0);
	}
	return false;
}

function comment_deletes() {
	var F = $('comment_delete_form');
	var p = $('comment_passwd');
	if(p && p.value == "") {
		alert("비밀번호를 입력하세요.");
		p.focus();
		return false;
	}
	if(p) {
		var url = F.action;
		var pars = "?mode="+F.mode.value+"&act=check_passwd&no="+F.no.value+"&id="+F.id.value+"&passwd="+p.value;
		var sObj = new Ajax.Request(
			url,
			{
				method: 'post',
				parameters: pars,
				onComplete: CheckPasswdAtDelete,
				onFailure: FailureCheckPasswd
			}
		);
	} else {
		comment_delete_act();
	}
	return false;
}

function CheckPasswdAtWrite(sRequest) {
	if(sRequest.responseXML) {
    var channelList = sRequest.responseXML.getElementsByTagName('maybbs2_error_channel');
		if(channelList.length) {
			var desc = getNodeValues(channelList[0].getElementsByTagName('desc')[0]);
			alert(desc);
			$('comment_passwd').focus();
			return false;
		} else {
    	var channelList = sRequest.responseXML.getElementsByTagName('maybbs2_channel');
			if(channelList.length) {
				var code = getNodeValues(channelList[0].getElementsByTagName('code')[0]);
				var id = getNodeValues(channelList[0].getElementsByTagName('id')[0]);
				comment_write_act(id ? id : 0);
			} else return false;
		}
	} else return false;
}

function CheckPasswdAtDelete(sRequest) {
	if(sRequest.responseXML) {
    var channelList = sRequest.responseXML.getElementsByTagName('maybbs2_error_channel');
		if(channelList.length) {
			var desc = getNodeValues(channelList[0].getElementsByTagName('desc')[0]);
			alert(desc);
			$('comment_passwd').focus();
			return false;
		} else {
    	var channelList = sRequest.responseXML.getElementsByTagName('maybbs2_channel');
			if(channelList.length) {
				var code = getNodeValues(channelList[0].getElementsByTagName('code')[0]);
				var id = getNodeValues(channelList[0].getElementsByTagName('id')[0]);
				comment_delete_act();
			} else return false;
		}
	} else return false;
}

function comment_write_act(id) {
	var F = $('comment_write_form');
	var url = F.action;
	var pars = "";
	for(i=0; i<F.elements.length; i++) {
		if(F.elements[i].type=="hidden" || F.elements[i].type=="text" || F.elements[i].type=="password" || F.elements[i].type=="textarea")
			pars += (i ? "&" : "?")+F.elements[i].name+"="+F.elements[i].value;
	}
	if(id > 0)
		var cID = $('comment_item_'+id);
	else
		var cID = $('bbs_skin_view_defaults_comment_list');
	var sObj = new Ajax.Updater(
		{success: cID},
		url,
		{
			method: 'post',
			parameters: pars
		}
	);
	for(i=0; i<F.elements.length; i++) {
		if(F.elements[i].type=="text" || F.elements[i].type=="password" || F.elements[i].type=="textarea")
			F.elements[i].value = "";
	}
}

function comment_delete_act() {
	var F = $('comment_delete_form');
	var url = F.action;
	var pars = "";
	for(i=0; i<F.elements.length; i++) {
		if(F.elements[i].type=="hidden" || F.elements[i].type=="password")
			pars += (i ? "&" : "?")+F.elements[i].name+"="+F.elements[i].value;
	}
	var cID = $('bbs_skin_view_defaults_comment_list');
	var sObj = new Ajax.Updater(
		{success: cID},
		url,
		{
			method: 'post',
			parameters: pars
		}
	);
}

function FailureCheckPasswd(request) {
	return false;
}

function comment_modify(URL,no,id,page,mode) {
	var url = URL;
	var pars = "?mode=commentwrite&act="+mode+"&no="+no+"&id="+id+"&comment_page="+page;
	var sID = $('comment_item_'+id);
	if(sID) {
		var sObj = new Ajax.Updater(
			{success: sID},
			url,
			{
				method: 'get',
				parameters: pars
			}
		);
	}
}

function comment_cancel(URL,no,id,page) {
	var url = URL;
	var pars = "?mode=commentwrite&act=view&no="+no+"&id="+id+"&comment_page="+page;
	var sID = $('comment_item_'+id);
	if(sID) {
		var sObj = new Ajax.Updater(
			{success: sID},
			url,
			{
				method: 'get',
				parameters: pars
			}
		);
	}
}

function comment_reply(URL,no,id,page) {
	var _dv = $('comment_item_"+id+"_reply');
	if(!_dv) {
		var cID = $('comment_item_'+id);
		var dv = document.createElement('div');
		dv.setAttribute("id","comment_item_"+id+"_reply");
		cID.appendChild(dv);
	}

	var url = URL;
	var pars = "?mode=commentwrite&act=reply&no="+no+"&id="+id+"&comment_page="+page;
	var sID = $('comment_item_'+id+'_reply');
	if(sID) {
		var sObj = new Ajax.Updater(
			{success: sID},
			url,
			{
				method: 'get',
				parameters: pars
			}
		);
	}
}

function comment_reply_cancel(id) {
	var sID = $('comment_item_'+id+'_reply');
	sID.remove();
}

function preview(URL,width) {
	window.open(URL,'','width='+width+',height=500,scrollbars=yes');
}

