/* the M 게시판 통합 script */
//// textarea 처리
setTextarea();

//// 단축키 처리
setKey();

/** 정렬 parameter 자동전환
 * @class mini
 * @param
		$key: 정렬 필드명
 * @require php_self, url_sort
 */
function sort(key) {
	var check = 0;
	if (sort_value.toString().match(new RegExp(key, 'i'))) {
		if (!sort_value.toString().match(new RegExp(key + '!', 'i')))
			check = 1;	
	}

	if (url_sort) {
		url_sort = url_sort.toString().replace(/&amp;/g, '&');
		url_sort += '&sort=' + key + (check ? '!' : ''); 
	}
	else {
		url_sort = '?sort=' + key + (check ? '!' : '');
	}
	
	document.location.href = php_self + url_sort;
}; // END function


/** 글 기능 - 팝업글 - 쿠키저장
 * @class mini
 * @param
		$no: 게시물번호
 */
function popupCookie(no) {
	Cookie.set('popup_' + id + '_' + no, '1', { duration: 1 });
	if ($chk($('popup' + no))) {
		popupClose($('popup' + no));
	}	
}; // END function


/** 글 기능 - 팝업글 - 닫기
 * @class mini
 * @param
		$Obj: 대상객체
 */
function popupClose(Obj) {
	Obj.remove();
	if ($chk($('backPopup'))) {
		var is_popup = 0;
		$$('div[id^=popup]').each(function (item) { is_popup = 1; });
		if (!is_popup) $('backPopup').remove();
	}
}; // END function


/** 이미지 확대보기
 * @class mini
 * @param
		$Obj: 대상 이미지 DOM
 */
function viewImage(Obj) {
	var im = new Element('IMG', {
		'src': Obj.getProperty('src'),
		'styles': {
			'cursor': 'pointer'			
		},
		'events': {
			'click': function () { iiPopup.close() }
		}
	}).inject(document.body);
	
	iiPopup.init({ mode:'div', target:im, width:im.width, height:im.height });	
}; // END function


/** flash 클립보드 복사
 * @class mini
 * @param
		$str: 대상 텍스트
 */
function copyClipboard(str) {
//	if (str && confirm('클립보드에 내용을 복사하시겠습니까?')) {
	if (str) {
		var flashcopier = 'flashcopier';
		if(!document.getElementById(flashcopier)) {
		  var divholder = document.createElement('div');
		  divholder.id = flashcopier;
		  document.body.appendChild(divholder);
		}
		document.getElementById(flashcopier).innerHTML = '';
		var divinfo = '<embed src="'+miniDir+'js/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(str)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
		document.getElementById(flashcopier).innerHTML = divinfo;

		error('클립보드에 내용을 복사했습니다');
	}
}; // END function


/*- 글기능 - 사용자목록
 * @class mini
 * description macroListPrint DOM이 있으면 정의됨
 */
if ($chk($('macroListPrint'))) {
	var macroListPrint = $('macroListPrint');
	var ul = new Element('ul').inject(macroListPrint);
	
	$$('span[id^=macroListTitle]').each(function (item) {
		var no = item.id.toString().replace(/^macroListTitle/i, '');
		ul.innerHTML += '<li id=\'macroListLi' + no + '\' class=\'macroListOff\' onclick=\'toggleMacroList('+no+');\'>' + item.innerHTML + '</li>';
	});
	
	function toggleMacroList (no) {
		ul.getChildren().each(function (item) {
			item.removeClass('macroListOn');
		});
		
		toggleMenu('macroListMent' + no);
		var Obj = $('macroListLi' + no);
		if ($chk(Obj)) Obj.toggleClass('macroListOn');
		
		window.scrollTo(0,0);
	}
	
	toggleMacroList(1);
}


//// 코멘트 하이라이트
try {
	var cNo;
} catch (e) {};

if ($chk(cNo)) {
	var highlight_cmt = $('tableRowsCmt_' + cNo);
	if ($chk(highlight_cmt)) {
		highlight_cmt.toggleClass('cmt_highlight');
		var pos = highlight_cmt.getCoordinates();
		var topSize = pos.top - parseInt((window.opera ? window.innerHeight : window.getSize().size.y) / 2);

		if (window.safari) {
			window.addEvent('load', function () {
				(function () { window.scrollTo(0, topSize); }).delay(500);
			});
		}
		else {
			window.scrollTo(0, topSize);
		}
	}
}

//// 글기능 처리
$$('.fold').each(function (item) {
	item.addEvent('click', function () {
		this.getNext().toggle();
	});
});

$$('.alertDiv').each(function (item) {
	item.addEvent('click', function () {
		this.getNext().toggle();
		this.remove();
	});
});


//// 기능 설명 추가
if ($chk($('help_features'))) {
	$$('.use').each(function (item) {
		item.addEvent('mouseover', function () {
			var name = this.getProperty('for').toString().replace(/[0-9]/g, '');
			var ment = '';
			switch (name) {
				case 'notice':
					ment = '공지사항으로 적용된 글은 목록의 제일 처음에 표시됩니다. 공지사항은 비밀글이 될 수 없습니다.';
					break;
				case 'secret':
					ment = '비밀글은 자신과 비밀글을 볼 수 있는 권한을 가진 회원만 볼 수 있습니다.';
					break;
				case 'alert':
					ment = '놀랄 위험이 있는 내용이나 스포일러성 내용이 포함되어 있는 경우 경고를 사용하시면 내용을 보기를 원하는 사용자만 열람할 수 있습니다.';
					break;
				case 'robot':
					ment = '구글이나 네이버등의 검색엔진에 이 글이 노출되지 않기를 원하신다면 체크 해주세요. 검색로봇이 수집하지 못하게 설정 합니다.';
					break;
				case 'ready':
					ment = '글을 아직 작성중이거나 내용이 더 포함되어야 할 경우 준비기능을 켜놓고 작업하실 수 있습니다. 준비기능이 활성화 되어 있는 상태에서는 다른 사용자가 이 게시물의 내용이나 첨부파일등을 볼 수 없습니다.';
					break;
				case 'memo':
					ment = '이 게시물에 코멘트가 달렸을 때 쪽지로 알림을 받기를 원하신다면 체크해 주세요.';
					break;
				case 'autobr':
					ment = '엔터를 줄바꿈 태그로 인식합니다. HTML로만 작성해야 할 경우 체크를 해제해 주세요.';
					break;
				case 'popup':
					ment = '해당글을 팝업글로 지정합니다.';
					break;
				case 'issue':
					ment = '해당글을 이슈글로 지정합니다.';
					break;
				case 'saveImage':
					ment = '본문 내용중 이미지를 자동으로 저장합니다. 글쓰기시 시간이 오래 걸릴 수 있습니다.';
					break;
				default:
					ment = '기능에 마우스를 올리시면 각 기능들의 설명을 보여줍니다.';
			}
			$('help_features').innerHTML = ment;
		});
	});
}


/** 추천, 반대하기
 * @class mini
 * @param
		-mode: [vote|hate]
 * @description: 통과 후 hate_count, vote_count DOM 의 innerHTML 숫자를 1 증가
 * @require miniDir
 */
function votes(setting) {
	ajaxForm({
		'url': miniDir + 'ajax.php',
		'onComplete': function (data) {
			__script(data);
			if ($chk($(setting['mode']+'_count'))) {
				$(setting['mode']+'_count').innerHTML = parseInt($(setting['mode']+'_count').innerHTML) + 1; 
			}
		},
		values: setting
	});
}; // END function


/** 태그 뽑기
 * @class mini
 * @param
		$Obj: 폼 Element
		$str: 태그를 뽑을 문자열
 */
function addTag(Obj, str) {
	var tagName = 'tagBox_' + Obj.name;
	if (!$chk($(tagName))) {
		new Element('DIV', {
			'id': tagName,
			'styles': {
				fontSize: '0'
			}
		}).injectAfter($(Obj.elements['tag']).getNext());
	}
	
	var tmp = Obj.elements['tag'].value;
	$$('.tag').each(function (item) {
		tmp += item.innerHTML;
	});

	if (!tmp.toString().match(new RegExp(str, 'i'))) {
		$(tagName).innerHTML += "<div class='tag' onclick='addTagMent($(\"" + Obj.getProperty('id') + "\"), \""+str+"\"); $(this).remove();' alt='이 태그를 추가합니다'><span class='chatText'>"+str+"</span></div>";
	}
}; // END function


/** 태그값 추가
 * @class mini
 * @param
		$Obj: 폼 Element
		$str: 추가할 문자열
 */
function addTagMent(Obj, str) {
	if (!Obj.elements['tag'].value.toString().match(new RegExp(str, 'i'))) {
		var tmp = Obj.elements['tag'].value ? ',' + str : str;
		Obj.elements['tag'].value += tmp;
	}
}; // END function


/** 태그뽑기 ajax
 * @class mini
 * @param
		$Obj: 폼 Element
 * @return 
 */
function getTags(Obj) {
	var tagName = 'tagBox_' + Obj.name;

	if ($chk(Obj.elements['tag'])) {
		ajaxForm({
			'url': miniDir + 'ajax.php',
			'onComplete': function (data) {
				if ($chk($(tagName))) {
					$(tagName).innerHTML = '';
				}
				
				for (var val in data['data']) {
					addTag(Obj, data['data'][val]);
				}
			},
			'values': {
				'mode': 'tag',
				'value': $(Obj.elements['ment']).getValue()	
			}					
		});
	}
}; // END function


/** 트랙백 주소받기
 * @class mini
 * @param
		$post_no: 게시물번호
 */
function getTrackback(post_no) {
	var tmp = new Element();

	if (!permit_trackback_url) {
		error('이 글에 대한 트랙백을 보낼 권한이 없습니다');
		return false;
	}

	var submitAction = function () {
		ajaxForm({
			'url': miniDir + 'ajax.php',
			'onComplete': function (data) {
				if ($chk($('trackback_cube_url'))) {
					$('trackback_cube_url').innerHTML = data['data'];
				}

				__script(data);
			},
			'values': {
				'mode': 'trackback_url',
				'id': id,
				'no': post_no,
				'cube': this.value
			}
		});		
	};

	if (is_trackback_cube && !tmp.setCube(submitAction)) {
		return false;
	}
	
	if (!is_trackback_cube) {
		submitAction();
	}

}; // END function


/** 저작권 설정
 * @param
		$obj: Form
 */
function setLicense(frm) {
	// 저작권 설정
	if ($chk(frm.elements['license_sample']) && $chk(frm.elements['license'])) {
		$(frm.elements['license_sample']).addEvent('change', function () {
			var Obj = this;

			$$('div[id^=license_comment_]').each(function (item) { 
				item.toggle('hide');
							
				if (Obj.value == item.id.toString().replace(/^license_comment_/i, '')) {
					item.toggle('show');
				} 
			});
					
			switch (this.value) {
				default:
					frm.elements['license'].value = this.value;
			}
		});
		
		var tmp_target = $('license_comment_' + $(frm.elements['license_sample']).getValue());
		if ($chk(tmp_target)) {
			tmp_target.toggle('show');
		}

		if ($chk(frm.elements['ccl01'])) {
			$$('input[id^=ccl0]').each(function (item) {
				item.addEvent('click', function () {
					setCCL(this);
				});
			});
		}

		frm.isLicense = true;
	}
}; // END function

// CCL 함수
function setCCL (target) {
	var frm = target.form;

	if ($chk(frm.elements['license'])) {
		var val = frm.elements['license'].value.toString().replace(/^CCL/i, '');
		var output = '';

		if (target.id.toString().getLength() > 1) {
			$$('input[id^=ccl0]').each(function (item) {
				var no = parseInt(item.id.toString().replace(/^ccl([0-9]+)_[01]/i, '$1'));
				var check = item.id.toString().replace(/^ccl[0-9]+_([01])/i, '$1');

				if (item.checked == true) {
					switch (no) {
						case 1:
							if (check != 1) output += '$';
							break;

						case 2:
							if (check != 1) output += '=';
							break;
					}
				}
			});
		}
		
		frm.elements['license'].value = 'CCL' + output;
	}
};


/*- 검색폼
 * @class mini
 * @require quick, and, is_cmt
 */
if ($chk($('form_search'))) {
	var frm_search = $('form_search');
		
	// 폼 기본 값 적용
	frm_search.setValue({ quick: quick, and: and, is_cmt: is_cmt });

	// 툴
	var tool_search = $('tool_search');
	if ($chk(tool_search)) {
		tool_search.setStyles({
			position: 'absolute',
			opacity: 0.85,
			display: 'block'
		});

		var toolSize = tool_search.getSize();
		var toolPos = tool_search.getCoordinates();
		var quickPos = $(frm_search.elements['quick']).getCoordinates();
		tool_search.toggle('hide');		
	
		$(frm_search.elements['quick']).addEvents({
			focus: function () {
				tool_search.toggle('show');
										
				var pos = this.getCoordinates();
				toolSize = tool_search.getSize(); 
				
				var top = pos.top - toolSize.size.y <= 0 ? pos.bottom : pos.top - toolSize.size.y;
				var left = (pos.left + toolSize.size.x >= window.getWidth()) ? pos.left - (pos.left + toolSize.size.x - window.getWidth()) : pos.left; 

				tool_search.setStyles({
					'top': top,
					'left': left  
				});
				
				toolPos = tool_search.getCoordinates();
				quickPos = this.getCoordinates();						
			},
			
			keydown: function (e) {
				var event = setEvent(e);
				if (event.key == 'tab') {
					tool_search.toggle('hide');
				}
			}
		});
		
		window.document.addEvent('mouseup', function (e) {
			var event = setEvent(e);
			
			if (!checkMouseIn(window.ie ? event.client : event.page, toolPos) && !checkMouseIn(window.ie ? event.client : event.page, quickPos)) {
				if ($chk(event.target) && !$(event.target).isTag('input')) {
					tool_search.toggle('hide');
				}
			}
		});
	}

	// 폼전송 액션
	frm_search.submitAction = function () {
		var value = $(this.elements['quick']).getValue();
		
		if (value && value.getLength() < 4) {
			error('검색어는 4bytes이상(한글2자, 영문4자) 입력해주세요');
			return false;
		}

		// 로딩 띄우기
		$('loading').toggle('show');
		$('loading').center();

		// 폼 가리기
		this.setStyle('visibility', 'hidden');
		this.submit();
	}; // END function
	
	// 폼 설정
	frm_search.setForm();
}


/*- 글목록폼
 * @class mini
 * @require quick, and, is_cmt
 */
if ($chk($('form_list'))) {
	var frm_list = $('form_list');

	// 툴
	var tool = $('tool');
	if ($chk(tool)) {		
		tool.setStyles({
			position: 'absolute',
			display: 'none'	
		});

		$$('.ii_list').each(function (item) {
			var no = item.id.toString().replace(/^tableRows\_/i, '');
			item.addEvents({
				mouseover: function (e) {
					var event = setEvent(e);
					
					// 체크박스 찾기
					var Obj = findCheckbox(this);
	
					// 체크박스가 켜진 상태면 툴을 위치
					if (Obj && Obj.checked) {
						showTool(this, tool, event);
					}
				},
				click: function (e) {
					var event = setEvent(e);
					
					// checkbox 를 찾는 과정
					if (!event.target.nodeName.toString().match(/(a|img|input|label|textarea|select|b|u|i|strong|strike|span|font)/i)) {
						new Event(e).stop();
		
						var Obj = findCheckbox(this);
						
						if (Obj) {
							Obj.checked = Obj.checked ? false : true;
	
							// 체크박스가 켜진 상태면 툴을 위치
							if (Obj.checked) {
								showTool(this, tool, event);
							}
							else {
								tool.toggle('hide');
							}
						}
					}
				}
			}); // addEvents
		}); // TR 처리
	} // END if Tool
} // END if form


/*- 댓글 폼
 * @class mini
 * @require write_comment, write_comment_div
 */
if ($chk($('form_cmt'))) {
	var frm_cmt = $('form_cmt');
	var write_comment = $('write_comment');
	var write_comment_div = $('write_comment_div');


	// 초기화
	function setCmt() {
		frm_cmt = $('form_cmt');
		write_comment = $('write_comment');
		write_comment_div = $('write_comment_div');

		if ($chk(cmt_data)) { frm_cmt.setValue(cmt_data); }

		// 메일 ajax
		if ($chk(frm_cmt.elements['mail'])) {
			$(frm_cmt.elements['mail']).setMail();
		}
			
//		// 툴 설정
		var tool_cmt = $('tool_cmt');
		if ($chk(tool_cmt)) {
			tool_cmt.setStyles({
				position: 'absolute',
				display: 'none'
			});
		
			//// TR 처리
			$$('.ii_cmt_list').each(function (item) {
				// 툴 보이기 처리
				var no = item.id.toString().replace(/^tableRowsCmt\_/i, '');
				item.addEvents({
					'mouseover': function () {
						$('cmtTools_' + no).toggle('show');
					},
					'mouseout': function () {
						$('cmtTools_' + no).toggle('hide');
					}
				});

				item.addEvents({
					mouseover: function (e) {
						var event = setEvent(e);
						
						// 체크박스 찾기
						var Obj = findCheckbox(this);

						// 체크박스가 켜진 상태면 툴을 위치
						if (Obj && Obj.checked) {
							showTool(this, tool_cmt, event);
						}
					},
					click: function (e) {
						var event = setEvent(e);
						
						// checkbox 를 찾는 과정
						if (!$(event.target).isTag("a|img|input|label|textarea|select")) {
							new Event(e).stop();			
							var Obj = findCheckbox(this);

							if (Obj) {
								Obj.checked = Obj.checked ? false : true;
		
								// 체크박스가 켜진 상태면 툴을 위치
								if (Obj.checked) {
									showTool(this, tool_cmt, event);
								}
								else {
									tool_cmt.toggle('hide');
								}
							}
						}
					}
				}); // END event
			}); // END TR
		} // END if tool_cmt

	};

	setCmt();


	// 답변
	function replys (no) {
		if (no && $chk(write_comment) && $chk(write_comment_div)) {			
			if (frm_cmt.elements['reply'].value == no) {
				if (frm_cmt.elements['mode'].value)
					setDefault();

				if ($chk($('comment_status'))) $('comment_status').innerHTML = '쓰기'; 
				frm_cmt.elements['reply'].value = '';
				frm_cmt.elements['mode'].value = '';
				frm_cmt.elements['sel'].value = '';
				write_comment.inject(write_comment_div);
			}
			else {
				if (frm_cmt.elements['mode'].value)
					setDefault();
				
				if ($chk($('comment_status'))) $('comment_status').innerHTML = '댓글쓰기';					
				frm_cmt.elements['reply'].value = no;
				frm_cmt.elements['mode'].value = '';
				frm_cmt.elements['sel'].value = '';
				write_comment.inject($('write_comment' + no));
			}

			if ($chk(cmt_data)) {
				frm_cmt.setValue(cmt_data);
			}
		}
	};
			
	// 수정
	function edits (no) {
		if (no && $chk(write_comment) && $chk(write_comment_div)) {
			if (frm_cmt.elements['sel'].value == no) {
				if ($chk($('comment_status'))) $('comment_status').innerHTML = '쓰기';
				frm_cmt.elements['reply'].value = '';
				frm_cmt.elements['mode'].value = '';
				frm_cmt.elements['sel'].value = '';
				setDefault();
				write_comment.inject(write_comment_div);
			}
			else {
				ajaxForm({
					'url': miniDir + 'ajax.php',
					'onComplete': function (data) {
						if ($chk($('comment_status'))) $('comment_status').innerHTML = '수정';
						frm_cmt.elements['sel'].value = no;
						frm_cmt.elements['mode'].value = 'modify';
						frm_cmt.elements['reply'].value = '';
						write_comment.inject($('write_comment' + no));
						
						if ($chk(data['data']['link'])) {
							for (var item in data['data']['link']) {
								$(frm_cmt.elements['link['+item+']']).setValue(data['data']['link'][item]);
							}
						}

						if ($chk(data['data']['field'])) {
							for (var item in data['data']['field']) {
								$(frm_cmt.elements['field['+item+']']).setValue(data['data']['field'][item]);
							}
						}

						// 파일 설정 변경
						try {
							var params = iiCmtFileUpload.setting.params;
							params.no = no;
							iiUpload.editParam(iiCmtFileUpload.setting['idx'], 'params', params);
							$('fileUpload').updateParam();
						}
						catch (e) {}

						// 파일 리셋
						try {
							if ($chk(iiCmtFileUpload.arr) && iiCmtFileUpload.arr.length > 0) {
								for (var item in iiCmtFileUpload.arr) {
									if ($chk(iiCmtFileUpload.arr[item]['no'])) {
										iiCmtFileDelItem(iiCmtFileUpload.arr[item]['no'], 1);
									}
								}
							}
						}
						catch (e) {}

						// 파일 추가
						try {							
							if ($chk(data['data']['file_data'])) {
								for (var item in data['data']['file_data']) {
									iiCmtFileAddItem(data['data']['file_data'][item]);
								}
							}
						}
						catch (e) {}
						
						frm_cmt.setValue(data['data']);
					},
					'values': {
						'mode': 'cmt',
						'id': frm_cmt.elements['id'].value,
						'no' : no
					}
				});
			}
		}
	};
		
	// 삭제
	function dels(no) {
		if (no && confirm("댓글을 삭제하시겠습니까?")) {
			ajaxForm({
				'Obj': frm_cmt,
				'action': miniDir + 'cmt.x.php',
				'values': {
					'mode': 'del',
					'sel': no
				}
			});
		}
	};
		
	// 폼 내용 초기화
	function setDefault() {
		frm_cmt.setValue({
			'name': '',
			'pass': '',
			'mail': '',
			'ment': '',
			'tag': '',
			'category': '[1]',
			'memo': 1,
			'autobr': 1
		});

		// 파일 설정 변경
		try {
			var params = iiCmtFileUpload.setting.params;
			params.no = 0;
			iiUpload.editParam(iiCmtFileUpload.setting['idx'], 'params', params);
			$('fileUpload').updateParam();
		}
		catch (e) {}

		// 파일 리셋
		try {
			if ($chk(iiCmtFileUpload.arr) && iiCmtFileUpload.arr.length > 0) {
				for (var item in iiCmtFileUpload.arr) {
					if ($chk(iiCmtFileUpload.arr[item]['no'])) {
						iiCmtFileDelItem(iiCmtFileUpload.arr[item]['no'], 1);
					}
				}
			}
		}
		catch (e) {}
	};

	// 댓글 페이지 이동
	function moveCmtPage(page) {
		ajaxForm({
			'url': 'mini.php' + url_cmt,
			'json': 0,
			'onComplete': function (data) {
				$('commentDiv').innerHTML = data;
				setCmt();
			},
			'values': {
				'id': id,
				'no': no,
				'cmt': 1,
				'cPage': page
			}
		});
	};

	// 라이센스 설정
	setLicense(frm_cmt);

	var pass = '';

	// 폼전송 액션
	frm_cmt.submitAction = function () {
		// 큐브 설정
		if (!this.setCube()) return false;
		
		// 비밀번호 입력
		if ($chk(frm_cmt.elements['pass']) && frm_cmt.elements['pass'].value) {
			// 비밀번호 암호화
			if (!$chk(frm_cmt.elements['pass_encode'])) {
				new Element("INPUT", {
					name: 'pass_encode',
					type: 'hidden'
				}).inject(frm_cmt);
			}
			
			frm_cmt.pass_encode.value = (frm_cmt.elements['mode'].value == 'modify') ? hex_md5($(frm_cmt.pass).secure(secure_pass) + '|' + ip + '|' + session_id) : frm_cmt.pass_encode.value = $(frm_cmt.pass).secure(secure_pass);						
			pass = frm_cmt.pass.value;
			frm_cmt.pass.value = '';
		}

		// 폼 가리기
		frm_cmt.setStyle('visibility', 'hidden');
		
		ajaxForm({
			'Obj': frm_cmt,
			'onComplete': function (data) {
				frm_cmt.setStyle('visibility', 'visible');
				__script(data);
			},
			'onError': function (data) {
				frm_cmt.setStyle('visibility', 'visible');
				__script(data);

				if ($chk(frm_cmt.elements['pass']))
					frm_cmt.pass.value = pass;
				if ($chk(frm_cmt.elements['cube']) && data['msg'].toString().match(/^\*/)) {
					frm_cmt.elements['cube'].value = '';
				}
			},
			'onFailure': function () {
				frm_cmt.setStyle('visibility', 'visible');

				if ($chk(frm_cmt.elements['pass']))
					frm_cmt.pass.value = pass;
				if ($chk(frm_cmt.elements['cube']) && data['msg'].toString().match(/^\*/)) {
					frm_cmt.elements['cube'].value = '';
				}
			}
		});
	}; // END function
	
	// 폼 설정
	frm_cmt.setForm();
} // END if form_cmt

//// 댓글폼이 정의되지 않았을 때
else {
	var replys = new Function();
	var edits = new Function();
	var dels = new Function();
}


/*- 글 쓰기폼
 * @class mini
 * @require 
 */
if ($chk($('form_write'))) {
	var frm_write = $('form_write');

	// 시간지정
	if ($chk($('date_notice')) && $chk(frm_write.elements['notice'])) {
		$(frm_write.elements['notice']).addEvent('click', function () {
			$('date_notice').toggle((this.checked == true ? "show" : "hide"));
		});
		$('date_notice').toggle((frm_write.elements['notice'].checked == true ? "show" : "hide"));
	}
	if ($chk($('date_popup')) && $chk(frm_write.elements['popup'])) {
		$(frm_write.elements['popup']).addEvent('click', function () {
			$('date_popup').toggle((this.checked == true ? "show" : "hide"));
		});
		$('date_popup').toggle((frm_write.elements['popup'].checked == true ? "show" : "hide"));
	}
	if ($chk($('date_issue')) && $chk(frm_write.elements['issue'])) {
		$(frm_write.elements['issue']).addEvent('click', function () {
			$('date_issue').toggle((this.checked == true ? "show" : "hide"));
		});
		$('date_issue').toggle((frm_write.elements['issue'].checked == true ? "show" : "hide"));		
	}

	// 글 내용 자동저장
	if (autosave_time) {
		autosave_time = parseInt(autosave_time);		
		var autoSavePeriod = '';
		
		var autosave = function () {
			if ($chk(frm_write.elements['ment']) && frm_write.elements['ment'].value) {
				ajaxForm({
					'url': miniDir + 'ajax.php',
					'onFailure': function () {
						error('자동 저장에 실패 했습니다. 자동 저장이 해제됩니다.');
						$clear(autoSavePeriod);
					},
					'values': {
						'mode': 'autosave',
						'value': $(frm_write.elements['ment']).getValue()
					}
				});
			}
		}
		
		window.addEvent('load', function () {
			autoSavePeriod = autosave.periodical(autosave_time);
		});
	}
		
	// 저장된 내용 부르기
	function autosave_load() {
		if ($chk(frm_write.elements['ment']) && confirm("자동 저장된 내용을 현재 내용에 적용합니다. 원래 내용이 손실될 수 있습니다.")) {
			ajaxForm({
				'url': miniDir + 'ajax.php?mode=load',
				'onComplete': function (data) {
					data['data'] = data['data'].toString().replace(/\<\!\-\-nl2br\-\-\>/ig, "\n");
					$(frm_write.elements['ment']).setValue(data['data']);
				}
			});
		}
	};

	// 라이센스 설정
	setLicense(frm_write);

	// 메일 ajax 설정
	if ($chk(frm_write.elements['mail'])) {
		$(frm_write.elements['mail']).setMail();
	}

	// 비밀번호 입력 폼 숨기기
	if (pass_encode && mode) {
		if ($chk(frm_write.elements['pass'])) {
			$(frm_write.elements['pass']).setProperty('disabled', 'disabled');
		} 
	}

	var pass = '';

	// 폼 전송
	frm_write.submitAction = function () {
		// 큐브 설정
		if (!this.setCube()) return false;

		// 비밀번호 입력
		if ($chk(frm_write.elements['pass']) && frm_write.elements['pass'].value) {
			// 비밀번호 암호화
			if (!$chk(frm_write.elements['pass_encode'])) {
				new Element("INPUT", {
					name: 'pass_encode',
					type: 'hidden'
				}).inject(frm_write);
			}

			frm_write.pass_encode.value = (mode == 'modify') ? hex_md5($(frm_write.pass).secure(secure_pass) + '|' + ip + '|' + session_id) : $(frm_write.pass).secure(secure_pass);
			pass = frm_write.pass.value;
			frm_write.pass.value = '';
		}

		// 폼 가리기
		frm_write.setStyle('visibility', 'hidden');

		// 폼
		ajaxForm({
			'Obj': frm_write,
			'onError': function (data) {
				frm_write.setStyle('visibility', 'visible');
				__script(data);

				if ($chk(frm_write.elements['pass'])) frm_write.pass.value = pass;
				if ($chk(frm_write.elements['cube']) && data['msg'].toString().match(/^\*/)) {
					frm_write.elements['cube'].value = '';
				}
			},
			'onComplete': function (data) {
				frm_write.setStyle('visibility', 'visible');
				__script(data);
			},
			'onFailure': function () {
				frm_write.setStyle('visibility', 'visible');
				error('폼 전송 에러. 잠시 후에 다시 시도해 주세요');

				if ($chk(frm_write.elements['pass'])) frm_write.pass.value = pass;
				if ($chk(frm_write.elements['cube']) && data['msg'].toString().match(/^\*/)) {
					frm_write.elements['cube'].value = '';
				}
			}
		});
	};

	// 폼 설정
	frm_write.setForm();
}


/**
 * 파일 업로드 링크
 * @class mini
 * @required miniDir, id, frm_cmt.sel, pass_encode, iiSize['file']
 */
function fileLink () {
	iiPopup.init({ url: miniDir + 'file.php?id=' + id + '&mode=comment&no=' + frm_cmt.elements['sel'].value + '&pass_encode=' + pass_encode, width:iiSize['file'][0], height:iiSize['file'][1] });	
}; // END function


/**
 * 행동
 * @class mini 
 * @param
		#Obj: 폼
		$type: [del|manage]
		-mode: type 대신 mode값에 들어갈 값
		-only: 체크박스가 한개만 선택되어야 한다
 * @form mode, no[]
 */
function actions(Obj, type, setting) {
	if (!$chk(Obj)) {
		error('폼이 정의되지 않았습니다');
		return false;
	}

	if (!$chk(setting)) var setting = {};
	
	Obj.elements['mode'].value = $chk(setting['mode']) ? setting['mode'] : type;

	// 체크박스 여부
	var check = 0;
	$$('input[name^=no]').each(function (item) {
		if (item.type == 'checkbox' && item.checked) {
			check++;
		}
	});

	if (!check) {
		error('한개 이상 선택 하셔야 합니다');
		return false;
	}

	if ($chk(setting['only']) && $check != 1) {
		error('한개만 선택해 주세요');
		return false;
	}
	
	Obj.action = '';
	Obj.target = '';
	
	switch (type) {
		// 글 삭제
		case 'post_del':
			if (confirm("선택된 글들을 삭제하시겠습니까?")) {
				ajaxForm({
					'Obj': Obj,
					'action': miniDir + 'write.x.php?mode=del',
					'values': {
						'mode': 'del'
					}
				});
			}
			break;
		
		// 글 관리
		case 'post_manage':
			Obj.action = miniDir + 'manage.php';
			Obj.target = 'iiPopupIframeName';
			Obj.elements['mode'].value = 'post';
			Obj.submit();
			break;
		
		// 댓글 삭제
		case 'cmt_del':
			if (confirm("선택된 댓글들을 삭제하시겠습니까?")) {
				ajaxForm({
					'Obj': Obj,
					'action': miniDir + 'cmt.x.php',
					'values': {
						'mode': 'del'
					}
				});
			}
			break;
		
		// 댓글 관리
		case 'cmt_manage':
			Obj.action = miniDir + 'manage.php';
			Obj.target = 'iiPopupIframeName';
			Obj.elements['mode'].value = 'comment';
			Obj.submit();
			break;

		default:
			error('정의되지 않은 모드 입니다');
	}
}; // END function