/**
 * @file   modules/bodex/js/bodex.js
 * @author zero	(zero@nzeo.com)
 * @brief  bodex 모듈의	javascript
 **/

/* 글쓰기 작성후 */
function completeDocumentInserted(ret_obj) {
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];
	var	mid	= ret_obj['mid'];
	var	document_srl = ret_obj['document_srl'];
	var	category_srl = ret_obj['category_srl'];

	//alert(message);

	var	url;
	if(!document_srl)
	{
		url	= current_url.setQuery('mid',mid).setQuery('act','');
	}
	else
	{
		url	= current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
	}
	if(category_srl) url = url.setQuery('category',category_srl);
	location.href =	url;
}

/* 글 삭제 */
function completeDeleteDocument(ret_obj) {
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];
	var	mid	= ret_obj['mid'];
	var	page = ret_obj['page'];

	var	url	= current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl','');
	if(page) url = url.setQuery('page',page);

	//alert(message);

	location.href =	url;
}

/* 검색	실행 */
function completeSearch(fo_obj,	params)	{
	fo_obj.submit();
}

function completeVote(ret_obj) {
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];
	alert(message);
	location.href =	location.href;
}

// 현재	페이지 reload
function completeReload(ret_obj) {
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];

	location.href =	location.href;
}

/* 댓글	글쓰기 작성후 */
function completeInsertComment(ret_obj)	{
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];
	var	mid	= ret_obj['mid'];
	var	document_srl = ret_obj['document_srl'];
	var	comment_srl	= ret_obj['comment_srl'];

	var	url	= current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
	if(comment_srl)	url	= url.setQuery('rnd',comment_srl)+"#comment_"+comment_srl;

	//alert(message);

	location.href =	url;
}

/* 댓글	삭제 */
function completeDeleteComment(ret_obj)	{
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];
	var	mid	= ret_obj['mid'];
	var	document_srl = ret_obj['document_srl'];
	var	page = ret_obj['page'];

	var	url	= current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
	if(page) url = url.setQuery('page',page);

	//alert(message);

	location.href =	url;
}

/* 트랙백 삭제 */
function completeDeleteTrackback(ret_obj) {
	var	error =	ret_obj['error'];
	var	message	= ret_obj['message'];
	var	mid	= ret_obj['mid'];
	var	document_srl = ret_obj['document_srl'];
	var	page = ret_obj['page'];

	var	url	= current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
	if(page) url = url.setQuery('page',page);

	//alert(message);

	location.href =	url;
}

/* 카테고리	이동 */
function doChangeCategory()	{
	var	category_srl = jQuery('#bodex_category option:selected').val();
	location.href =	decodeURI(current_url).setQuery('category',category_srl);
}

/* 스크랩 */
function doScrap(document_srl) {
	var	params = new Array();
	params["document_srl"] = document_srl;
	exec_xml("member","procMemberScrapDocument", params, null);
}

/**
* phiDel (FOXB.KR) : 10.01.01
* 클립보드 복사
**/
function doCopyClipboard(text)
{
	if (window.clipboardData)
	{
		window.clipboardData.setData("Text", text);
		alert("The text is copied to your clipboard...");
	}
	else
	{
		prompt("press CTRL+C copy it to clipboard...",text);
	}
	return false;
}

/**
* phiDel (FOXB.KR) : 10.01.01
* 태그 목록을 보여주고 클릭시 입력됨
**/
function viewBodexTags(mid) {
	popopen("./?mid="+mid+"&act=dispBodexGetTags", 'TagList');
}

function setSelectTag(tag) {
	if(!opener) {
		window.close();
		return;
	}
	var _obj = opener.document.getElementsByName('tags');
	if(!_obj[0]) {
		alert('not tag input element');
		return;
	}
	_obj[0].value += tag+',';
}

/**
* phiDel (FOXB.KR) : 10.01.24
* 문서 작성 자바 함수, 간단한 쓰기폼에 활용
**/
var ALERT_MESSAGES = new Array();

function doDocumentSimpleWrite(form_obj) {
	var validator = xe.getApp('validator')[0];
	if(!validator){
		ord_doDocumentSimpleWrite(form_obj);
		 return false;
	 }

	validator.cast('ADD_FILTER', ['insert', {
		'nick_name': {required:true,maxlength:20},
		'password': {required:true},
		'email_address': {maxlength:250,rule:'email'},
		'homepage': {maxlength:250},
		'title': {required:true,minlength:1,maxlength:250},
		'content': {required:true},
		'category_srl': {required:true,rule:'number'}
	}]);

	for (var key in ALERT_MESSAGES){
		validator.cast('ADD_MESSAGE', [key, ALERT_MESSAGES[key]]);
	}

	if(!form_obj.elements['_filter']) jQuery(form_obj).prepend('<input type="hidden" name="_filter" value="" />');
	form_obj.elements['_filter'].value = 'insert';

	validator.cast('ADD_CALLBACK', ['insert', function(form){
		var params={}, responses=[], elms=form.elements, data=jQuery(form).serializeArray();
		jQuery.each(data, function(i, field){
			var val = jQuery.trim(field.value);
			if(!val) return true;
			if(/\[\]$/.test(field.name)) field.name = field.name.replace(/\[\]$/, '');
			if(params[field.name]) params[field.name] += '|@|'+val;
			else params[field.name] = field.value;
		});
		responses = ['error','message','mid','document_srl','category_srl'];
		exec_xml('bodex','procBodexInsertDocument', params, completeDocumentInserted, responses, params, form);
	}]);
	validator.cast('VALIDATE', [form_obj,'insert']);
	return false;
}
/**
* phiDel (FOXB.KR) : 10.01.16
* 문서 작성 자바 함수, 간단한 쓰기폼에 활용 (XE 1.3.2 이하 버전용)
**/
function ord_doDocumentSimpleWrite(form_obj) {
	for (var key in ALERT_MESSAGES){
		alertMsg[key] = ALERT_MESSAGES[key];
	}

	var oFilter = new XmlJsFilter(form_obj, "bodex", "procBodexInsertDocument", completeDocumentInserted);
	if(form_obj.nick_name) oFilter.addFieldItem("nick_name",true,1,20,"","");
	if(form_obj.password) oFilter.addFieldItem("password",true,1,50,"","");
	if(form_obj.email_address) oFilter.addFieldItem("email_address",false,1,250,"","");
	if(form_obj.homepage) oFilter.addFieldItem("homepage",false,1,250,"","");
	if(form_obj.title) oFilter.addFieldItem("title",true,1,250,"","");
	if(form_obj.category_srl) oFilter.addFieldItem("category_srl",true,1,20,"","number");
	if(form_obj.content) oFilter.addFieldItem("content",true,1,0,"","");
	oFilter.addResponseItem("error");
	oFilter.addResponseItem("message");
	oFilter.addResponseItem("mid");
	oFilter.addResponseItem("document_srl");
	oFilter.addResponseItem("category_srl");

	return oFilter.proc();
}

/**
* phiDel (FOXB.KR) : 10.01.16
* 문서 상태 변경
**/
function doChangeDocumentState(target_srl, state_value) {
    var params = new Array();
    params['target_srl'] = target_srl;
    params['cur_mid'] = current_mid;
    params['state_value'] = state_value;
    exec_xml('bodex', 'procChangeDocumentState', params, completeCallModuleAction);
}

