/****************************************************************************************
* ./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 search_sql = d.search_sql.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;
*/
if (!search_sql && where && keyword) //사용자수정
{
search_sql = getSearchSql(where , keyword);
}
if (search_sql != '')
{
cqurl += '&search_sql=' + search_sql; //사용자수정
}
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, cate)
{
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 += "
언양읍성 남문인 영화루(映花樓) 복원과 상권활성화, 남천 친수공간 조성 등에 모두 120억원이 투입되는 '언양소도읍 육성사업'이 이르면 오는 10월 본격 착공된다. 하지만 이 사업의 최대 관심사인 영화루 복원은 편입부지 보상과 1년가량 소요될 실시설계기간 등을 감안하면 실제 복원공사는 내년 하반기에나 가능할 것으로 보인다.
울주군은 23일 오전 10시 언양읍사무소 2층 대회의실에서 '언양소도읍 육성사업 기본설계용역 최종보고회'를 갖고 구체적인 사업 방향을 사실상 확정했다. 이날 최종보고회에는 박상종 언양소도읍육성사업 추진위원장과 주민자치위원, 자생단체장, 주민, 설계용역을 맡은 (주)부광엔지니어링 관계자 등 50여명이 참석했다.
최종보고에서 부광엔지니어링 김경화 상무는 "언양소도읍 육성사업의 기본설계 방향은 오는 2018년을 목표연도로, 언양 시가지를 읍성(邑城)과 장터가 어우러진 울산서부권의 중심으로 육성하는데 초점을 맞췄다"고 밝혔다. 김 상무는 이어 언양을 역사문화가 살아 숨쉬는 문화관광도시로 조성해 인접한 고속철 역세권과 조화롭게 상생할 수 있도록 육성하는데 추진전략을 맞춰 언양읍성복원 활성화와 언양재래시장 활성화, 한우특화거리 조성, 남천 친수공간 조성 등 4대 전략사업을 추진하겠다고 설명했다. 각 전략사업별 투자계획은 전체 사업비 120억원 중 50억원이 투입되는 언양읍성 복원활성화사업에는 영화루 복원(33억원)과 남문지 앞 가로조성(7억원), 관광안내센터 건립(4억원), 인접건물 리모델링(6억원) 등의 부대사업이 추진된다.
이와 함께 15억원이 투자되는 한우특화거리 조성을 위해서는 특화거리꾸미기 사업과 골목길 개선, 동종음식점 입점지원 등에 각각 5억원씩 투입될 예정이다. 언양재래시장 활성화에는 시장 개선 12억원과 테마형 재래시장 조성 8억원 등 모두 20억원이 투입된다. 아울러 남천 친수공간 조성에는 주차장정비 4억원과 친수공간 조성 11억원, 하천유지수 도수사업 20억원 등 모두 35억원이 투자된다. 울주군은 이날 최종보고된 기본설계용역 결과를 바탕으로 실시설계에 들어가는 한편, 다음달부터는 영화루 복원사업의 편입토지에 대한 보상작업에 나서는 등 사업에 박차를 가하기로 했다. 각 사업별 실시설계는 언양재래시장 개선이 2개월 후인 8월말께, 남천 친수공간과 한우특구거리 조성은 3~5개월 후, 읍성 영화루는 문화재청 심사 등을 거쳐야 하기 때문에 1년 가량 소요될 것으로 예상된다. 최성환기자