/****************************************************************************************
* ./lib/js/bbs.js
/****************************************************************************************/
/*
* KimsBoard Main Script
*/
//요청된 Url(쿼리스트링 제외)
function getThisFile()
{
//var QuerySplit = location.href.split(\'?\');
//return QuerySplit[0];
return \'./bbs.php\';
}
//요청된 파라미터의 Value
function getUriString(param)
{
return eval(\"document.DataForm.\" + param).value;
}
//공통 URL (제어파라미터 query,uid,p 제외 ; 파라미터값은 getUriString(\'파리미터\') )
function getThisUrl()
{
var d = document.DataForm;
var table = d.table.value;
var query = d.query.value;
var p = d.p.value;
var uid = d.uid.value;
var where = d.where.value;
var keyword = d.keyword.value;
var search_step = d.search_step.value;
var search_type = d.search_type.value;
var category = d.category.value;
var sort = d.sort.value;
var orderby = d.orderby.value;
var grecnum = d.grecnum.value;
var cqurl = getThisFile();
cqurl += table ? \'?table=\' + table : \'\';
cqurl += where ? \'&where=\' + where : \'\';
cqurl += keyword ? \'&keyword=\' + keyword : \'\';
cqurl += search_step? \'&search_step=\' + search_step : \'\';
cqurl += search_type? \'&search_type=\' + search_type : \'\';
cqurl += category ? \'&category=\' + category : \'\';
cqurl += sort ? \'&sort=\' + sort : \'\';
cqurl += orderby ? \'&orderby=\' + orderby : \'\';
cqurl += grecnum ? \'&grecnum=\' + grecnum : \'\';
if (where && keyword)
{
cqurl += \'&search_sql=\' + getSearchSql(where , keyword);
}
return cqurl;
}
//정렬Url (필드명 ASC,DESC지정)
function getSort(field)
{
var d = document.DataForm;
if (d.sort.value == field)
{
if (d.orderby.value == \"DESC\")
{
d.orderby.value = \"\";
}
else {
d.orderby.value = \"DESC\";
}
}
else {
d.sort.value = field;
d.orderby.value = \"DESC\";
}
location.href = getThisUrl() + \'&p=\' + getUriString(\'p\');
}
//마지막페이지수
function LastPage(p)
{
return document.getElementById(\'LastPage\').value;
}
//글보기
function ViewArticle(uid,secret,dbid,tbl,win,e)
{
var url = getThisUrl();
var table = tbl != \'\' ? tbl : getUriString(\'table\');
if(secret != \'\')
{
var CookieSecret = document.getElementById(\'CookieSecret\').value;
var isRoot = document.getElementById(\'isRoot\').value;
var isAdmin = document.getElementById(\'isAdmin\').value;
var mbid = document.getElementById(\'mbid\').value;
if(CookieSecret.indexOf(table + \'_\' + uid + \'_\' ) == -1)
{
if (mbid == \'\' || (mbid != \'\' && mbid != dbid))
{
if (isRoot == \'0\' && isAdmin == \'0\')
{
if (tbl != \'\') document.DataForm.table.value = tbl;
getPassLayer(\'secret\',isRoot,isAdmin,mbid,dbid,uid,0,e);
return false;
}
}
}
}
if (win != \'_win\')
{
location.href = url + \'&query=view&uid=\' + uid + \'&p=\' + getUriString(\'p\');
}
else {
var win = \'./bbs.php?table=\'+table+\'&action=newwin&uid=\' + uid;
window.open(win , \'output_win\',\'width=650,height=600,scrollbars=yes\');
}
}
//목록으로
function getListPage()
{
location.href = getThisUrl() + \'&p=\' + getUriString(\'p\');
}
//일반글쓰기
function getWritePage()
{
location.href = getThisUrl() + \'&query=write\';
}
//답변쓰기
function getReplyPage(uid)
{
location.href = getThisUrl() + \'&query=write&write_type=reply&uid=\' + uid + \'&p=\' + getUriString(\'p\');
}
//패스워드체크 레이어, 수정/삭제
function getPassLayer(que,isRoot,isAdmin,mbid,dbid,uid,ruid,e)
{
if (isRoot != \'0\' || isAdmin != \'0\' || (mbid != \'\' && mbid == dbid))
{
if (que == \'modify\')
{
location.href = getThisUrl() + \'&query=write&write_type=modify&uid=\' + uid + \'&p=\' + getUriString(\'p\');
}
if (que == \'delete\')
{
if(confirm(\'정말로 삭제하시겠습니까? \'))
{
location.href = getThisUrl() + \'&action=delete&uid=\' + uid + \'&p=\' + getUriString(\'p\');
}
}
return false;
}
if(!x) var x = e.pageX ? e.pageX : document.body.scrollLeft+event.clientX;
if(!y) var y = e.pageY ? e.pageY : document.body.scrollTop+event.clientY;
var l = document.getElementById(\'PassCheckLayer\');
var f = document.pass_check_form;
var t = document.getElementById(\'PwLayTitle\');
l.style.display = \'block\';
l.style.left = x - 80;
l.style.top = y + 20;
f.table.value = getUriString(\'table\');
f.action.value = que;
f.uid.value = uid;
f.ruid.value = ruid;
f.p.value = getUriString(\'p\');
if (que == \'delete\')
{
t.innerHTML = \"게시물을 삭제합니다..\";
f.Nparam.value = getThisUrl() + \'&p=\' + getUriString(\'p\');
}
if (que == \'modify\')
{
t.innerHTML = \"게시물을 수정합니다..\";
f.Nparam.value = getThisUrl() + \'&query=write&write_type=modify&p=\' + getUriString(\'p\') + \'&uid=\' + uid;
}
if (que == \'secret\')
{
t.innerHTML = \"비공개 게시물입니다..\";
f.Nparam.value = getThisUrl() + \'&query=view&p=\' + getUriString(\'p\') + \'&uid=\' + uid;
}
if (que == \'cdelete\')
{
t.innerHTML = \"코멘트를 삭제합니다..\";
f.Nparam.value = getThisUrl() + \'&query=view&p=\' + getUriString(\'p\') + \'&uid=\' + uid;
}
f.COMP_PASS.focus();
}
//검색SQL
function getSearchSql(where , keyword)
{
var i;
var SQL = \"\";
var search_type = document.DataForm.search_type.value;
search_type = search_type == \'and\' ? \'AND\' : \'OR\';
if (keyword.indexOf(\' \') == -1 && keyword.indexOf(\',\') == -1)
{
if (where == \"ALL\") return \"BB_NAME LIKE \'%\"+keyword+\"%\' \"+search_type+\" BB_SUBJECT LIKE \'%\"+keyword+\"%\' \"+search_type+\" BB_CONTENT LIKE \'%\"+keyword+\"%\'\";
else return where + \" LIKE \'%\"+keyword+\"%\'\";
}
else {
keyword = keyword.replace(\',\' , \' \')
var key_exp = keyword.split(\' \');
if (where == \"ALL\")
{
for(i = 0; i < key_exp.length - 1; i++)
{
SQL += \"(BB_NAME LIKE \'%\"+key_exp[i]+\"%\' \"+search_type+\" BB_SUBJECT LIKE \'%\"+key_exp[i]+\"%\' \"+search_type+\" BB_CONTENT LIKE \'%\"+key_exp[i]+\"%\') \"+search_type+\" \";
}
SQL += \"(BB_NAME LIKE \'%\"+key_exp[i]+\"%\' \"+search_type+\" BB_SUBJECT LIKE \'%\"+key_exp[i]+\"%\' \"+search_type+\" BB_CONTENT LIKE \'%\"+key_exp[i]+\"%\')\";
}
else {
for(i = 0; i < key_exp.length - 1; i++)
{
SQL += where + \" LIKE \'%\"+key_exp[i]+\"%\' \"+search_type+\" \";
}
SQL += where + \" LIKE \'%\"+key_exp[i]+\"%\'\";
}
return SQL;
}
}
//검색어체크
function getSearchStart()
{
if(getUriString(\'where\') && getUriString(\'keyword\'))
{
getKeywordHighLight();
}
}
//검색결과 하이라이트
function getKeywordHighLight()
{
var where = getUriString(\'where\');
var keyword = getUriString(\'keyword\');
var r,i,s=document.selection.createRange().text;
if(!where || !keyword)
{
return false;
}
keyword = keyword.replace(\',\' , \' \');
var keyexp = keyword.split(\' \');
for ( var j = 0; j < keyexp.length; j++)
{
r = document.body.createTextRange();
for(i = 0; r.findText(keyexp[j]); i++)
{
r.execCommand(\'ForeColor\',\'\',\'#FF0000\');
r.execCommand(\'BackColor\',\'\',\'#FFFF00\');
r.collapse(false);
}
}
}
//카테고리셀렉트
function getCategoryForm(use , sbj , opt , cat , event)
{
if (use)
{
var select = \"\";
var option = opt.split(\',\');
select += \"\";
select += \"\";
document.write(select);
}
else {
document.write(\"\");
}
}
//카테고리이벤트
function getCategoryEvent(obj)
{
location.href = getThisUrl().replace(\'category=\' + getUriString(\'category\') + \'&\' , \'\') + \'&category=\' + obj.value;
}
//비공개체크박스
function getSecretCheck(use , que)
{
if(use == \'checked\')
{
document.write(\"관리자에게만 공개합니다\");
}
else {
document.write(\"\");
}
}
//답변메일발송체크박스
function getRemailCheck(use,email,type)
{
if (use && email && type == \'reply\')
{
document.write(\"\");
document.write(\"이메일로 답변발송\");
}
}
//등록인선택셀렉트
function getIsRootSelect(isRoot,v_LogId)
{
if (isRoot != \'0\' && v_LogId != \'\')
{
document.write(\"\");
if(navigator.userAgent.indexOf(\'Opera\') == -1 && navigator.userAgent.indexOf(\'MSIE\') != -1)
{
getSelectToLayer(document.getElementById(\'writer_select\'),150,\'\');
}
}
}
//비밀번호 입력폼(글쓰기)
function getPasswdInput(wType,secret,pass,name)
{
var passinput = \"\";
if (wType)
{
if (wType == \'reply\')
{
//답변
if (secret == \'checked\')
{
passinput = \"\";
}
else {
passinput = \"\";
}
}
else {
//수정
passinput = \"\";
}
}
else {
//일반글
passinput = \"\";
}
document.write(passinput);
}
//이름,패스워드 입력폼(코멘트)
function getNameInputCmt(mbid,isroot)
{
var f = document.CommentForm;
var wperm = f.write_perm.value;
var yNull = \"\";
var nNull = \"\";
if (mbid != \'\' || isroot != \'0\')
{
if (wperm != \'0\')
{
document.write(nNull);
}
else {
document.write(yNull);
}
}
else {
if (wperm != \'0\')
{
document.write(\" \");
document.write(\" \");
}
else {
document.write(yNull);
}
}
}
//코멘트갯수
function getCommentNum(num)
{
if (num)
{
document.write(\"(\"+num+\"개)\");
}
}
//코멘트삭제 권한
function getCommentDeletePerm(isRoot,isAdmin,v_LogId,skin,uid,rp_id,ruid)
{
var pass = (isRoot != \'0\' || isAdmin != \'0\' || (v_LogId != \'\' && v_LogId == rp_id)) ? 1 : 0;
document.write(\"\");
}
//코멘트삭제
function doCommentDelete(uid,ruid,pass,e)
{
if (pass == 1)
{
if (!confirm(\'\\n정말로 삭제하시겠습니까? \\n\'))
{
return false;
}
var f = document.pass_check_form;
f.table.value = getUriString(\'table\');
f.action.value = \'cdelete\';
f.uid.value = uid;
f.ruid.value = ruid;
f.p.value = getUriString(\'p\');
f.Nparam.value = getThisUrl() + \'&query=view&p=\' + getUriString(\'p\') + \'&uid=\' + uid;
f.submit();
}
else {
getPassLayer(\'cdelete\',0,0,\'\',\'\',uid,ruid,e);
return false;
}
}
//이모션아이콘
function getEmotionIcon(color)
{
var icon = \"\";
icon += \"
\";
icon += \"
\";
for(var i = 1; i < 19; i++)
{
icon += \"
\";
}
icon += \"
\";
icon += \"
\";
document.write(icon);
}
//이모션선택
function getSelectEm(g,color)
{
for(var i = 1; i < 19; i++)
{
if(i == g)
{
document.getElementById(\'emotion_td_\' + i).style.border = \'1 solid gray\';
document.getElementById(\'emotion_td_\' + i).style.background = \'#ffffff\';
document.getElementById(\'emotion_img_\' + i).style.filter = \'none\';
document.CommentForm.RP_EMOTION.value = i;
}
else {
document.getElementById(\'emotion_td_\' + i).style.border = \'1 solid \'+color;
document.getElementById(\'emotion_td_\' + i).style.background = color;
document.getElementById(\'emotion_img_\' + i).style.filter = \'gray()\';
}
}
}
//코멘트필드 리사이즈
function CommentLayResize(que)
{
var area = document.getElementById(\'CommentTextAreaLay\');
var heit = parseInt(area.style.height.replace(\'px\',\'\'));
if (que == \'-\')
{
if (heit - 100 >= 60) area.style.height = heit - 100;
}
else if (que == \'+\')
{
if (heit + 100 <= 600) area.style.height = heit + 100;
}
else {
area.style.height = 60;
}
}
//첨부파일
function LayerUpfile(enable,files,table,uid,where,colnum,type)
{
if(enable)
{
var Layer_Tag = \"\";
var Tmp_FileNum = files.split(\';\');
if (Tmp_FileNum.length > 1)
{
Layer_Tag += \"\";
Layer_Tag += \"
\";
Layer_Tag += \"
\";
Layer_Tag += \"
\";
for (var i = 0; i < Tmp_FileNum.length; i++)
{
if (Tmp_FileNum[i] == \"\") continue;
var fname_arr = getFileName(Tmp_FileNum[i]).split(\'=\');
if(fname_arr[1])
{
Layer_Tag += \"
[1~3번째사진] 조리실과 식당(런치실)의 전경. 아이들이 먹는 음식과 식당에서의 생활모습은 아쉽게도 점심시간과 맞지 않아 촬영을 못했습니다. [4번째사진] 아동회의실(우리나라는 학생회의실이 따로 있는곳이 있나요? 전 아직 못봤는데...) [5~7번째사진] 1학년 작품 [8번째사진] 각자 양치질도구를 담아 놓은 모습. 역시 검소한 모습이죠^^ [9~11째사진] 일본 여교사들의 모습인데 머리모양을 보세요^^ 퍼머 머리는 없죠. 일본에는 미용비용이 엄청 비싸서 퍼머를 하는 여성들이 별로 없다는군요ㅎㅎㅎ [마지막사진] 일본 신사에 걸린 합격을 기원하기 위해 걸어 놓은 패찰입니다. 우리가 절에다 하는 것처럼 일본사람들은 신사에다가 기원을 한답니다.(전범들의 위패가 있는 야스쿠니 신사는 예외...)