Compare commits

...
12 Commits
147 changed files with 46612 additions and 241 deletions

No files matched your search

+1
View File
@@ -10,3 +10,4 @@ cheditor*/
ckeditor43/ ckeditor43/
log/ log/
g5_tree/ g5_tree/
naver*.html
-1
View File
@@ -10,7 +10,6 @@ $menu['menu100'] = array (
array('100900', '캐시파일 일괄삭제',G5_ADMIN_URL.'/cache_file_delete.php', 'cf_cache', 1), array('100900', '캐시파일 일괄삭제',G5_ADMIN_URL.'/cache_file_delete.php', 'cf_cache', 1),
array('100910', '캡챠파일 일괄삭제',G5_ADMIN_URL.'/captcha_file_delete.php', 'cf_captcha', 1), array('100910', '캡챠파일 일괄삭제',G5_ADMIN_URL.'/captcha_file_delete.php', 'cf_captcha', 1),
array('100920', '썸네일파일 일괄삭제',G5_ADMIN_URL.'/thumbnail_file_delete.php', 'cf_thumbnail', 1), array('100920', '썸네일파일 일괄삭제',G5_ADMIN_URL.'/thumbnail_file_delete.php', 'cf_thumbnail', 1),
array('100930', '네이버 신디케이션 핑',G5_SYNDI_URL.'/ping.php', 'cf_syndi_ping', 1),
array('100500', 'phpinfo()', G5_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo') array('100500', 'phpinfo()', G5_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo')
); );
?> ?>
-4
View File
@@ -30,8 +30,4 @@ delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제 // 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table); rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table);
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.adm.board_delete.inc.php';
?> ?>
+2 -2
View File
@@ -708,7 +708,7 @@ $frm_submit .= '</div>';
<tr> <tr>
<th scope="row"><label for="bo_comment_min">최소 댓글수 제한</label></th> <th scope="row"><label for="bo_comment_min">최소 댓글수 제한</label></th>
<td> <td>
<?php echo help('댓글 입력시 최소 글자수, 최대 글자수를 설정. 0을 입력하면 검사하지 않음') ?> <?php echo help('댓글 입력시 최소 글자수를 설정. 0을 입력하면 검사하지 않음') ?>
<input type="text" name="bo_comment_min" value="<?php echo $board['bo_comment_min'] ?>" id="bo_comment_min" class="numeric frm_input" size="4"> <input type="text" name="bo_comment_min" value="<?php echo $board['bo_comment_min'] ?>" id="bo_comment_min" class="numeric frm_input" size="4">
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
@@ -721,7 +721,7 @@ $frm_submit .= '</div>';
<tr> <tr>
<th scope="row"><label for="bo_comment_max">최대 댓글수 제한</label></th> <th scope="row"><label for="bo_comment_max">최대 댓글수 제한</label></th>
<td> <td>
<?php echo help('댓글 입력시 최소 글자수, 최대 글자수를 설정. 0을 입력하면 검사하지 않음') ?> <?php echo help('댓글 입력시 최대 글자수를 설정. 0을 입력하면 검사하지 않음') ?>
<input type="text" name="bo_comment_max" value="<?php echo $board['bo_comment_max'] ?>" id="bo_comment_max" class="numeric frm_input" size="4"> <input type="text" name="bo_comment_max" value="<?php echo $board['bo_comment_max'] ?>" id="bo_comment_max" class="numeric frm_input" size="4">
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
-4
View File
@@ -385,9 +385,5 @@ if ($all_fields) {
delete_cache_latest($bo_table); delete_cache_latest($bo_table);
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.adm.board_form_update.php';
goto_url("./board_form.php?w=u&bo_table={$bo_table}&amp;{$qstr}"); goto_url("./board_form.php?w=u&bo_table={$bo_table}&amp;{$qstr}");
?> ?>
-4
View File
@@ -65,9 +65,5 @@ if ($w == '') {
alert('제대로 된 값이 넘어오지 않았습니다.'); alert('제대로 된 값이 넘어오지 않았습니다.');
} }
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.adm.boardgroup_form_update.php';
goto_url('./boardgroup_form.php?w=u&amp;gr_id='.$gr_id.'&amp;'.$qstr); goto_url('./boardgroup_form.php?w=u&amp;gr_id='.$gr_id.'&amp;'.$qstr);
?> ?>
+36 -1
View File
@@ -130,6 +130,16 @@ if(!isset($config['cf_add_meta'])) {
ADD `cf_add_meta` TEXT NOT NULL AFTER `cf_analytics` ", true); ADD `cf_add_meta` TEXT NOT NULL AFTER `cf_analytics` ", true);
} }
if (!isset($config['cf_syndi_token'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_syndi_token` VARCHAR(255) NOT NULL AFTER `cf_add_meta` ", true);
}
if (!isset($config['cf_syndi_except'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_syndi_except` TEXT NOT NULL AFTER `cf_syndi_token` ", true);
}
if(!isset($config['cf_sms_use'])) { if(!isset($config['cf_sms_use'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}` sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_sms_use` varchar(255) NOT NULL DEFAULT '' AFTER `cf_cert_limit`, ADD `cf_sms_use` varchar(255) NOT NULL DEFAULT '' AFTER `cf_cert_limit`,
@@ -167,6 +177,12 @@ if(!isset($config['cf_optimize_date'])) {
ADD `cf_optimize_date` date NOT NULL default '0000-00-00' AFTER `cf_popular_del` ", true); ADD `cf_optimize_date` date NOT NULL default '0000-00-00' AFTER `cf_popular_del` ", true);
} }
// 카카오톡링크 api 키
if(!isset($config['cf_kakao_js_apikey'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_kakao_js_apikey` varchar(255) NOT NULL DEFAULT '' AFTER `cf_googl_shorturl_apikey` ", true);
}
if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic"; if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic";
if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic"; if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic";
@@ -492,7 +508,7 @@ if ($config['cf_icode_id'] && $config['cf_icode_pw']) {
<tr> <tr>
<th scope="row"><label for="cf_analytics">방문자분석 스크립트</label></th> <th scope="row"><label for="cf_analytics">방문자분석 스크립트</label></th>
<td colspan="3"> <td colspan="3">
<?php echo help('방문자분석 스크립트 코드를 입력합니다. 예) 구글 애널리스틱'); ?> <?php echo help('방문자분석 스크립트 코드를 입력합니다. 예) 구글 애널리틱스'); ?>
<textarea name="cf_analytics" id="cf_analytics"><?php echo $config['cf_analytics']; ?></textarea> <textarea name="cf_analytics" id="cf_analytics"><?php echo $config['cf_analytics']; ?></textarea>
</td> </td>
</tr> </tr>
@@ -503,6 +519,21 @@ if ($config['cf_icode_id'] && $config['cf_icode_pw']) {
<textarea name="cf_add_meta" id="cf_add_meta"><?php echo $config['cf_add_meta']; ?></textarea> <textarea name="cf_add_meta" id="cf_add_meta"><?php echo $config['cf_add_meta']; ?></textarea>
</td> </td>
</tr> </tr>
<tr>
<th scope="row"><label for="cf_syndi_token">네이버 신디케이션 연동키</label></th>
<td colspan="3">
<?php if (!function_exists('curl_init')) echo help('<b>경고) curl이 지원되지 않아 네이버 신디케이션을 사용할수 없습니다.</b>'); ?>
<?php echo help('네이버 신디케이션 연동키(token)을 입력하면 네이버 신디케이션을 사용할 수 있습니다.<br>연동키는 <a href="http://webmastertool.naver.com/" target="_blank"><u>네이버 웹마스터도구</u></a> -> 네이버 신디케이션에서 발급할 수 있습니다.') ?>
<input type="text" name="cf_syndi_token" value="<?php echo $config['cf_syndi_token'] ?>" id="cf_syndi_token" class="frm_input" size="70">
</td>
</tr>
<tr>
<th scope="row"><label for="cf_syndi_except">네이버 신디케이션 제외게시판</label></th>
<td colspan="3">
<?php echo help('네이버 신디케이션 수집에서 제외할 게시판 아이디를 | 로 구분하여 입력하십시오. 예) notice|adult<br>참고로 그룹접근사용 게시판, 글읽기 권한 2 이상 게시판, 비밀글은 신디케이션 수집에서 제외됩니다.') ?>
<input type="text" name="cf_syndi_except" value="<?php echo $config['cf_syndi_except'] ?>" id="cf_syndi_except" class="frm_input" size="70">
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -1031,6 +1062,10 @@ if ($config['cf_icode_id'] && $config['cf_icode_pw']) {
<td> <td>
<input type="text" name="cf_googl_shorturl_apikey" value="<?php echo $config['cf_googl_shorturl_apikey'] ?>" id="cf_googl_shorturl_apikey" class="frm_input"> <a href="http://code.google.com/apis/console/" target="_blank" class="btn_frmline">API Key 등록하기</a> <input type="text" name="cf_googl_shorturl_apikey" value="<?php echo $config['cf_googl_shorturl_apikey'] ?>" id="cf_googl_shorturl_apikey" class="frm_input"> <a href="http://code.google.com/apis/console/" target="_blank" class="btn_frmline">API Key 등록하기</a>
</td> </td>
<th scope="row"><label for="cf_kakao_js_apikey">카카오 Javascript API Key</label></th>
<td>
<input type="text" name="cf_kakao_js_apikey" value="<?php echo $config['cf_kakao_js_apikey'] ?>" id="cf_kakao_js_apikey" class="frm_input"> <a href="http://developers.kakao.com/" target="_blank" class="btn_frmline">앱 등록하기</a>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
+3
View File
@@ -53,6 +53,8 @@ $sql = " update {$g5['config_table']}
cf_intercept_ip = '".trim($_POST['cf_intercept_ip'])."', cf_intercept_ip = '".trim($_POST['cf_intercept_ip'])."',
cf_analytics = '{$_POST['cf_analytics']}', cf_analytics = '{$_POST['cf_analytics']}',
cf_add_meta = '{$_POST['cf_add_meta']}', cf_add_meta = '{$_POST['cf_add_meta']}',
cf_syndi_token = '{$_POST['cf_syndi_token']}',
cf_syndi_except = '{$_POST['cf_syndi_except']}',
cf_member_skin = '{$_POST['cf_member_skin']}', cf_member_skin = '{$_POST['cf_member_skin']}',
cf_use_homepage = '{$_POST['cf_use_homepage']}', cf_use_homepage = '{$_POST['cf_use_homepage']}',
cf_req_homepage = '{$_POST['cf_req_homepage']}', cf_req_homepage = '{$_POST['cf_req_homepage']}',
@@ -125,6 +127,7 @@ $sql = " update {$g5['config_table']}
cf_icode_server_ip = '{$_POST['cf_icode_server_ip']}', cf_icode_server_ip = '{$_POST['cf_icode_server_ip']}',
cf_icode_server_port = '{$_POST['cf_icode_server_port']}', cf_icode_server_port = '{$_POST['cf_icode_server_port']}',
cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}', cf_googl_shorturl_apikey = '{$_POST['cf_googl_shorturl_apikey']}',
cf_kakao_js_apikey = '{$_POST['cf_kakao_js_apikey']}',
cf_facebook_appid = '{$_POST['cf_facebook_appid']}', cf_facebook_appid = '{$_POST['cf_facebook_appid']}',
cf_facebook_secret = '{$_POST['cf_facebook_secret']}', cf_facebook_secret = '{$_POST['cf_facebook_secret']}',
cf_twitter_key = '{$_POST['cf_twitter_key']}', cf_twitter_key = '{$_POST['cf_twitter_key']}',
+2 -2
View File
@@ -176,7 +176,7 @@ $colspan = 5;
$comment_link = ""; $comment_link = "";
$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' "); $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' ");
$name = get_sideview($row2['mb_id'], cut_str($row2['wr_name'], $config['cf_cut_name']), $row2['wr_email'], $row2['wr_homepage']); $name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']);
// 당일인 경우 시간으로 표시함 // 당일인 경우 시간으로 표시함
$datetime = substr($row2['wr_datetime'],0,10); $datetime = substr($row2['wr_datetime'],0,10);
$datetime2 = $row2['wr_datetime']; $datetime2 = $row2['wr_datetime'];
@@ -193,7 +193,7 @@ $colspan = 5;
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' "); $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
$row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' "); $row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
$name = get_sideview($row3['mb_id'], cut_str($row3['wr_name'], $config['cf_cut_name']), $row3['wr_email'], $row3['wr_homepage']); $name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']);
// 당일인 경우 시간으로 표시함 // 당일인 경우 시간으로 표시함
$datetime = substr($row3['wr_datetime'],0,10); $datetime = substr($row3['wr_datetime'],0,10);
$datetime2 = $row3['wr_datetime']; $datetime2 = $row3['wr_datetime'];
+1 -1
View File
@@ -62,7 +62,7 @@ include_once('./admin.head.php');
<tr> <tr>
<th scope="row"><label for="mb_email">E-mail</label></th> <th scope="row"><label for="mb_email">E-mail</label></th>
<td> <td>
<?php echo help("메일 주소에 단어 포함 (예 : @sir.co.kr)") ?> <?php echo help("메일 주소에 단어 포함 (예 : @".preg_replace('#^(www[^\.]*\.){1}#', '', $_SERVER['HTTP_HOST']).")") ?>
<input type="text" name="mb_email" value="<?php echo $mb_email ?>" id="mb_email" class="frm_input" size="50"> <input type="text" name="mb_email" value="<?php echo $mb_email ?>" id="mb_email" class="frm_input" size="50">
</td> </td>
</tr> </tr>
+2 -2
View File
@@ -352,8 +352,8 @@ this.form.mb_intercept_date.value=this.form.mb_intercept_date.defaultValue; }">
<script> <script>
function fmember_submit(f) function fmember_submit(f)
{ {
if (!f.mb_icon.value.match(/\.(gif|jp['e']g|png)$/i) && f.mb_icon.value) { if (!f.mb_icon.value.match(/\.gif$/i) && f.mb_icon.value) {
alert('아이콘이 이미지 파일이 아닙니다. (bmp 제외)'); alert('아이콘은 gif 파일만 가능합니다.');
return false; return false;
} }
+1 -1
View File
@@ -34,7 +34,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>"> <input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>">
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
<p>쇼핑몰 초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p> <p>초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p>
</div> </div>
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
+1 -1
View File
@@ -43,7 +43,7 @@ if($error) {
alert("<?php echo strip_tags($msg); ?>"); alert("<?php echo strip_tags($msg); ?>");
//document.location.href = "<?php echo $url; ?>"; //document.location.href = "<?php echo $url; ?>";
<?php if ($url) { ?> <?php if ($url) { ?>
document.location.replace("<?php echo $url; ?>"); document.location.replace("<?php echo str_replace('&amp;', '&', $url); ?>");
<?php } else { ?> <?php } else { ?>
//alert('history.back();'); //alert('history.back();');
history.back(); history.back();
+1 -1
View File
@@ -127,7 +127,7 @@ if (isset($wr_id) && $wr_id) {
; ;
} else { } else {
// 글읽기 포인트가 설정되어 있다면 // 글읽기 포인트가 설정되어 있다면
if ($board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0) if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.'); alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], "{$board['bo_subject']} {$wr_id} 글읽기", $bo_table, $wr_id, '읽기'); insert_point($member['mb_id'], $board['bo_read_point'], "{$board['bo_subject']} {$wr_id} 글읽기", $bo_table, $wr_id, '읽기');
-4
View File
@@ -93,10 +93,6 @@ while ($row = sql_fetch_array($result))
// 파일테이블 행 삭제 // 파일테이블 행 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$row['wr_id']}' "); sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$row['wr_id']}' ");
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.bbs.delete.php';
$count_write++; $count_write++;
} }
else else
-4
View File
@@ -106,10 +106,6 @@ for ($i=count($tmp_array)-1; $i>=0; $i--)
// 파일테이블 행 삭제 // 파일테이블 행 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$row['wr_id']}' "); sql_query(" delete from {$g5['board_file_table']} where bo_table = '$bo_table' and wr_id = '{$row['wr_id']}' ");
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.bbs.delete_all.php';
$count_write++; $count_write++;
} }
else else
+5 -3
View File
@@ -64,11 +64,9 @@ if(is_file($skin_file)) {
$faq_list = array(); $faq_list = array();
$stx = trim($stx); $stx = trim($stx);
$sql_search = '';
if($stx) { if($stx) {
$sql_search = " and ( INSTR(fa_subject, '$stx') > 0 or INSTR(fa_content, '$stx') > 0 ) "; $sql_search = " and ( INSTR(fa_subject, '$stx') > 0 or INSTR(fa_content, '$stx') > 0 ) ";
$category_stx = '&amp;stx='.$stx;
} }
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
@@ -92,8 +90,12 @@ if(is_file($skin_file)) {
order by fa_order , fa_id order by fa_order , fa_id
limit $from_record, $page_rows "; limit $from_record, $page_rows ";
$result = sql_query($sql); $result = sql_query($sql);
while ($row=sql_fetch_array($result)){ for ($i=0;$row=sql_fetch_array($result);$i++){
$faq_list[] = $row; $faq_list[] = $row;
if($stx) {
$faq_list[$i]['fa_subject'] = search_font($stx, $faq_list[$i]['fa_subject']);
$faq_list[$i]['fa_content'] = search_font($stx, $faq_list[$i]['fa_content']);
}
} }
include_once($skin_file); include_once($skin_file);
} else { } else {
+1 -1
View File
@@ -90,7 +90,7 @@ if($_POST['js'] == "on") {
if (!$is_member) if (!$is_member)
{ {
$href = './login.php?$qstr&amp;url='.urlencode('./board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id); $href = './login.php?'.$qstr.'&amp;url='.urlencode('./board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id);
alert('회원만 가능합니다.', $href); alert('회원만 가능합니다.', $href);
} }
+1 -1
View File
@@ -16,7 +16,7 @@ $sql = " update {$g5['member_table']} set mb_leave_date = '{$date}' where mb_id
sql_query($sql); sql_query($sql);
// 3.09 수정 (로그아웃) // 3.09 수정 (로그아웃)
session_unregister("ss_mb_id"); unset($_SESSION['ss_mb_id']);
if (!$url) if (!$url)
$url = G5_URL; $url = G5_URL;
-4
View File
@@ -195,10 +195,6 @@ if ($sw == 'move')
sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write - '$save_count_write', bo_count_comment = bo_count_comment - '$save_count_comment' where bo_table = '$bo_table' "); sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write - '$save_count_write', bo_count_comment = bo_count_comment - '$save_count_comment' where bo_table = '$bo_table' ");
} }
// syndication ping
if(G5_SYNDI_USE)
include G5_SYNDI_PATH.'/include/include.bbs.move_update.php';
$msg = '해당 게시물을 선택한 게시판으로 '.$act.' 하였습니다.'; $msg = '해당 게시물을 선택한 게시판으로 '.$act.' 하였습니다.';
$opener_href = './board.php?bo_table='.$bo_table.'&amp;page='.$page.'&amp;'.$qstr; $opener_href = './board.php?bo_table='.$bo_table.'&amp;page='.$page.'&amp;'.$qstr;
+9
View File
@@ -26,6 +26,15 @@ switch ($w) {
$return_url = './board.php?bo_table='.$bo_table; $return_url = './board.php?bo_table='.$bo_table;
} }
break; break;
case 'sc' :
// 비밀번호 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
if ($is_admin || ($member['mb_id'] == $write['mb_id'] && $write['mb_id']))
goto_url('./board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id);
else {
$action = './password_check.php';
$return_url = './board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id;
}
break;
default : default :
alert('w 값이 제대로 넘어오지 않았습니다.'); alert('w 값이 제대로 넘어오지 않았습니다.');
} }
+13
View File
@@ -15,6 +15,19 @@ if ($w == 's') {
//set_session("ss_secret", "$bo_table|$wr[wr_num]"); //set_session("ss_secret", "$bo_table|$wr[wr_num]");
set_session($ss_name, TRUE); set_session($ss_name, TRUE);
} else if ($w == 'sc') {
$qstr = 'bo_table='.$bo_table.'&amp;sfl='.$sfl.'&amp;stx='.$stx.'&amp;sop='.$sop.'&amp;wr_id='.$wr_id.'&amp;page='.$page;
$wr = get_write($write_table, $wr_id);
if (sql_password($wr_password) != $wr['wr_password'])
alert('비밀번호가 틀립니다.');
// 세션에 아래 정보를 저장. 하위번호는 비밀번호없이 보아야 하기 때문임.
$ss_name = 'ss_secret_comment_'.$bo_table.'_'.$wr['wr_id'];
//set_session("ss_secret", "$bo_table|$wr[wr_num]");
set_session($ss_name, TRUE);
} else } else
alert('w 값이 제대로 넘어오지 않았습니다.'); alert('w 값이 제대로 넘어오지 않았습니다.');
+1
View File
@@ -8,6 +8,7 @@ if (!$po['po_id'])
if ($member['mb_level'] < $po['po_level']) if ($member['mb_level'] < $po['po_level'])
alert_close('권한 '.$po['po_level'].' 이상 회원만 투표에 참여하실 수 있습니다.'); alert_close('권한 '.$po['po_level'].' 이상 회원만 투표에 참여하실 수 있습니다.');
$gb_poll = preg_replace('/[^0-9]/', '', $gb_poll);
if(!$gb_poll) if(!$gb_poll)
alert_close('항목을 선택하세요.'); alert_close('항목을 선택하세요.');
+1 -1
View File
@@ -8,7 +8,7 @@ if (G5_IS_MOBILE) {
} else { } else {
echo stripslashes($qaconfig['qa_mobile_content_tail']); echo stripslashes($qaconfig['qa_mobile_content_tail']);
if($qaconfig['qa_include_tail']) if($qaconfig['qa_include_tail'])
@include ($qaconfig['bo_include_tail']); @include ($qaconfig['qa_include_tail']);
else else
include ('./_tail.php'); include ('./_tail.php');
} }
+3 -1
View File
@@ -28,6 +28,7 @@ if(isset($_POST['qa_email']) && $qa_email) {
$qa_subject = ''; $qa_subject = '';
if (isset($_POST['qa_subject'])) { if (isset($_POST['qa_subject'])) {
$qa_subject = substr(trim($_POST['qa_subject']),0,255); $qa_subject = substr(trim($_POST['qa_subject']),0,255);
$qa_subject = preg_replace("#[\\\]+$#", "", $qa_subject);
} }
if ($qa_subject == '') { if ($qa_subject == '') {
$msg[] = '<strong>제목</strong>을 입력하세요.'; $msg[] = '<strong>제목</strong>을 입력하세요.';
@@ -36,6 +37,7 @@ if ($qa_subject == '') {
$qa_content = ''; $qa_content = '';
if (isset($_POST['qa_content'])) { if (isset($_POST['qa_content'])) {
$qa_content = substr(trim($_POST['qa_content']),0,65536); $qa_content = substr(trim($_POST['qa_content']),0,65536);
$qa_content = preg_replace("#[\\\]+$#", "", $qa_content);
} }
if ($qa_content == '') { if ($qa_content == '') {
$msg[] = '<strong>내용</strong>을 입력하세요.'; $msg[] = '<strong>내용</strong>을 입력하세요.';
@@ -132,7 +134,7 @@ for ($i=1; $i<=count($_FILES['bf_file']['name']); $i++) {
$tmp_file = $_FILES['bf_file']['tmp_name'][$i]; $tmp_file = $_FILES['bf_file']['tmp_name'][$i];
$filesize = $_FILES['bf_file']['size'][$i]; $filesize = $_FILES['bf_file']['size'][$i];
$filename = $_FILES['bf_file']['name'][$i]; $filename = $_FILES['bf_file']['name'][$i];
$filename = preg_replace('/(<|>|=)/', '', $filename); $filename = get_safe_filename($filename);
// 서버에 설정된 값보다 큰파일을 업로드 한다면 // 서버에 설정된 값보다 큰파일을 업로드 한다면
if ($filename) { if ($filename) {
+3 -1
View File
@@ -56,6 +56,8 @@ $mb_10 = isset($_POST['mb_10']) ? trim($_POST['mb_10'])
if ($w == '' || $w == 'u') { if ($w == '' || $w == 'u') {
if ($msg = empty_mb_id($mb_id)) alert($msg, "", true, true); // alert($msg, $url, $error, $post); if ($msg = empty_mb_id($mb_id)) alert($msg, "", true, true); // alert($msg, $url, $error, $post);
if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true);
if ($msg = count_mb_id($mb_id)) alert($msg, "", true, true);
if ($w == '' && !$mb_password) if ($w == '' && !$mb_password)
alert('비밀번호가 넘어오지 않았습니다.'); alert('비밀번호가 넘어오지 않았습니다.');
@@ -83,7 +85,7 @@ if ($w == '' || $w == 'u') {
// 본인확인 체크 // 본인확인 체크
if($config['cf_cert_use'] && $config['cf_cert_req']) { if($config['cf_cert_use'] && $config['cf_cert_req']) {
if(trim($_POST['cert_no']) != $_SESSION['ss_cert_no']) if(trim($_POST['cert_no']) != $_SESSION['ss_cert_no'] || !$_SESSION['ss_cert_no'])
alert("회원가입을 위해서는 본인확인을 해주셔야 합니다."); alert("회원가입을 위해서는 본인확인을 해주셔야 합니다.");
} }
+2 -2
View File
@@ -1,13 +1,13 @@
<?php <?php
include_once("./_common.php"); include_once("./_common.php");
$title = str_replace('\"', '"',$_REQUEST['title']); $title = urlencode(str_replace('\"', '"',$_REQUEST['title']));
$short_url = googl_short_url($_REQUEST['longurl']); $short_url = googl_short_url($_REQUEST['longurl']);
$title_url = $title.' : '.$short_url; $title_url = $title.' : '.$short_url;
switch($_REQUEST['sns']) { switch($_REQUEST['sns']) {
case 'facebook' : case 'facebook' :
header("Location:http://www.facebook.com/sharer/sharer.php?s=100&p[url]=".$short_url."&p[title]=".$title); header("Location:http://www.facebook.com/sharer/sharer.php?s=100&u=".$short_url."&p=".$title);
break; break;
case 'twitter' : case 'twitter' :
header("Location:http://twitter.com/home?status=".$title_url); header("Location:http://twitter.com/home?status=".$title_url);
+9
View File
@@ -49,6 +49,15 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
$list[$i]['content1'] = $row['wr_content']; $list[$i]['content1'] = $row['wr_content'];
$list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content'); $list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content');
$list[$i]['content'] = search_font($stx, $list[$i]['content']); $list[$i]['content'] = search_font($stx, $list[$i]['content']);
} else {
$ss_name = 'ss_secret_comment_'.$bo_table.'_'.$list[$i]['wr_id'];
if(!get_session($ss_name))
$list[$i]['content'] = '<a href="./password.php?w=sc&amp;bo_table='.$bo_table.'&amp;wr_id='.$list[$i]['wr_id'].$qstr.'" class="s_cmt">댓글내용 확인</a>';
else {
$list[$i]['content'] = conv_content($row['wr_content'], 0, 'wr_content');
$list[$i]['content'] = search_font($stx, $list[$i]['content']);
}
} }
$list[$i]['datetime'] = substr($row['wr_datetime'],2,14); $list[$i]['datetime'] = substr($row['wr_datetime'],2,14);
+1 -1
View File
@@ -319,7 +319,7 @@ if ($w == '') {
} }
$name = get_text(cut_str($write['wr_name'],20)); $name = get_text(cut_str($write['wr_name'],20));
$email = $write['wr_email']; $email = get_email_address($write['wr_email']);
$homepage = get_text($write['wr_homepage']); $homepage = get_text($write['wr_homepage']);
for ($i=1; $i<=G5_LINK_COUNT; $i++) { for ($i=1; $i<=G5_LINK_COUNT; $i++) {
+12 -6
View File
@@ -1,5 +1,6 @@
<?php <?php
include_once('./_common.php'); include_once('./_common.php');
include_once(G5_LIB_PATH.'/naver_syndi.lib.php');
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
$g5['title'] = '게시글 저장'; $g5['title'] = '게시글 저장';
@@ -9,6 +10,7 @@ $msg = array();
$wr_subject = ''; $wr_subject = '';
if (isset($_POST['wr_subject'])) { if (isset($_POST['wr_subject'])) {
$wr_subject = substr(trim($_POST['wr_subject']),0,255); $wr_subject = substr(trim($_POST['wr_subject']),0,255);
$wr_subject = preg_replace("#[\\\]+$#", "", $wr_subject);
} }
if ($wr_subject == '') { if ($wr_subject == '') {
$msg[] = '<strong>제목</strong>을 입력하세요.'; $msg[] = '<strong>제목</strong>을 입력하세요.';
@@ -17,6 +19,7 @@ if ($wr_subject == '') {
$wr_content = ''; $wr_content = '';
if (isset($_POST['wr_content'])) { if (isset($_POST['wr_content'])) {
$wr_content = substr(trim($_POST['wr_content']),0,65536); $wr_content = substr(trim($_POST['wr_content']),0,65536);
$wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
} }
if ($wr_content == '') { if ($wr_content == '') {
$msg[] = '<strong>내용</strong>을 입력하세요.'; $msg[] = '<strong>내용</strong>을 입력하세요.';
@@ -90,7 +93,7 @@ if (isset($_POST['notice']) && $_POST['notice']) {
for ($i=1; $i<=10; $i++) { for ($i=1; $i<=10; $i++) {
$var = "wr_$i"; $var = "wr_$i";
$$var = ""; $$var = "";
if (isset($_POST['wr_'.$i]) && $_POST['wr_'.$i]) { if (isset($_POST['wr_'.$i]) && settype($_POST['wr_'.$i], 'string')) {
$$var = trim($_POST['wr_'.$i]); $$var = trim($_POST['wr_'.$i]);
} }
} }
@@ -209,7 +212,7 @@ for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
$tmp_file = $_FILES['bf_file']['tmp_name'][$i]; $tmp_file = $_FILES['bf_file']['tmp_name'][$i];
$filesize = $_FILES['bf_file']['size'][$i]; $filesize = $_FILES['bf_file']['size'][$i];
$filename = $_FILES['bf_file']['name'][$i]; $filename = $_FILES['bf_file']['name'][$i];
$filename = preg_replace('/(<|>|=)/', '', $filename); $filename = get_safe_filename($filename);
// 서버에 설정된 값보다 큰파일을 업로드 한다면 // 서버에 설정된 값보다 큰파일을 업로드 한다면
if ($filename) { if ($filename) {
@@ -295,6 +298,7 @@ if ($w == '' || $w == 'r') {
if (!$wr_name) if (!$wr_name)
alert('이름은 필히 입력하셔야 합니다.'); alert('이름은 필히 입력하셔야 합니다.');
$wr_password = sql_password($wr_password); $wr_password = sql_password($wr_password);
$wr_email = get_email_address(trim($_POST['wr_email']));
} }
if ($w == 'r') { if ($w == 'r') {
@@ -359,7 +363,7 @@ if ($w == '' || $w == 'r') {
// 쓰기 포인트 부여 // 쓰기 포인트 부여
if ($w == '') { if ($w == '') {
if ($notice) { if ($notice) {
$bo_notice = $wr_id.",".$board['bo_notice']; $bo_notice = $wr_id.($board['bo_notice'] ? ",".$board['bo_notice'] : '');
sql_query(" update {$g5['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' "); sql_query(" update {$g5['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' ");
} }
@@ -415,6 +419,7 @@ if ($w == '' || $w == 'r') {
$mb_id = ""; $mb_id = "";
// 비회원의 경우 이름이 누락되는 경우가 있음 // 비회원의 경우 이름이 누락되는 경우가 있음
//if (!trim($wr_name)) alert("이름은 필히 입력하셔야 합니다."); //if (!trim($wr_name)) alert("이름은 필히 입력하셔야 합니다.");
$wr_email = get_email_address(trim($_POST['wr_email']));
} }
$sql_password = $wr_password ? " , wr_password = '".sql_password($wr_password)."' " : ""; $sql_password = $wr_password ? " , wr_password = '".sql_password($wr_password)."' " : "";
@@ -476,9 +481,10 @@ if ($w == '' || $w == 'r') {
sql_query(" update {$g5['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' "); sql_query(" update {$g5['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' ");
} }
// syndication ping // 게시판그룹접근사용을 하지 않아야 하고 비회원 글읽기가 가능해야 하며 비밀글이 아니어야 합니다.
if(G5_SYNDI_USE) if (!$group['gr_use_access'] && $board['bo_read_level'] < 2 && !$secret) {
include G5_SYNDI_PATH.'/include/include.bbs.write_update.php'; naver_syndi_ping($bo_table, $wr_id);
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// 가변 파일 업로드 // 가변 파일 업로드
+82 -39
View File
@@ -20,19 +20,12 @@ $ext_arr = array ('PHP_SELF', '_ENV', '_GET', '_POST', '_FILES', '_SERVER', '_CO
'HTTP_COOKIE_VARS', 'HTTP_SESSION_VARS', 'GLOBALS'); 'HTTP_COOKIE_VARS', 'HTTP_SESSION_VARS', 'GLOBALS');
$ext_cnt = count($ext_arr); $ext_cnt = count($ext_arr);
for ($i=0; $i<$ext_cnt; $i++) { for ($i=0; $i<$ext_cnt; $i++) {
// GET 으로 선언된 전역변수가 있다면 unset() 시킴 // POST, GET 으로 선언된 전역변수가 있다면 unset() 시킴
if (isset($_GET[$ext_arr[$i]])) unset($_GET[$ext_arr[$i]]); if (isset($_GET[$ext_arr[$i]])) unset($_GET[$ext_arr[$i]]);
if (isset($_POST[$ext_arr[$i]])) unset($_POST[$ext_arr[$i]]);
} }
//========================================================================================================================== //==========================================================================================================================
// 완두콩님이 알려주신 보안관련 오류 수정
// $member 에 값을 직접 넘길 수 있음
$config = array();
$member = array();
$board = array();
$group = array();
$g5 = array();
function g5_path() function g5_path()
{ {
@@ -43,7 +36,10 @@ function g5_path()
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : ''; $port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://'; $http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
$user = str_replace(str_replace($document_root, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']); $user = str_replace(str_replace($document_root, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']);
$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$user.$root; $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
if(isset($_SERVER['HTTP_HOST']) && preg_match('/:[0-9]+$/', $host))
$host = preg_replace('/:[0-9]+$/', '', $host);
$result['url'] = $http.$host.$port.$user.$root;
return $result; return $result;
} }
@@ -54,6 +50,77 @@ include_once($g5_path['path'].'/config.php'); // 설정 파일
unset($g5_path); unset($g5_path);
// multi-dimensional array에 사용자지정 함수적용
function array_map_deep($fn, $array)
{
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$array[$key] = array_map_deep($fn, $value);
} else {
$array[$key] = call_user_func($fn, $value);
}
}
} else {
$array = call_user_func($fn, $array);
}
return $array;
}
// SQL Injection 대응 문자열 필터링
function sql_escape_string($str)
{
if(defined('G5_ESCAPE_PATTERN') && defined('G5_ESCAPE_REPLACE')) {
$pattern = G5_ESCAPE_PATTERN;
$replace = G5_ESCAPE_REPLACE;
if($pattern)
$str = preg_replace($pattern, $replace, $str);
}
$str = call_user_func('addslashes', $str);
return $str;
}
//==============================================================================
// SQL Injection 등으로 부터 보호를 위해 sql_escape_string() 적용
//------------------------------------------------------------------------------
// magic_quotes_gpc 에 의한 backslashes 제거
if (get_magic_quotes_gpc()) {
$_POST = array_map_deep('stripslashes', $_POST);
$_GET = array_map_deep('stripslashes', $_GET);
$_COOKIE = array_map_deep('stripslashes', $_COOKIE);
$_REQUEST = array_map_deep('stripslashes', $_REQUEST);
}
// sql_escape_string 적용
$_POST = array_map_deep(G5_ESCAPE_FUNCTION, $_POST);
$_GET = array_map_deep(G5_ESCAPE_FUNCTION, $_GET);
$_COOKIE = array_map_deep(G5_ESCAPE_FUNCTION, $_COOKIE);
$_REQUEST = array_map_deep(G5_ESCAPE_FUNCTION, $_REQUEST);
//==============================================================================
// PHP 4.1.0 부터 지원됨
// php.ini 의 register_globals=off 일 경우
@extract($_GET);
@extract($_POST);
@extract($_SERVER);
// 완두콩님이 알려주신 보안관련 오류 수정
// $member 에 값을 직접 넘길 수 있음
$config = array();
$member = array();
$board = array();
$group = array();
$g5 = array();
//============================================================================== //==============================================================================
// 공통 // 공통
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -71,30 +138,6 @@ if (file_exists($dbconfig_file)) {
sql_query(" set names utf8 "); sql_query(" set names utf8 ");
if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) sql_query("SET SESSION sql_mode = ''"); if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) sql_query("SET SESSION sql_mode = ''");
if (defined(G5_TIMEZONE)) sql_query(" set time_zone = '".G5_TIMEZONE."'"); if (defined(G5_TIMEZONE)) sql_query(" set time_zone = '".G5_TIMEZONE."'");
//==============================================================================
// SQL Injection 등으로 부터 보호를 위해 sql_escape_string() 적용
//------------------------------------------------------------------------------
// magic_quotes_gpc 에 의한 backslashes 제거
if (get_magic_quotes_gpc()) {
$_POST = array_map_deep('stripslashes', $_POST);
$_GET = array_map_deep('stripslashes', $_GET);
$_COOKIE = array_map_deep('stripslashes', $_COOKIE);
$_REQUEST = array_map_deep('stripslashes', $_REQUEST);
}
// sql_escape_string 적용
$_POST = array_map_deep(G5_ESCAPE_FUNCTION, $_POST);
$_GET = array_map_deep(G5_ESCAPE_FUNCTION, $_GET);
$_COOKIE = array_map_deep(G5_ESCAPE_FUNCTION, $_COOKIE);
$_REQUEST = array_map_deep(G5_ESCAPE_FUNCTION, $_REQUEST);
//==============================================================================
// PHP 4.1.0 부터 지원됨
// php.ini 의 register_globals=off 일 경우
@extract($_GET);
@extract($_POST);
@extract($_SERVER);
} else { } else {
?> ?>
@@ -288,7 +331,7 @@ if (isset($_REQUEST['wr_id'])) {
} }
if (isset($_REQUEST['bo_table'])) { if (isset($_REQUEST['bo_table'])) {
$bo_table = trim($_REQUEST['bo_table']); $bo_table = preg_replace('/[^a-z0-9_]/i', '', trim($_REQUEST['bo_table']));
$bo_table = substr($bo_table, 0, 20); $bo_table = substr($bo_table, 0, 20);
} else { } else {
$bo_table = ''; $bo_table = '';
@@ -296,7 +339,7 @@ if (isset($_REQUEST['bo_table'])) {
// URL ENCODING // URL ENCODING
if (isset($_REQUEST['url'])) { if (isset($_REQUEST['url'])) {
$url = trim($_REQUEST['url']); $url = strip_tags(trim($_REQUEST['url']));
$urlencode = urlencode($url); $urlencode = urlencode($url);
} else { } else {
$url = ''; $url = '';
@@ -309,7 +352,7 @@ if (isset($_REQUEST['url'])) {
if (isset($_REQUEST['gr_id'])) { if (isset($_REQUEST['gr_id'])) {
if (!is_array($_REQUEST['gr_id'])) { if (!is_array($_REQUEST['gr_id'])) {
$gr_id = trim($_REQUEST['gr_id']); $gr_id = preg_replace('/[^a-z0-9_]/i', '', trim($_REQUEST['gr_id']));
} }
} else { } else {
$gr_id = ''; $gr_id = '';
@@ -339,7 +382,7 @@ if ($_SESSION['ss_mb_id']) { // 로그인중이라면
$tmp_mb_id = substr(preg_replace("/[^a-zA-Z0-9_]*/", "", $tmp_mb_id), 0, 20); $tmp_mb_id = substr(preg_replace("/[^a-zA-Z0-9_]*/", "", $tmp_mb_id), 0, 20);
// 최고관리자는 자동로그인 금지 // 최고관리자는 자동로그인 금지
if ($tmp_mb_id != $config['cf_admin']) { if (strtolower($tmp_mb_id) != strtolower($config['cf_admin'])) {
$sql = " select mb_password, mb_intercept_date, mb_leave_date, mb_email_certify from {$g5['member_table']} where mb_id = '{$tmp_mb_id}' "; $sql = " select mb_password, mb_intercept_date, mb_leave_date, mb_email_certify from {$g5['member_table']} where mb_id = '{$tmp_mb_id}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']); $key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']);
+6 -3
View File
@@ -117,7 +117,6 @@ define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);
define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정 define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정
define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부 define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부
define('G5_SYNDI_USE', true); // Syndication 기능 사용 여부
/******************** /********************
@@ -162,8 +161,12 @@ define('G5_SMTP', '127.0.0.1');
define('G5_DISPLAY_SQL_ERROR', TRUE); define('G5_DISPLAY_SQL_ERROR', TRUE);
// escape string 처리 함수 지정 // escape string 처리 함수 지정
// POST 등에서 한글이 깨질 경우 addslashes 로 변경 // addslashes 로 변경 가능
define('G5_ESCAPE_FUNCTION', 'sql_real_escape_string'); define('G5_ESCAPE_FUNCTION', 'sql_escape_string');
// sql_escape_string 함수에서 사용될 패턴
//define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
//define('G5_ESCAPE_REPLACE', '');
// 게시판에서 링크의 기본개수를 말합니다. // 게시판에서 링크의 기본개수를 말합니다.
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오. // 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
+12
View File
@@ -263,15 +263,21 @@ document.onkeydown = noRefresh ;
// visit table 복사 // visit table 복사
$sql = " select * from {$g4['visit_table']} "; $sql = " select * from {$g4['visit_table']} ";
$result = sql_query($sql); $result = sql_query($sql);
// g5_visit 테이블 초기화
sql_query(" delete from {$g5['visit_table']} ");
for($i=0; $row=sql_fetch_array($result); $i++) { for($i=0; $row=sql_fetch_array($result); $i++) {
if($is_euckr) if($is_euckr)
$row = array_map('iconv_utf8', $row); $row = array_map('iconv_utf8', $row);
// 중복체크 // 중복체크
/*
$sql2 = " select count(*) as cnt from {$g5['visit_table']} where vi_ip = '{$row['vi_ip']}' and vi_date = '{$row['vi_date']}' "; $sql2 = " select count(*) as cnt from {$g5['visit_table']} where vi_ip = '{$row['vi_ip']}' and vi_date = '{$row['vi_date']}' ";
$row2 = sql_fetch($sql2); $row2 = sql_fetch($sql2);
if($row2['cnt']) if($row2['cnt'])
continue; continue;
*/
$comma = ''; $comma = '';
$sql_common = ''; $sql_common = '';
@@ -289,15 +295,21 @@ document.onkeydown = noRefresh ;
// visit sum table 복사 // visit sum table 복사
$sql = " select * from {$g4['visit_sum_table']} "; $sql = " select * from {$g4['visit_sum_table']} ";
$result = sql_query($sql); $result = sql_query($sql);
// g5_visit_sub 테이블 초기화
sql_query(" delete from {$g5['visit_sum_table']} ");
for($i=0; $row=sql_fetch_array($result); $i++) { for($i=0; $row=sql_fetch_array($result); $i++) {
if($is_euckr) if($is_euckr)
$row = array_map('iconv_utf8', $row); $row = array_map('iconv_utf8', $row);
// 중복체크 // 중복체크
/*
$sql2 = " select count(*) as cnt from {$g5['visit_sum_table']} where vs_date = '{$row['vs_date']}' "; $sql2 = " select count(*) as cnt from {$g5['visit_sum_table']} where vs_date = '{$row['vs_date']}' ";
$row2 = sql_fetch($sql2); $row2 = sql_fetch($sql2);
if($row2['cnt']) if($row2['cnt'])
continue; continue;
*/
$comma = ''; $comma = '';
$sql_common = ''; $sql_common = '';
-5
View File
@@ -51,11 +51,6 @@ if (defined('G5_IS_ADMIN')) {
echo '<link rel="stylesheet" href="'.G5_ADMIN_URL.'/css/admin.css">'.PHP_EOL; echo '<link rel="stylesheet" href="'.G5_ADMIN_URL.'/css/admin.css">'.PHP_EOL;
} else { } else {
echo '<link rel="stylesheet" href="'.G5_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').'.css">'.PHP_EOL; echo '<link rel="stylesheet" href="'.G5_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').'.css">'.PHP_EOL;
// canonical 지정
$canonical = '';
if ($bo_table && $wr_id) $canonical = 'http://'.$_SERVER['HTTP_HOST'].'/bbs/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
else $canonical = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo '<link rel="canonical" href="'.$canonical.'">'.PHP_EOL;
} }
?> ?>
<!--[if lte IE 8]> <!--[if lte IE 8]>
+1 -16
View File
@@ -294,6 +294,7 @@ CREATE TABLE IF NOT EXISTS `g5_config` (
`cf_facebook_secret` varchar(255) NOT NULL, `cf_facebook_secret` varchar(255) NOT NULL,
`cf_twitter_key` varchar(255) NOT NULL, `cf_twitter_key` varchar(255) NOT NULL,
`cf_twitter_secret` varchar(255) NOT NULL, `cf_twitter_secret` varchar(255) NOT NULL,
`cf_kakao_js_apikey` varchar(255) NOT NULL,
`cf_1_subj` varchar(255) NOT NULL DEFAULT '', `cf_1_subj` varchar(255) NOT NULL DEFAULT '',
`cf_2_subj` varchar(255) NOT NULL DEFAULT '', `cf_2_subj` varchar(255) NOT NULL DEFAULT '',
`cf_3_subj` varchar(255) NOT NULL DEFAULT '', `cf_3_subj` varchar(255) NOT NULL DEFAULT '',
@@ -664,22 +665,6 @@ CREATE TABLE IF NOT EXISTS `g5_uniqid` (
-- -------------------------------------------------------- -- --------------------------------------------------------
--
-- Table structure for table `g5_syndi_log`
--
DROP TABLE IF EXISTS `g5_syndi_log`;
CREATE TABLE IF NOT EXISTS `g5_syndi_log` (
`content_id` int(11) NOT NULL,
`bbs_id` varchar(50) NOT NULL,
`title` text NOT NULL,
`link_alternative` varchar(250) NOT NULL,
`delete_date` varchar(14) NOT NULL,
PRIMARY KEY (`content_id`,`bbs_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
-- --
-- Table structure for table `g5_autosave` -- Table structure for table `g5_autosave`
-- --
+1 -2
View File
@@ -120,7 +120,7 @@ $sql = " insert into `{$table_prefix}config`
cf_mobile_search_skin = 'basic', cf_mobile_search_skin = 'basic',
cf_mobile_connect_skin = 'basic', cf_mobile_connect_skin = 'basic',
cf_mobile_member_skin = 'basic', cf_mobile_member_skin = 'basic',
cf_editor = 'ckeditor4', cf_editor = 'smarteditor2',
cf_captcha_mp3 = 'basic', cf_captcha_mp3 = 'basic',
cf_register_level = '2', cf_register_level = '2',
cf_register_point = '1000', cf_register_point = '1000',
@@ -245,7 +245,6 @@ fwrite($f, "\$g5['scrap_table'] = G5_TABLE_PREFIX.'scrap'; // 게시글 스크
fwrite($f, "\$g5['visit_table'] = G5_TABLE_PREFIX.'visit'; // 방문자 테이블\n"); fwrite($f, "\$g5['visit_table'] = G5_TABLE_PREFIX.'visit'; // 방문자 테이블\n");
fwrite($f, "\$g5['visit_sum_table'] = G5_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블\n"); fwrite($f, "\$g5['visit_sum_table'] = G5_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블\n");
fwrite($f, "\$g5['uniqid_table'] = G5_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블\n"); fwrite($f, "\$g5['uniqid_table'] = G5_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블\n");
fwrite($f, "\$g5['syndi_log_table'] = G5_TABLE_PREFIX.'syndi_log'; // 네이버 신디케이션 컨텐츠 삭제 로그 테이블\n");
fwrite($f, "\$g5['autosave_table'] = G5_TABLE_PREFIX.'autosave'; // 게시글 작성시 일정시간마다 글을 임시 저장하는 테이블\n"); fwrite($f, "\$g5['autosave_table'] = G5_TABLE_PREFIX.'autosave'; // 게시글 작성시 일정시간마다 글을 임시 저장하는 테이블\n");
fwrite($f, "\$g5['cert_history_table'] = G5_TABLE_PREFIX.'cert_history'; // 인증내역 테이블\n"); fwrite($f, "\$g5['cert_history_table'] = G5_TABLE_PREFIX.'cert_history'; // 인증내역 테이블\n");
fwrite($f, "\$g5['qa_config_table'] = G5_TABLE_PREFIX.'qa_config'; // 1:1문의 설정테이블\n"); fwrite($f, "\$g5['qa_config_table'] = G5_TABLE_PREFIX.'qa_config'; // 1:1문의 설정테이블\n");
+6
View File
@@ -11,6 +11,8 @@ function autosave() {
this.wr_content.value = CKEDITOR.instances.wr_content.getData(); this.wr_content.value = CKEDITOR.instances.wr_content.getData();
} else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") { } else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") {
this.wr_content.value = ed_wr_content.outputBodyHTML(); this.wr_content.value = ed_wr_content.outputBodyHTML();
} else if (g5_editor.indexOf("smarteditor2") != -1 && typeof(oEditors.getById['wr_content'])!="undefined" ) {
this.wr_content.value = oEditors.getById['wr_content'].getIR();
} }
// 변수에 저장해 놓은 값과 다를 경우에만 임시 저장함 // 변수에 저장해 놓은 값과 다를 경우에만 임시 저장함
if (save_wr_subject != this.wr_subject.value || save_wr_content != this.wr_content.value) { if (save_wr_subject != this.wr_subject.value || save_wr_content != this.wr_content.value) {
@@ -79,6 +81,10 @@ $(function(){
CKEDITOR.instances.wr_content.setData(content); CKEDITOR.instances.wr_content.setData(content);
} else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") { } else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") {
ed_wr_content.putContents(content); ed_wr_content.putContents(content);
} else if (g5_editor.indexOf("smarteditor2") != -1 && typeof(oEditors.getById['wr_content'])!="undefined" ) {
oEditors.getById["wr_content"].exec("SET_CONTENTS", [""]);
//oEditors.getById["wr_content"].exec("SET_IR", [""]);
oEditors.getById["wr_content"].exec("PASTE_HTML", [content]);
} else { } else {
$("#fwrite #wr_content").val(content); $("#fwrite #wr_content").val(content);
} }
+14 -1
View File
@@ -132,7 +132,20 @@ function no_comma(data)
function del(href) function del(href)
{ {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) { if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
document.location.href = encodeURI(href); var iev = -1;
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
iev = parseFloat(RegExp.$1);
}
// IE6 이하에서 한글깨짐 방지
if (iev != -1 && iev < 7) {
document.location.href = encodeURI(href);
} else {
document.location.href = href;
}
} }
} }
+10
View File
@@ -0,0 +1,10 @@
function kakaolink_send(text, url)
{
// 카카오톡 링크 버튼을 생성합니다. 처음 한번만 호출하면 됩니다.
Kakao.Link.sendTalkLink({
webLink : {
text: String(text),
url: url // 앱 설정의 웹 플랫폼에 등록한 도메인의 URL이어야 합니다.
}
});
}
+3
View File
@@ -16,6 +16,9 @@
var $img = this.find(cfg.selector); var $img = this.find(cfg.selector);
var $this = this; var $this = this;
$img.removeAttr("height")
.css("height", "");
function image_resize() function image_resize()
{ {
var width = $this.width(); var width = $this.width();
+10 -31
View File
@@ -7,36 +7,6 @@ if (!defined('_GNUBOARD_')) exit;
** **
*************************************************************************/ *************************************************************************/
// multi-dimensional array에 사용자지정 함수적용
function array_map_deep($fn, $array)
{
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$array[$key] = array_map_deep($fn, $value);
} else {
$array[$key] = call_user_func($fn, $value);
}
}
} else {
$array = call_user_func($fn, $array);
}
return $array;
}
// SQL Injection 대응 문자열 필터링
function sql_escape_string($str)
{
$pattern = '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i';
$replace = '';
$str = preg_replace($pattern, $replace, $str);
$str = call_user_func(G5_ESCAPE_FUNCTION, $str);
return $str;
}
// 마이크로 타임을 얻어 계산 형식으로 만듦 // 마이크로 타임을 얻어 계산 형식으로 만듦
function get_microtime() function get_microtime()
{ {
@@ -2670,7 +2640,7 @@ function get_search_string($stx)
$stx_pattern[] = '#\.*/+#'; $stx_pattern[] = '#\.*/+#';
$stx_pattern[] = '#\\\*#'; $stx_pattern[] = '#\\\*#';
$stx_pattern[] = '#\.{2,}#'; $stx_pattern[] = '#\.{2,}#';
$stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\-\&\!\$@~\{\}\[\]`;:\?\^\,]+#'; $stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';
$stx_replace = array(); $stx_replace = array();
$stx_replace[] = ''; $stx_replace[] = '';
@@ -2718,4 +2688,13 @@ function get_email_address($email)
return $matches[0]; return $matches[0];
} }
// 파일명에서 특수문자 제거
function get_safe_filename($name)
{
$pattern = '/["\'<>=#&!%\\\\(\)\*\+\?]/';
$name = preg_replace($pattern, '', $name);
return $name;
}
?> ?>
+1 -1
View File
@@ -54,7 +54,7 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
if($cache_fwrite) { if($cache_fwrite) {
$handle = fopen($cache_file, 'w'); $handle = fopen($cache_file, 'w');
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject=\"".$bo_subject."\";\n\$list=".var_export($list, true)."?>"; $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".$bo_subject."';\n\$list=".var_export($list, true)."?>";
fwrite($handle, $cache_content); fwrite($handle, $cache_content);
fclose($handle); fclose($handle);
} }
+54
View File
@@ -0,0 +1,54 @@
<?php
if (!defined('_GNUBOARD_')) exit;
// http://kr1.php.net/manual/en/function.curl-setopt-array.php 참고
if (!function_exists('curl_setopt_array')) {
function curl_setopt_array(&$ch, $curl_options)
{
foreach ($curl_options as $option => $value) {
if (!curl_setopt($ch, $option, $value)) {
return false;
}
}
return true;
}
}
// 네이버 신디케이션에 ping url 을 curl 로 전달합니다.
function naver_syndi_ping($bo_table, $wr_id)
{
global $config;
$token = trim($config['cf_syndi_token']);
// 토큰값이 없다면 네이버 신디케이션 사용안함
if ($token == '') return 0;
// 신디케이션 수집 제외게시판
if (preg_match('#^('.$config['cf_syndi_except'].')$#', $bo_table)) return -2;
// curl library 가 지원되어야 합니다.
if (!function_exists('curl_init')) return -3;
$ping_auth_header = "Authorization: Bearer " . $token;
$ping_url = urlencode( G5_SYNDI_URL . "/ping.php?bo_table={$bo_table}&wr_id={$wr_id}" );
$ping_client_opt = array(
CURLOPT_URL => "https://apis.naver.com/crawl/nsyndi/v2",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => "ping_url=" . $ping_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => array("Host: apis.naver.com", "Pragma: no-cache", "Accept: */*", $ping_auth_header)
);
//print_r2($ping_client_opt); exit;
$ping = curl_init();
curl_setopt_array($ping, $ping_client_opt);
$response = curl_exec($ping);
curl_close($ping);
return $response;
}
?>
+1
View File
@@ -216,6 +216,7 @@
#bo_vc a {color:#000;text-decoration:none} #bo_vc a {color:#000;text-decoration:none}
#bo_vc p {padding:0 0 5px;line-height:1.8em} #bo_vc p {padding:0 0 5px;line-height:1.8em}
#bo_vc p a {text-decoration:underline} #bo_vc p a {text-decoration:underline}
#bo_vc p a.s_cmt {text-decoration:none}
#bo_vc_empty {margin:0;padding:15px !important;text-align:center} #bo_vc_empty {margin:0;padding:15px !important;text-align:center}
#bo_vc #bo_vc_winfo {float:left} #bo_vc #bo_vc_winfo {float:left}
#bo_vc footer {zoom:1} #bo_vc footer {zoom:1}
@@ -23,7 +23,7 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
?> ?>
<article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>> <article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>>
<header> <header>
<h1><?php echo $list[$i]['wr_name'] ?>님의 댓글</h1> <h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?> <?php echo $list[$i]['name'] ?>
<?php if ($cmt_depth) { ?><img src="<?php echo $board_skin_url ?>/img/icon_reply.gif" alt="댓글의 댓글" class="icon_reply"><?php } ?> <?php if ($cmt_depth) { ?><img src="<?php echo $board_skin_url ?>/img/icon_reply.gif" alt="댓글의 댓글" class="icon_reply"><?php } ?>
<?php if ($is_ip_view) { ?> <?php if ($is_ip_view) { ?>
@@ -309,7 +309,12 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?> <?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
// sns 등록 // sns 등록
$(function() { $(function() {
$("#bo_vc_send_sns").load( "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>" ); $("#bo_vc_send_sns").load(
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
function() {
save_html = document.getElementById('bo_vc_w').innerHTML;
}
);
}); });
<?php } ?> <?php } ?>
</script> </script>
+1
View File
@@ -203,6 +203,7 @@
#bo_vc a {color:#000;text-decoration:none} #bo_vc a {color:#000;text-decoration:none}
#bo_vc p {padding:0 0 5px;line-height:1.8em} #bo_vc p {padding:0 0 5px;line-height:1.8em}
#bo_vc p a {text-decoration:underline} #bo_vc p a {text-decoration:underline}
#bo_vc p a.s_cmt {text-decoration:none}
#bo_vc_empty {margin:0;padding:15px !important;text-align:center} #bo_vc_empty {margin:0;padding:15px !important;text-align:center}
#bo_vc #bo_vc_winfo {float:left} #bo_vc #bo_vc_winfo {float:left}
#bo_vc footer {zoom:1} #bo_vc footer {zoom:1}
@@ -23,7 +23,7 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
?> ?>
<article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>> <article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>>
<header> <header>
<h1><?php echo $list[$i]['wr_name'] ?>님의 댓글</h1> <h1><?php echo get_text($list[$i]['wr_name']); ?>님의 댓글</h1>
<?php echo $list[$i]['name'] ?> <?php echo $list[$i]['name'] ?>
<?php if ($cmt_depth) { ?><img src="<?php echo $board_skin_url ?>/img/icon_reply.gif" alt="댓글의 댓글" class="icon_reply"><?php } ?> <?php if ($cmt_depth) { ?><img src="<?php echo $board_skin_url ?>/img/icon_reply.gif" alt="댓글의 댓글" class="icon_reply"><?php } ?>
<?php if ($is_ip_view) { ?> <?php if ($is_ip_view) { ?>
@@ -309,7 +309,12 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
<?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?> <?php if($board['bo_use_sns'] && ($config['cf_facebook_appid'] || $config['cf_twitter_key'])) { ?>
// sns 등록 // sns 등록
$(function() { $(function() {
$("#bo_vc_send_sns").load( "<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>" ); $("#bo_vc_send_sns").load(
"<?php echo G5_SNS_URL; ?>/view_comment_write.sns.skin.php?bo_table=<?php echo $bo_table; ?>",
function() {
save_html = document.getElementById('bo_vc_w').innerHTML;
}
);
}); });
<?php } ?> <?php } ?>
</script> </script>
+2 -2
View File
@@ -26,7 +26,7 @@ if( count($faq_master_list) ){
$category_msg = '<span class="sound_only">열린 분류 </span>'; $category_msg = '<span class="sound_only">열린 분류 </span>';
} }
?> ?>
<li><a href="<?php echo $category_href;?>?fm_id=<?php echo $v['fm_id'].$category_stx;?>" <?php echo $category_option;?> ><?php echo $category_msg.$v['fm_subject'];?></a></li> <li><a href="<?php echo $category_href;?>?fm_id=<?php echo $v['fm_id']?>" <?php echo $category_option;?> ><?php echo $category_msg.$v['fm_subject'];?></a></li>
<?php <?php
} }
?> ?>
@@ -62,7 +62,7 @@ if( count($faq_master_list) ){
} else { } else {
if($stx){ if($stx){
echo '<p>검색된 게시물이 없습니다.</p>'; echo '<p class="empty_list">검색된 게시물이 없습니다.</p>';
} else { } else {
echo '<div class="empty_table">등록된 FAQ가 없습니다.'; echo '<div class="empty_table">등록된 FAQ가 없습니다.';
if($is_admin) if($is_admin)
@@ -52,10 +52,10 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<tr> <tr>
<th scope="row"><label for="reg_mb_name">이름<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="reg_mb_name">이름<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php if ($w=="u" && $config['cf_cert_use']) { ?> <?php if ($config['cf_cert_use']) { ?>
<span class="frm_info">아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다.</span> <span class="frm_info">아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다.</span>
<?php } ?> <?php } ?>
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo $member['mb_name'] ?>" <?php echo $required ?> <?php if ($w=='u') echo 'readonly'; ?> class="frm_input nospace <?php echo $required ?> <?php echo $readonly ?>"> <input type="text" id="reg_mb_name" name="mb_name" value="<?php echo $member['mb_name'] ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>">
<?php <?php
if($config['cf_cert_use']) { if($config['cf_cert_use']) {
if($config['cf_cert_ipin']) if($config['cf_cert_ipin'])
@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>네이버 :: Smart Editor 2 &#8482;</title>
<script type="text/javascript" src="./js/HuskyEZCreator.js" charset="utf-8"></script>
</head>
<body>
<form action="sample.php" method="post">
<textarea name="ir1" id="ir1" rows="10" cols="100" style="width:766px; height:412px; display:none;"></textarea>
<!--textarea name="ir1" id="ir1" rows="10" cols="100" style="width:100%; height:412px; min-width:610px; display:none;"></textarea-->
<p>
<input type="button" onclick="pasteHTML();" value="본문에 내용 넣기" />
<input type="button" onclick="showHTML();" value="본문 내용 가져오기" />
<input type="button" onclick="submitContents(this);" value="서버로 내용 전송" />
<input type="button" onclick="setDefaultFont();" value="기본 폰트 지정하기 (궁서_24)" />
</p>
</form>
<script type="text/javascript">
var oEditors = [];
// 추가 글꼴 목록
//var aAdditionalFontSet = [["MS UI Gothic", "MS UI Gothic"], ["Comic Sans MS", "Comic Sans MS"],["TEST","TEST"]];
nhn.husky.EZCreator.createInIFrame({
oAppRef: oEditors,
elPlaceHolder: "ir1",
sSkinURI: "SmartEditor2Skin.html",
htParams : {
bUseToolbar : true, // 툴바 사용 여부 (true:사용/ false:사용하지 않음)
bUseVerticalResizer : true, // 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)
bUseModeChanger : true, // 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)
//aAdditionalFontList : aAdditionalFontSet, // 추가 글꼴 목록
fOnBeforeUnload : function(){
//alert("완료!");
}
}, //boolean
fOnAppLoad : function(){
//예제 코드
//oEditors.getById["ir1"].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
},
fCreator: "createSEditor2"
});
function pasteHTML() {
var sHTML = "<span style='color:#FF0000;'>이미지도 같은 방식으로 삽입합니다.<\/span>";
oEditors.getById["ir1"].exec("PASTE_HTML", [sHTML]);
}
function showHTML() {
var sHTML = oEditors.getById["ir1"].getIR();
alert(sHTML);
}
function submitContents(elClickedObj) {
oEditors.getById["ir1"].exec("UPDATE_CONTENTS_FIELD", []); // 에디터의 내용이 textarea에 적용됩니다.
// 에디터의 내용에 대한 값 검증은 이곳에서 document.getElementById("ir1").value를 이용해서 처리하면 됩니다.
try {
elClickedObj.form.submit();
} catch(e) {}
}
function setDefaultFont() {
var sDefaultFont = '궁서';
var nFontSize = 24;
oEditors.getById["ir1"].setDefaultFont(sDefaultFont, nFontSize);
}
</script>
</body>
</html>
@@ -0,0 +1,797 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>네이버 :: Smart Editor 2 &#8482;</title>
<link href="css/smart_editor2.css" rel="stylesheet" type="text/css">
<style type="text/css">
body { margin: 10px; }
</style>
<script type="text/javascript" src="./js/jindo.min.js" charset="utf-8"></script>
<script type="text/javascript" src="./js/jindo_component.js" charset="utf-8"></script>
<script type="text/javascript" src="./js/SE2B_Configuration_Service.js" charset="utf-8"></script> <!-- 설정 파일 -->
<script type="text/javascript" src="./js/SE2B_Configuration_General.js" charset="utf-8"></script> <!-- 설정 파일 -->
<script type="text/javascript" src="./js/SE2BasicCreator.js?v3" charset="utf-8"></script>
<script src='js/smarteditor2.min.js' charset='utf-8'></script>
<script src='photo_uploader/plugin/hp_SE2M_AttachQuickPhoto.js' charset='utf-8'></script>
</head>
<body>
<span id="rev"></span>
<!-- SE2 Markup Start -->
<div id="smart_editor2">
<div id="smart_editor2_content"><a href="#se2_iframe" class="blind">글쓰기영역으로 바로가기</a>
<div class="se2_tool" id="se2_tool">
<div class="se2_text_tool husky_seditor_text_tool">
<ul class="se2_font_type">
<li class="husky_seditor_ui_fontName"><button type="button" class="se2_font_family" title="글꼴"><span class="husky_se2m_current_fontName">글꼴</span></button>
<!-- 글꼴 레이어 -->
<div class="se2_layer husky_se_fontName_layer">
<div class="se2_in_layer">
<ul class="se2_l_font_fam">
<li style="display:none"><button type="button"><span>@DisplayName@<span>(</span><em style="font-family:FontFamily;">@SampleText@</em><span>)</span></span></button></li>
<!--
<li><button type="button"><span>돋움<span>(</span><em style="font-family:'돋움',Dotum,Sans-serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>돋움체<span>(</span><em style="font-family:'돋움체',DotumChe,Sans-serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>굴림<span>(</span><em style="font-family:'굴림',Gulim,Sans-serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>굴림체<span>(</span><em style="font-family:'굴림체',GulimChe,Sans-serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>바탕<span>(</span><em style="font-family:'바탕',Batang,serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>바탕체<span>(</span><em style="font-family:'바탕체',BatangChe,serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>궁서<span>(</span><em style="font-family:'궁서',Gungsuh,serif;">가나다라</em><span>)</span></span></button></li>
<li><button type="button"><span>Arial<span>(</span><em style="font-family:arial,Sans-serif;">abcd</em><span>)</span></span></button></li>
<li><button type="button"><span>Tahoma<span>(</span><em style="font-family:tahoma,Sans-serif;">abcd</em><span>)</span></span></button></li>
<li><button type="button"><span>Times New Roman<span>(</span><em style="font-family:'Times New Roman',Times,serif;">abcd</em><span>)</span></span></button></li>
<li><button type="button"><span>Verdana<span>(</span><em style="font-family:verdana,Sans-serif;">abcd</em><span>)</span></span></button></li>
<li><button type="button"><span>Courier New<span>(</span><em style="font-family:Courier New,Sans-serif;">abcd</em><span>)</span></span></button></li>
-->
<li class="se2_division husky_seditor_font_separator"></li>
<li class="husky_seditor_font_nanumgothic"><button type="button"><span>나눔고딕<span>(</span><em style="font-family:'나눔고딕',NanumGothic,Sans-serif;">가나다라</em><span>)</span></span></button></li>
<li class="husky_seditor_font_nanummyeongjo"><button type="button"><span>나눔명조<span>(</span><em style="font-family:'나눔명조',NanumMyeongjo,serif;">가나다라</em><span>)</span></span></button></li>
<li class="husky_seditor_font_nanumgothiccoding"><button type="button"><span>나눔고딕코딩<span>(</span><em style="font-family:'나눔고딕코딩',NanumGothicCoding,Sans-serif;">가나다라</em><span>)</span></span></button></li>
</ul>
</div>
</div>
<!-- //글꼴 레이어 -->
</li>
<li class="husky_seditor_ui_fontSize"><button type="button" class="se2_font_size" title="글자크기"><span class="husky_se2m_current_fontSize">크기</span></button>
<!-- 폰트 사이즈 레이어 -->
<div class="se2_layer husky_se_fontSize_layer">
<div class="se2_in_layer">
<ul class="se2_l_font_size">
<li><button type="button" style="height:19px;"><span style="margin-top:4px; margin-bottom:3px; margin-left:5px; font-size:7pt;">가나다라마바사<span style=" font-size:7pt;">(7pt)</span></span></button></li>
<li><button type="button" style="height:20px;"><span style="margin-bottom:2px; font-size:8pt;">가나다라마바사<span style="font-size:8pt;">(8pt)</span></span></button></li>
<li><button type="button" style="height:20px;"><span style="margin-bottom:1px; font-size:9pt;">가나다라마바사<span style="font-size:9pt;">(9pt)</span></span></button></li>
<li><button type="button" style="height:21px;"><span style="margin-bottom:1px; font-size:10pt;">가나다라마바사<span style="font-size:10pt;">(10pt)</span></span></button></li>
<li><button type="button" style="height:23px;"><span style="margin-bottom:2px; font-size:11pt;">가나다라마바사<span style="font-size:11pt;">(11pt)</span></span></button></li>
<li><button type="button" style="height:25px;"><span style="margin-bottom:1px; font-size:12pt;">가나다라마바사<span style="font-size:12pt;">(12pt)</span></span></button></li>
<li><button type="button" style="height:27px;"><span style="margin-bottom:2px; font-size:14pt;">가나다라마바사<span style="margin-left:6px;font-size:14pt;">(14pt)</span></span></button></li>
<li><button type="button" style="height:33px;"><span style="margin-bottom:1px; font-size:18pt;">가나다라마바사<span style="margin-left:8px;font-size:18pt;">(18pt)</span></span></button></li>
<li><button type="button" style="height:39px;"><span style="margin-left:3px; font-size:24pt;">가나다라마<span style="margin-left:11px;font-size:24pt;">(24pt)</span></span></button></li>
<li><button type="button" style="height:53px;"><span style="margin-top:-1px; margin-left:3px; font-size:36pt;">가나다<span style="font-size:36pt;">(36pt)</span></span></button></li>
</ul>
</div>
</div>
<!-- //폰트 사이즈 레이어 -->
</li>
</ul><ul>
<li class="husky_seditor_ui_bold"><button type="button" title="굵게[Ctrl+B]" class="se2_bold"><span class="_buttonRound">굵게[Ctrl+B]</span></button></li>
<li class="husky_seditor_ui_underline"><button type="button" title="밑줄[Ctrl+U]" class="se2_underline"><span class="_buttonRound">밑줄[Ctrl+U]</span></button></li>
<li class="husky_seditor_ui_italic"><button type="button" title="기울임꼴[Ctrl+I]" class="se2_italic"><span class="_buttonRound">기울임꼴[Ctrl+I]</span></button></li>
<li class="husky_seditor_ui_lineThrough"><button type="button" title="취소선[Ctrl+D]" class="se2_tdel"><span class="_buttonRound">취소선[Ctrl+D]</span></button></li>
<li class="se2_pair husky_seditor_ui_fontColor"><span class="selected_color husky_se2m_fontColor_lastUsed" style="background-color:#4477f9"></span><span class="husky_seditor_ui_fontColorA"><button type="button" title="글자색" class="se2_fcolor"><span>글자색</span></button></span><span class="husky_seditor_ui_fontColorB"><button type="button" title="더보기" class="se2_fcolor_more"><span class="_buttonRound">더보기</span></button></span>
<!-- 글자색 -->
<div class="se2_layer husky_se2m_fontcolor_layer" style="display:none">
<div class="se2_in_layer husky_se2m_fontcolor_paletteHolder">
<div class="se2_palette husky_se2m_color_palette">
<ul class="se2_pick_color">
<li><button type="button" title="#ff0000" style="background:#ff0000"><span><span>#ff0000</span></span></button></li>
<li><button type="button" title="#ff6c00" style="background:#ff6c00"><span><span>#ff6c00</span></span></button></li>
<li><button type="button" title="#ffaa00" style="background:#ffaa00"><span><span>#ffaa00</span></span></button></li>
<li><button type="button" title="#ffef00" style="background:#ffef00"><span><span>#ffef00</span></span></button></li>
<li><button type="button" title="#a6cf00" style="background:#a6cf00"><span><span>#a6cf00</span></span></button></li>
<li><button type="button" title="#009e25" style="background:#009e25"><span><span>#009e25</span></span></button></li>
<li><button type="button" title="#00b0a2" style="background:#00b0a2"><span><span>#00b0a2</span></span></button></li>
<li><button type="button" title="#0075c8" style="background:#0075c8"><span><span>#0075c8</span></span></button></li>
<li><button type="button" title="#3a32c3" style="background:#3a32c3"><span><span>#3a32c3</span></span></button></li>
<li><button type="button" title="#7820b9" style="background:#7820b9"><span><span>#7820b9</span></span></button></li>
<li><button type="button" title="#ef007c" style="background:#ef007c"><span><span>#ef007c</span></span></button></li>
<li><button type="button" title="#000000" style="background:#000000"><span><span>#000000</span></span></button></li>
<li><button type="button" title="#252525" style="background:#252525"><span><span>#252525</span></span></button></li>
<li><button type="button" title="#464646" style="background:#464646"><span><span>#464646</span></span></button></li>
<li><button type="button" title="#636363" style="background:#636363"><span><span>#636363</span></span></button></li>
<li><button type="button" title="#7d7d7d" style="background:#7d7d7d"><span><span>#7d7d7d</span></span></button></li>
<li><button type="button" title="#9a9a9a" style="background:#9a9a9a"><span><span>#9a9a9a</span></span></button></li>
<li><button type="button" title="#ffe8e8" style="background:#ffe8e8"><span><span>#9a9a9a</span></span></button></li>
<li><button type="button" title="#f7e2d2" style="background:#f7e2d2"><span><span>#f7e2d2</span></span></button></li>
<li><button type="button" title="#f5eddc" style="background:#f5eddc"><span><span>#f5eddc</span></span></button></li>
<li><button type="button" title="#f5f4e0" style="background:#f5f4e0"><span><span>#f5f4e0</span></span></button></li>
<li><button type="button" title="#edf2c2" style="background:#edf2c2"><span><span>#edf2c2</span></span></button></li>
<li><button type="button" title="#def7e5" style="background:#def7e5"><span><span>#def7e5</span></span></button></li>
<li><button type="button" title="#d9eeec" style="background:#d9eeec"><span><span>#d9eeec</span></span></button></li>
<li><button type="button" title="#c9e0f0" style="background:#c9e0f0"><span><span>#c9e0f0</span></span></button></li>
<li><button type="button" title="#d6d4eb" style="background:#d6d4eb"><span><span>#d6d4eb</span></span></button></li>
<li><button type="button" title="#e7dbed" style="background:#e7dbed"><span><span>#e7dbed</span></span></button></li>
<li><button type="button" title="#f1e2ea" style="background:#f1e2ea"><span><span>#f1e2ea</span></span></button></li>
<li><button type="button" title="#acacac" style="background:#acacac"><span><span>#acacac</span></span></button></li>
<li><button type="button" title="#c2c2c2" style="background:#c2c2c2"><span><span>#c2c2c2</span></span></button></li>
<li><button type="button" title="#cccccc" style="background:#cccccc"><span><span>#cccccc</span></span></button></li>
<li><button type="button" title="#e1e1e1" style="background:#e1e1e1"><span><span>#e1e1e1</span></span></button></li>
<li><button type="button" title="#ebebeb" style="background:#ebebeb"><span><span>#ebebeb</span></span></button></li>
<li><button type="button" title="#ffffff" style="background:#ffffff"><span><span>#ffffff</span></span></button></li>
</ul>
<ul class="se2_pick_color" style="width:156px;">
<li><button type="button" title="#e97d81" style="background:#e97d81"><span><span>#e97d81</span></span></button></li>
<li><button type="button" title="#e19b73" style="background:#e19b73"><span><span>#e19b73</span></span></button></li>
<li><button type="button" title="#d1b274" style="background:#d1b274"><span><span>#d1b274</span></span></button></li>
<li><button type="button" title="#cfcca2" style="background:#cfcca2"><span><span>#cfcca2</span></span></button></li>
<li><button type="button" title="#cfcca2" style="background:#cfcca2"><span><span>#cfcca2</span></span></button></li>
<li><button type="button" title="#61b977" style="background:#61b977"><span><span>#61b977</span></span></button></li>
<li><button type="button" title="#53aea8" style="background:#53aea8"><span><span>#53aea8</span></span></button></li>
<li><button type="button" title="#518fbb" style="background:#518fbb"><span><span>#518fbb</span></span></button></li>
<li><button type="button" title="#6a65bb" style="background:#6a65bb"><span><span>#6a65bb</span></span></button></li>
<li><button type="button" title="#9a54ce" style="background:#9a54ce"><span><span>#9a54ce</span></span></button></li>
<li><button type="button" title="#e573ae" style="background:#e573ae"><span><span>#e573ae</span></span></button></li>
<li><button type="button" title="#5a504b" style="background:#5a504b"><span><span>#5a504b</span></span></button></li>
<li><button type="button" title="#767b86" style="background:#767b86"><span><span>#767b86</span></span></button></li>
<li><button type="button" title="#951015" style="background:#951015"><span><span>#951015</span></span></button></li>
<li><button type="button" title="#6e391a" style="background:#6e391a"><span><span>#6e391a</span></span></button></li>
<li><button type="button" title="#785c25" style="background:#785c25"><span><span>#785c25</span></span></button></li>
<li><button type="button" title="#5f5b25" style="background:#5f5b25"><span><span>#5f5b25</span></span></button></li>
<li><button type="button" title="#4c511f" style="background:#4c511f"><span><span>#4c511f</span></span></button></li>
<li><button type="button" title="#1c4827" style="background:#1c4827"><span><span>#1c4827</span></span></button></li>
<li><button type="button" title="#0d514c" style="background:#0d514c"><span><span>#0d514c</span></span></button></li>
<li><button type="button" title="#1b496a" style="background:#1b496a"><span><span>#1b496a</span></span></button></li>
<li><button type="button" title="#2b285f" style="background:#2b285f"><span><span>#2b285f</span></span></button></li>
<li><button type="button" title="#45245b" style="background:#45245b"><span><span>#45245b</span></span></button></li>
<li><button type="button" title="#721947" style="background:#721947"><span><span>#721947</span></span></button></li>
<li><button type="button" title="#352e2c" style="background:#352e2c"><span><span>#352e2c</span></span></button></li>
<li><button type="button" title="#3c3f45" style="background:#3c3f45"><span><span>#3c3f45</span></span></button></li>
</ul>
<button type="button" title="더보기" class="se2_view_more husky_se2m_color_palette_more_btn"><span>더보기</span></button>
<div class="husky_se2m_color_palette_recent" style="display:none">
<h4>최근 사용한 색</h4>
<ul class="se2_pick_color">
<li></li>
<!-- 최근 사용한 색 템플릿 -->
<!-- <li><button type="button" title="#e97d81" style="background:#e97d81"><span><span>#e97d81</span></span></button></li> -->
<!-- //최근 사용한 색 템플릿 -->
</ul>
</div>
<div class="se2_palette2 husky_se2m_color_palette_colorpicker">
<!--form action="http://test.emoticon.naver.com/colortable/TextAdd.nhn" method="post"-->
<div class="se2_color_set">
<span class="se2_selected_color"><span class="husky_se2m_cp_preview" style="background:#e97d81"></span></span><input type="text" name="" class="input_ty1 husky_se2m_cp_colorcode" value="#e97d81"><button type="button" class="se2_btn_insert husky_se2m_color_palette_ok_btn" title="입력"><span>입력</span></button></div>
<!--input type="hidden" name="callback" value="http://test.emoticon.naver.com/colortable/result.jsp" />
<input type="hidden" name="callback_func" value="1" />
<input type="hidden" name="text_key" value="" />
<input type="hidden" name="text_data" value="" />
</form-->
<div class="se2_gradation1 husky_se2m_cp_colpanel"></div>
<div class="se2_gradation2 husky_se2m_cp_huepanel"></div>
</div>
</div>
</div>
</div>
<!-- //글자색 -->
</li>
<li class="se2_pair husky_seditor_ui_BGColor"><span class="selected_color husky_se2m_BGColor_lastUsed" style="background-color:#4477f9"></span><span class="husky_seditor_ui_BGColorA"><button type="button" title="배경색" class="se2_bgcolor"><span>배경색</span></button></span><span class="husky_seditor_ui_BGColorB"><button type="button" title="더보기" class="se2_bgcolor_more"><span class="_buttonRound">더보기</span></button></span>
<!-- 배경색 -->
<div class="se2_layer se2_layer husky_se2m_BGColor_layer" style="display:none">
<div class="se2_in_layer">
<div class="se2_palette_bgcolor">
<ul class="se2_background husky_se2m_bgcolor_list">
<li><button type="button" title="배경색#ff0000 글자색#ffffff" style="background:#ff0000; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#6d30cf 글자색#ffffff" style="background:#6d30cf; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#000000 글자색#ffffff" style="background:#000000; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#ff6600 글자색#ffffff" style="background:#ff6600; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#3333cc 글자색#ffffff" style="background:#3333cc; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#333333 글자색#ffff00" style="background:#333333; color:#ffff00"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#ffa700 글자색#ffffff" style="background:#ffa700; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#009999 글자색#ffffff" style="background:#009999; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#8e8e8e 글자색#ffffff" style="background:#8e8e8e; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#cc9900 글자색#ffffff" style="background:#cc9900; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#77b02b 글자색#ffffff" style="background:#77b02b; color:#ffffff"><span><span>가나다</span></span></button></li>
<li><button type="button" title="배경색#ffffff 글자색#000000" style="background:#ffffff; color:#000000"><span><span>가나다</span></span></button></li>
</ul>
</div>
<div class="husky_se2m_BGColor_paletteHolder"></div>
</div>
</div>
<!-- //배경색 -->
</li>
<li class="husky_seditor_ui_superscript"><button type="button" title="윗첨자" class="se2_sup"><span class="_buttonRound">윗첨자</span></button></li>
<li class="husky_seditor_ui_subscript"><button type="button" title="아래첨자" class="se2_sub"><span class="_buttonRound">아래첨자</span></button></li>
</ul><ul>
<li class="husky_seditor_ui_justifyleft"><button type="button" title="왼쪽정렬" class="se2_left"><span class="_buttonRound">왼쪽정렬</span></button></li>
<li class="husky_seditor_ui_justifycenter"><button type="button" title="가운데정렬" class="se2_center"><span class="_buttonRound">가운데정렬</span></button></li>
<li class="husky_seditor_ui_justifyright"><button type="button" title="오른쪽정렬" class="se2_right"><span class="_buttonRound">오른쪽정렬</span></button></li>
<li class="husky_seditor_ui_justifyfull"><button type="button" title="양쪽정렬" class="se2_justify"><span class="_buttonRound">양쪽정렬</span></button></li>
<li class="husky_seditor_ui_lineHeight"><button type="button" title="줄간격" class="se2_lineheight" ><span class="_buttonRound">줄간격</span></button>
<!-- 줄간격 레이어 -->
<div class="se2_layer husky_se2m_lineHeight_layer">
<div class="se2_in_layer">
<ul class="se2_l_line_height">
<li><button type="button"><span>50%</span></button></li>
<li><button type="button"><span>80%</span></button></li>
<li><button type="button"><span>100%</span></button></li>
<li><button type="button"><span>120%</span></button></li>
<li><button type="button"><span>150%</span></button></li>
<li><button type="button"><span>180%</span></button></li>
<li><button type="button"><span>200%</span></button></li>
</ul>
<div class="se2_l_line_height_user husky_se2m_lineHeight_direct_input">
<h3>직접 입력</h3>
<span class="bx_input">
<input type="text" class="input_ty1" maxlength="3" style="width:75px">
<button type="button" title="1% 더하기" class="btn_up"><span>1% 더하기</span></button>
<button type="button" title="1% 빼기" class="btn_down"><span>1% 빼기</span></button>
</span>
<div class="btn_area">
<button type="button" class="se2_btn_apply3"><span>적용</span></button><button type="button" class="se2_btn_cancel3"><span>취소</span></button>
</div>
</div>
</div>
</div>
<!-- //줄간격 레이어 -->
</li>
</ul><ul>
<li class="husky_seditor_ui_text_more" id="se2_text_more"><button title="더보기" type="button" class="se2_text_tool_more"><span>더보기</span></button>
<div class="se2_sub_text_tool se2_sub_step1">
<ul>
<li class="husky_seditor_ui_orderedlist"><button type="button" title="번호매기기" class="se2_ol"><span class="_buttonRound">번호매기기</span></button></li>
<li class="husky_seditor_ui_unorderedlist"><button type="button" title="글머리기호" class="se2_ul"><span class="_buttonRound">글머리기호</span></button></li>
<li class="husky_seditor_ui_outdent"><button type="button" title="내어쓰기[Shift+Tab]" class="se2_outdent"><span class="_buttonRound">내어쓰기[Shift+Tab]</span></button></li>
<li class="husky_seditor_ui_indent"><button type="button" title="들여쓰기[Tab]" class="se2_indent"><span class="_buttonRound">들여쓰기[Tab]</span></button></li>
</ul>
</div>
</li>
</ul><ul>
<li class="husky_seditor_ui_quote"><button type="button" title="인용구" class="se2_blockquote"><span class="_buttonRound">인용구</span></button>
<!-- 인용구 -->
<div class="se2_layer husky_seditor_blockquote_layer" style="margin-left:-407px; display:none;">
<div class="se2_in_layer">
<div class="se2_quote">
<ul>
<li class="q1"><button type="button" class="se2_quote1"><span><span>인용구 스타일1</span></span></button></li>
<li class="q2"><button type="button" class="se2_quote2"><span><span>인용구 스타일2</span></span></button></li>
<li class="q3"><button type="button" class="se2_quote3"><span><span>인용구 스타일3</span></span></button></li>
<li class="q4"><button type="button" class="se2_quote4"><span><span>인용구 스타일4</span></span></button></li>
<li class="q5"><button type="button" class="se2_quote5"><span><span>인용구 스타일5</span></span></button></li>
<li class="q6"><button type="button" class="se2_quote6"><span><span>인용구 스타일6</span></span></button></li>
<li class="q7"><button type="button" class="se2_quote7"><span><span>인용구 스타일7</span></span></button></li>
<li class="q8"><button type="button" class="se2_quote8"><span><span>인용구 스타일8</span></span></button></li>
<li class="q9"><button type="button" class="se2_quote9"><span><span>인용구 스타일9</span></span></button></li>
<li class="q10"><button type="button" class="se2_quote10"><span><span>인용구 스타일10</span></span></button></li>
</ul>
<button type="button" class="se2_cancel2"><span>적용취소</span></button>
</div>
</div>
</div>
<!-- //인용구 -->
</li>
</ul><ul>
<li class="husky_seditor_ui_hyperlink"><button type="button" title="링크" class="se2_url"><span class="_buttonRound">링크</span></button>
<!-- 링크 -->
<div class="se2_layer" style="margin-left:-285px">
<div class="se2_in_layer">
<div class="se2_url2">
<input type="text" class="input_ty1" value="http://">
<button type="button" class="se2_apply"><span>적용</span></button><button type="button" class="se2_cancel"><span>취소</span></button>
</div>
</div>
</div>
<!-- //링크 -->
</li>
<li class="husky_seditor_ui_sCharacter"><button type="button" title="특수기호" class="se2_character"><span class="_buttonRound">특수기호</span></button>
<!-- 특수기호 -->
<div class="se2_layer husky_seditor_sCharacter_layer" style="margin-left:-448px;">
<div class="se2_in_layer">
<div class="se2_bx_character">
<ul class="se2_char_tab">
<li class="active"><button type="button" title="일반기호" class="se2_char1"><span>일반기호</span></button>
<div class="se2_s_character">
<ul class="husky_se2m_sCharacter_list">
<li></li>
<!-- 일반기호 목록 -->
<!-- <li class="hover"><button type="button"><span>{</span></button></li><li class="active"><button type="button"><span>}</span></button></li><li><button type="button"><span>〔</span></button></li><li><button type="button"><span>〕</span></button></li><li><button type="button"><span>〈</span></button></li><li><button type="button"><span>〉</span></button></li><li><button type="button"><span>《</span></button></li><li><button type="button"><span>》</span></button></li><li><button type="button"><span>「</span></button></li><li><button type="button"><span>」</span></button></li><li><button type="button"><span>『</span></button></li><li><button type="button"><span>』</span></button></li><li><button type="button"><span>【</span></button></li><li><button type="button"><span>】</span></button></li><li><button type="button"><span>‘</span></button></li><li><button type="button"><span>’</span></button></li><li><button type="button"><span>“</span></button></li><li><button type="button"><span>”</span></button></li><li><button type="button"><span>、</span></button></li><li><button type="button"><span>。</span></button></li><li><button type="button"><span>·</span></button></li><li><button type="button"><span>‥</span></button></li><li><button type="button"><span>…</span></button></li><li><button type="button"><span>§</span></button></li><li><button type="button"><span>※</span></button></li><li><button type="button"><span>☆</span></button></li><li><button type="button"><span>★</span></button></li><li><button type="button"><span>○</span></button></li><li><button type="button"><span>●</span></button></li><li><button type="button"><span>◎</span></button></li><li><button type="button"><span>◇</span></button></li><li><button type="button"><span>◆</span></button></li><li><button type="button"><span>□</span></button></li><li><button type="button"><span>■</span></button></li><li><button type="button"><span>△</span></button></li><li><button type="button"><span>▲</span></button></li><li><button type="button"><span>▽</span></button></li><li><button type="button"><span>▼</span></button></li><li><button type="button"><span>◁</span></button></li><li><button type="button"><span>◀</span></button></li><li><button type="button"><span>▷</span></button></li><li><button type="button"><span>▶</span></button></li><li><button type="button"><span>♤</span></button></li><li><button type="button"><span>♠</span></button></li><li><button type="button"><span>♡</span></button></li><li><button type="button"><span>♥</span></button></li><li><button type="button"><span>♧</span></button></li><li><button type="button"><span>♣</span></button></li><li><button type="button"><span>⊙</span></button></li><li><button type="button"><span>◈</span></button></li><li><button type="button"><span>▣</span></button></li><li><button type="button"><span>◐</span></button></li><li><button type="button"><span>◑</span></button></li><li><button type="button"><span>▒</span></button></li><li><button type="button"><span>▤</span></button></li><li><button type="button"><span>▥</span></button></li><li><button type="button"><span>▨</span></button></li><li><button type="button"><span>▧</span></button></li><li><button type="button"><span>▦</span></button></li><li><button type="button"><span>▩</span></button></li><li><button type="button"><span>±</span></button></li><li><button type="button"><span>×</span></button></li><li><button type="button"><span>÷</span></button></li><li><button type="button"><span>≠</span></button></li><li><button type="button"><span>≤</span></button></li><li><button type="button"><span>≥</span></button></li><li><button type="button"><span>∞</span></button></li><li><button type="button"><span>∴</span></button></li><li><button type="button"><span>°</span></button></li><li><button type="button"><span>′</span></button></li><li><button type="button"><span>″</span></button></li><li><button type="button"><span>∠</span></button></li><li><button type="button"><span>⊥</span></button></li><li><button type="button"><span>⌒</span></button></li><li><button type="button"><span>∂</span></button></li><li><button type="button"><span>≡</span></button></li><li><button type="button"><span>≒</span></button></li><li><button type="button"><span>≪</span></button></li><li><button type="button"><span>≫</span></button></li><li><button type="button"><span>√</span></button></li><li><button type="button"><span>∽</span></button></li><li><button type="button"><span>∝</span></button></li><li><button type="button"><span>∵</span></button></li><li><button type="button"><span>∫</span></button></li><li><button type="button"><span>∬</span></button></li><li><button type="button"><span>∈</span></button></li><li><button type="button"><span>∋</span></button></li><li><button type="button"><span>⊆</span></button></li><li><button type="button"><span>Line truncated
</ul>
</div>
</li>
<li><button type="button" title="숫자와 단위" class="se2_char2"><span>숫자와 단위</span></button>
<div class="se2_s_character">
<ul class="husky_se2m_sCharacter_list">
<li></li>
<!-- 숫자와 단위 목록 -->
<!-- <li class="hover"><button type="button"><span>½</span></button></li><li><button type="button"><span>⅓</span></button></li><li><button type="button"><span>⅔</span></button></li><li><button type="button"><span>¼</span></button></li><li><button type="button"><span>¾</span></button></li><li><button type="button"><span>⅛</span></button></li><li><button type="button"><span>⅜</span></button></li><li><button type="button"><span>⅝</span></button></li><li><button type="button"><span>⅞</span></button></li><li><button type="button"><span>¹</span></button></li><li><button type="button"><span>²</span></button></li><li><button type="button"><span>³</span></button></li><li><button type="button"><span>⁴</span></button></li><li><button type="button"><span>ⁿ</span></button></li><li><button type="button"><span>₁</span></button></li><li><button type="button"><span>₂</span></button></li><li><button type="button"><span>₃</span></button></li><li><button type="button"><span>₄</span></button></li><li><button type="button"><span>Ⅰ</span></button></li><li><button type="button"><span>Ⅱ</span></button></li><li><button type="button"><span>Ⅲ</span></button></li><li><button type="button"><span>Ⅳ</span></button></li><li><button type="button"><span>Ⅴ</span></button></li><li><button type="button"><span>Ⅵ</span></button></li><li><button type="button"><span>Ⅶ</span></button></li><li><button type="button"><span>Ⅷ</span></button></li><li><button type="button"><span>Ⅸ</span></button></li><li><button type="button"><span>Ⅹ</span></button></li><li><button type="button"><span>ⅰ</span></button></li><li><button type="button"><span>ⅱ</span></button></li><li><button type="button"><span>ⅲ</span></button></li><li><button type="button"><span>ⅳ</span></button></li><li><button type="button"><span>ⅴ</span></button></li><li><button type="button"><span>ⅵ</span></button></li><li><button type="button"><span>ⅶ</span></button></li><li><button type="button"><span>ⅷ</span></button></li><li><button type="button"><span>ⅸ</span></button></li><li><button type="button"><span>ⅹ</span></button></li><li><button type="button"><span>₩</span></button></li><li><button type="button"><span>$</span></button></li><li><button type="button"><span>¥</span></button></li><li><button type="button"><span>£</span></button></li><li><button type="button"><span>€</span></button></li><li><button type="button"><span>℃</span></button></li><li><button type="button"><span>A</span></button></li><li><button type="button"><span>℉</span></button></li><li><button type="button"><span>¢</span></button></li><li><button type="button"><span>¤</span></button></li><li><button type="button"><span>‰</span></button></li><li><button type="button"><span>㎕</span></button></li><li><button type="button"><span>㎖</span></button></li><li><button type="button"><span>㎗</span></button></li><li><button type="button"><span>ℓ</span></button></li><li><button type="button"><span>㎘</span></button></li><li><button type="button"><span>㏄</span></button></li><li><button type="button"><span>㎣</span></button></li><li><button type="button"><span>㎤</span></button></li><li><button type="button"><span>㎥</span></button></li><li><button type="button"><span>㎦</span></button></li><li><button type="button"><span>㎙</span></button></li><li><button type="button"><span>㎚</span></button></li><li><button type="button"><span>㎛</span></button></li><li><button type="button"><span>㎜</span></button></li><li><button type="button"><span>㎝</span></button></li><li><button type="button"><span>㎞</span></button></li><li><button type="button"><span>㎟</span></button></li><li><button type="button"><span>㎠</span></button></li><li><button type="button"><span>㎡</span></button></li><li><button type="button"><span>㎢</span></button></li><li><button type="button"><span>㏊</span></button></li><li><button type="button"><span>㎍</span></button></li><li><button type="button"><span>㎎</span></button></li><li><button type="button"><span>㎏</span></button></li><li><button type="button"><span>㏏</span></button></li><li><button type="button"><span>㎈</span></button></li><li><button type="button"><span>㎉</span></button></li><li><button type="button"><span>㏈</span></button></li><li><button type="button"><span>㎧</span></button></li><li><button type="button"><span>㎨</span></button></li><li><button type="button"><span>㎰</span></button></li><li><button type="button"><span>㎱</span></button></li><li><button type="button"><span>㎲</span></button></li><li><button type="button"><span>㎳</span></button></li><li><button type="button"><span>㎴</span></button></li><li><button type="button"><span>㎵</span></button></li><li><button type="button"><span>㎶</span></button></li><li><button type="button"><span>㎷</span></button></li><li><button type="button"><span>㎸</span></button></li><li><button type="button"><span>㎹</span></button><Line truncated
</ul>
</div>
</li>
<li><button type="button" title="원,괄호" class="se2_char3"><span>원,괄호</span></button>
<div class="se2_s_character">
<ul class="husky_se2m_sCharacter_list">
<li></li>
<!-- 원,괄호 목록 -->
<!-- <li><button type="button"><span>㉠</span></button></li><li><button type="button"><span>㉡</span></button></li><li><button type="button"><span>㉢</span></button></li><li><button type="button"><span>㉣</span></button></li><li><button type="button"><span>㉤</span></button></li><li><button type="button"><span>㉥</span></button></li><li><button type="button"><span>㉦</span></button></li><li><button type="button"><span>㉧</span></button></li><li><button type="button"><span>㉨</span></button></li><li><button type="button"><span>㉩</span></button></li><li><button type="button"><span>㉪</span></button></li><li><button type="button"><span>㉫</span></button></li><li><button type="button"><span>㉬</span></button></li><li><button type="button"><span>㉭</span></button></li><li><button type="button"><span>㉮</span></button></li><li><button type="button"><span>㉯</span></button></li><li><button type="button"><span>㉰</span></button></li><li><button type="button"><span>㉱</span></button></li><li><button type="button"><span>㉲</span></button></li><li><button type="button"><span>㉳</span></button></li><li><button type="button"><span>㉴</span></button></li><li><button type="button"><span>㉵</span></button></li><li><button type="button"><span>㉶</span></button></li><li><button type="button"><span>㉷</span></button></li><li><button type="button"><span>㉸</span></button></li><li><button type="button"><span>㉹</span></button></li><li><button type="button"><span>㉺</span></button></li><li><button type="button"><span>㉻</span></button></li><li><button type="button"><span>ⓐ</span></button></li><li><button type="button"><span>ⓑ</span></button></li><li><button type="button"><span>ⓒ</span></button></li><li><button type="button"><span>ⓓ</span></button></li><li><button type="button"><span>ⓔ</span></button></li><li><button type="button"><span>ⓕ</span></button></li><li><button type="button"><span>ⓖ</span></button></li><li><button type="button"><span>ⓗ</span></button></li><li><button type="button"><span>ⓘ</span></button></li><li><button type="button"><span>ⓙ</span></button></li><li><button type="button"><span>ⓚ</span></button></li><li><button type="button"><span>ⓛ</span></button></li><li><button type="button"><span>ⓜ</span></button></li><li><button type="button"><span>ⓝ</span></button></li><li><button type="button"><span>ⓞ</span></button></li><li><button type="button"><span>ⓟ</span></button></li><li><button type="button"><span>ⓠ</span></button></li><li><button type="button"><span>ⓡ</span></button></li><li><button type="button"><span>ⓢ</span></button></li><li><button type="button"><span>ⓣ</span></button></li><li><button type="button"><span>ⓤ</span></button></li><li><button type="button"><span>ⓥ</span></button></li><li><button type="button"><span>ⓦ</span></button></li><li><button type="button"><span>ⓧ</span></button></li><li><button type="button"><span>ⓨ</span></button></li><li><button type="button"><span>ⓩ</span></button></li><li><button type="button"><span>①</span></button></li><li><button type="button"><span>②</span></button></li><li><button type="button"><span>③</span></button></li><li><button type="button"><span>④</span></button></li><li><button type="button"><span>⑤</span></button></li><li><button type="button"><span>⑥</span></button></li><li><button type="button"><span>⑦</span></button></li><li><button type="button"><span>⑧</span></button></li><li><button type="button"><span>⑨</span></button></li><li><button type="button"><span>⑩</span></button></li><li><button type="button"><span>⑪</span></button></li><li><button type="button"><span>⑫</span></button></li><li><button type="button"><span>⑬</span></button></li><li><button type="button"><span>⑭</span></button></li><li><button type="button"><span>⑮</span></button></li><li><button type="button"><span>㈀</span></button></li><li><button type="button"><span>㈁</span></button></li><li class="hover"><button type="button"><span>㈂</span></button></li><li><button type="button"><span>㈃</span></button></li><li><button type="button"><span>㈄</span></button></li><li><button type="button"><span>㈅</span></button></li><li><button type="button"><span>㈆</span></button></li><li><button type="button"><span>㈇</span></button></li><li><button type="button"><span>㈈</span></button></li><li><button type="button"><span>㈉</span></button></li><li><button type="button"><span>㈊</span></button></li><li><button type="button"><span>㈋</span></button></li><li><button type="button"><span>㈌</span></button></li><li><button type="button"><span>㈍</span></button></li><li><button type="button"><span>㈎</span></button></li><li><button type="button"><span>㈏</span></button></li><li><button type="button"><span>㈐</span></button></li><li><button type="button"><span>㈑</span></button></li><li><button type="button"><span>㈒</span></button></li><li><button type="button"><span>㈓</spanLine truncated
</ul>
</div>
</li>
<li><button type="button" title="한글" class="se2_char4"><span>한글</span></button>
<div class="se2_s_character">
<ul class="husky_se2m_sCharacter_list">
<li></li>
<!-- 한글 목록 -->
<!-- <li><button type="button"><span>ㄱ</span></button></li><li><button type="button"><span>ㄲ</span></button></li><li><button type="button"><span>ㄳ</span></button></li><li><button type="button"><span>ㄴ</span></button></li><li><button type="button"><span>ㄵ</span></button></li><li><button type="button"><span>ㄶ</span></button></li><li><button type="button"><span>ㄷ</span></button></li><li><button type="button"><span>ㄸ</span></button></li><li><button type="button"><span>ㄹ</span></button></li><li><button type="button"><span>ㄺ</span></button></li><li><button type="button"><span>ㄻ</span></button></li><li><button type="button"><span>ㄼ</span></button></li><li><button type="button"><span>ㄽ</span></button></li><li><button type="button"><span>ㄾ</span></button></li><li><button type="button"><span>ㄿ</span></button></li><li><button type="button"><span>ㅀ</span></button></li><li><button type="button"><span>ㅁ</span></button></li><li><button type="button"><span>ㅂ</span></button></li><li><button type="button"><span>ㅃ</span></button></li><li><button type="button"><span>ㅄ</span></button></li><li><button type="button"><span>ㅅ</span></button></li><li><button type="button"><span>ㅆ</span></button></li><li><button type="button"><span>ㅇ</span></button></li><li><button type="button"><span>ㅈ</span></button></li><li><button type="button"><span>ㅉ</span></button></li><li><button type="button"><span>ㅊ</span></button></li><li><button type="button"><span>ㅋ</span></button></li><li><button type="button"><span>ㅌ</span></button></li><li><button type="button"><span>ㅍ</span></button></li><li><button type="button"><span>ㅎ</span></button></li><li><button type="button"><span>ㅏ</span></button></li><li><button type="button"><span>ㅐ</span></button></li><li><button type="button"><span>ㅑ</span></button></li><li><button type="button"><span>ㅒ</span></button></li><li><button type="button"><span>ㅓ</span></button></li><li><button type="button"><span>ㅔ</span></button></li><li><button type="button"><span>ㅕ</span></button></li><li><button type="button"><span>ㅖ</span></button></li><li><button type="button"><span>ㅗ</span></button></li><li><button type="button"><span>ㅘ</span></button></li><li><button type="button"><span>ㅙ</span></button></li><li><button type="button"><span>ㅚ</span></button></li><li><button type="button"><span>ㅛ</span></button></li><li><button type="button"><span>ㅜ</span></button></li><li><button type="button"><span>ㅝ</span></button></li><li><button type="button"><span>ㅞ</span></button></li><li><button type="button"><span>ㅟ</span></button></li><li><button type="button"><span>ㅠ</span></button></li><li><button type="button"><span>ㅡ</span></button></li><li><button type="button"><span>ㅢ</span></button></li><li><button type="button"><span>ㅣ</span></button></li><li><button type="button"><span>ㅥ</span></button></li><li><button type="button"><span>ㅦ</span></button></li><li><button type="button"><span>ㅧ</span></button></li><li><button type="button"><span>ㅨ</span></button></li><li><button type="button"><span>ㅩ</span></button></li><li><button type="button"><span>ㅪ</span></button></li><li><button type="button"><span>ㅫ</span></button></li><li><button type="button"><span>ㅬ</span></button></li><li><button type="button"><span>ㅭ</span></button></li><li><button type="button"><span>ㅮ</span></button></li><li><button type="button"><span>ㅯ</span></button></li><li><button type="button"><span>ㅰ</span></button></li><li><button type="button"><span>ㅱ</span></button></li><li><button type="button"><span>ㅲ</span></button></li><li><button type="button"><span>ㅳ</span></button></li><li><button type="button"><span>ㅴ</span></button></li><li><button type="button"><span>ㅵ</span></button></li><li><button type="button"><span>ㅶ</span></button></li><li><button type="button"><span>ㅷ</span></button></li><li><button type="button"><span>ㅸ</span></button></li><li><button type="button"><span>ㅹ</span></button></li><li><button type="button"><span>ㅺ</span></button></li><li><button type="button"><span>ㅻ</span></button></li><li><button type="button"><span>ㅼ</span></button></li><li><button type="button"><span>ㅽ</span></button></li><li><button type="button"><span>ㅾ</span></button></li><li><button type="button"><span>ㅿ</span></button></li><li><button type="button"><span>ㆀ</span></button></li><li><button type="button"><span>ㆁ</span></button></li><li><button type="button"><span>ㆂ</span></button></li><li><button type="button"><span>ㆃ</span></button></li><li><button type="button"><span>ㆄ</span></button></li><li><button type="button"><span>ㆅ</span></button></li><li><button type="button"><span>ㆆ</span></button></li><li><button type="button"><span>ㆇ</span></button></li><li><button type="button"><span>ㆈ</span></button></li><li><button type="button"><span>ㆉ</span></button></li><li><button type="button"><span>ㆊ</span></button></liLine truncated
</ul>
</div>
</li>
<li><button type="button" title="그리스,라틴어" class="se2_char5"><span>그리스,라틴어</span></button>
<div class="se2_s_character">
<ul class="husky_se2m_sCharacter_list">
<li></li>
<!-- 그리스,라틴어 목록 -->
<!-- <li><button type="button"><span>Α</span></button></li><li><button type="button"><span>Β</span></button></li><li><button type="button"><span>Γ</span></button></li><li><button type="button"><span>Δ</span></button></li><li><button type="button"><span>Ε</span></button></li><li><button type="button"><span>Ζ</span></button></li><li><button type="button"><span>Η</span></button></li><li><button type="button"><span>Θ</span></button></li><li><button type="button"><span>Ι</span></button></li><li><button type="button"><span>Κ</span></button></li><li><button type="button"><span>Λ</span></button></li><li><button type="button"><span>Μ</span></button></li><li><button type="button"><span>Ν</span></button></li><li><button type="button"><span>Ξ</span></button></li><li class="hover"><button type="button"><span>Ο</span></button></li><li><button type="button"><span>Π</span></button></li><li><button type="button"><span>Ρ</span></button></li><li><button type="button"><span>Σ</span></button></li><li><button type="button"><span>Τ</span></button></li><li><button type="button"><span>Υ</span></button></li><li><button type="button"><span>Φ</span></button></li><li><button type="button"><span>Χ</span></button></li><li><button type="button"><span>Ψ</span></button></li><li><button type="button"><span>Ω</span></button></li><li><button type="button"><span>α</span></button></li><li><button type="button"><span>β</span></button></li><li><button type="button"><span>γ</span></button></li><li><button type="button"><span>δ</span></button></li><li><button type="button"><span>ε</span></button></li><li><button type="button"><span>ζ</span></button></li><li><button type="button"><span>η</span></button></li><li><button type="button"><span>θ</span></button></li><li><button type="button"><span>ι</span></button></li><li><button type="button"><span>κ</span></button></li><li><button type="button"><span>λ</span></button></li><li><button type="button"><span>μ</span></button></li><li><button type="button"><span>ν</span></button></li><li><button type="button"><span>ξ</span></button></li><li><button type="button"><span>ο</span></button></li><li><button type="button"><span>π</span></button></li><li><button type="button"><span>ρ</span></button></li><li><button type="button"><span>σ</span></button></li><li><button type="button"><span>τ</span></button></li><li><button type="button"><span>υ</span></button></li><li><button type="button"><span>φ</span></button></li><li><button type="button"><span>χ</span></button></li><li><button type="button"><span>ψ</span></button></li><li><button type="button"><span>ω</span></button></li><li><button type="button"><span>Æ</span></button></li><li><button type="button"><span>Ð</span></button></li><li><button type="button"><span>Ħ</span></button></li><li><button type="button"><span>IJ</span></button></li><li><button type="button"><span>Ŀ</span></button></li><li><button type="button"><span>Ł</span></button></li><li><button type="button"><span>Ø</span></button></li><li><button type="button"><span>Œ</span></button></li><li><button type="button"><span>Þ</span></button></li><li><button type="button"><span>Ŧ</span></button></li><li><button type="button"><span>Ŋ</span></button></li><li><button type="button"><span>æ</span></button></li><li><button type="button"><span>đ</span></button></li><li><button type="button"><span>ð</span></button></li><li><button type="button"><span>ħ</span></button></li><li><button type="button"><span>I</span></button></li><li><button type="button"><span>ij</span></button></li><li><button type="button"><span>ĸ</span></button></li><li><button type="button"><span>ŀ</span></button></li><li><button type="button"><span>ł</span></button></li><li><button type="button"><span>ł</span></button></li><li><button type="button"><span>œ</span></button></li><li><button type="button"><span>ß</span></button></li><li><button type="button"><span>þ</span></button></li><li><button type="button"><span>ŧ</span></button></li><li><button type="button"><span>ŋ</span></button></li><li><button type="button"><span>ʼn</span></button></li><li><button type="button"><span>Б</span></button></li><li><button type="button"><span>Г</span></button></li><li><button type="button"><span>Д</span></button></li><li><button type="button"><span>Ё</span></button></li><li><button type="button"><span>Ж</span></button></li><li><button type="button"><span>З</span></button></li><li><button type="button"><span>И</span></button></li><li><button type="button"><span>Й</span></button></li><li><button type="button"><span>Л</span></button></li><li><button type="button"><span>П</span></button></li><li><button type="button"><span>Ц</span></button></li><li><button type="button"><span>Ч</span></button></li><li><button type="button"><span>Ш</span></button></li><li><button type="button"><span>Щ</span></button></li><li><button type="button"><span>Ъ</span></button></li><li><button type="buLine truncated
</ul>
</div>
</li>
<li><button type="button" title="일본어" class="se2_char6"><span>일본어</span></button>
<div class="se2_s_character">
<ul class="husky_se2m_sCharacter_list">
<li></li>
<!-- 일본어 목록 -->
<!-- <li><button type="button"><span>ぁ</span></button></li><li class="hover"><button type="button"><span>あ</span></button></li><li><button type="button"><span>ぃ</span></button></li><li><button type="button"><span>い</span></button></li><li><button type="button"><span>ぅ</span></button></li><li><button type="button"><span>う</span></button></li><li><button type="button"><span>ぇ</span></button></li><li><button type="button"><span>え</span></button></li><li><button type="button"><span>ぉ</span></button></li><li><button type="button"><span>お</span></button></li><li><button type="button"><span>か</span></button></li><li><button type="button"><span>が</span></button></li><li><button type="button"><span>き</span></button></li><li><button type="button"><span>ぎ</span></button></li><li><button type="button"><span>く</span></button></li><li><button type="button"><span>ぐ</span></button></li><li><button type="button"><span>け</span></button></li><li><button type="button"><span>げ</span></button></li><li><button type="button"><span>こ</span></button></li><li><button type="button"><span>ご</span></button></li><li><button type="button"><span>さ</span></button></li><li><button type="button"><span>ざ</span></button></li><li><button type="button"><span>し</span></button></li><li><button type="button"><span>じ</span></button></li><li><button type="button"><span>す</span></button></li><li><button type="button"><span>ず</span></button></li><li><button type="button"><span>せ</span></button></li><li><button type="button"><span>ぜ</span></button></li><li><button type="button"><span>そ</span></button></li><li><button type="button"><span>ぞ</span></button></li><li><button type="button"><span>た</span></button></li><li><button type="button"><span>だ</span></button></li><li><button type="button"><span>ち</span></button></li><li><button type="button"><span>ぢ</span></button></li><li><button type="button"><span>っ</span></button></li><li><button type="button"><span>つ</span></button></li><li><button type="button"><span>づ</span></button></li><li><button type="button"><span>て</span></button></li><li><button type="button"><span>で</span></button></li><li><button type="button"><span>と</span></button></li><li><button type="button"><span>ど</span></button></li><li><button type="button"><span>な</span></button></li><li><button type="button"><span>に</span></button></li><li><button type="button"><span>ぬ</span></button></li><li><button type="button"><span>ね</span></button></li><li><button type="button"><span>の</span></button></li><li><button type="button"><span>は</span></button></li><li><button type="button"><span>ば</span></button></li><li><button type="button"><span>ぱ</span></button></li><li><button type="button"><span>ひ</span></button></li><li><button type="button"><span>び</span></button></li><li><button type="button"><span>ぴ</span></button></li><li><button type="button"><span>ふ</span></button></li><li><button type="button"><span>ぶ</span></button></li><li><button type="button"><span>ぷ</span></button></li><li><button type="button"><span>へ</span></button></li><li><button type="button"><span>べ</span></button></li><li><button type="button"><span>ぺ</span></button></li><li><button type="button"><span>ほ</span></button></li><li><button type="button"><span>ぼ</span></button></li><li><button type="button"><span>ぽ</span></button></li><li><button type="button"><span>ま</span></button></li><li><button type="button"><span>み</span></button></li><li><button type="button"><span>む</span></button></li><li><button type="button"><span>め</span></button></li><li><button type="button"><span>も</span></button></li><li><button type="button"><span>ゃ</span></button></li><li><button type="button"><span>や</span></button></li><li><button type="button"><span>ゅ</span></button></li><li><button type="button"><span>ゆ</span></button></li><li><button type="button"><span>ょ</span></button></li><li><button type="button"><span>よ</span></button></li><li><button type="button"><span>ら</span></button></li><li><button type="button"><span>り</span></button></li><li><button type="button"><span>る</span></button></li><li><button type="button"><span>れ</span></button></li><li><button type="button"><span>ろ</span></button></li><li><button type="button"><span>ゎ</span></button></li><li><button type="button"><span>わ</span></button></li><li><button type="button"><span>ゐ</span></button></li><li><button type="button"><span>ゑ</span></button></li><li><button type="button"><span>を</span></button></li><li><button type="button"><span>ん</span></button></li><li><button type="button"><span>ァ</span></button></li><li><button type="button"><span>ア</span></button></li><li><button type="button"><span>ィ</span></button></li><li><button type="button"><span>イ</span></button></li><li><button type="button"><span>ゥ</span></button></li><li><button type="button"><span>ウ</spanLine truncated
</ul>
</div>
</li>
</ul>
<p class="se2_apply_character">
<label for="char_preview">선택한 기호</label> <input type="text" name="char_preview" id="char_preview" value="®º⊆●○" class="input_ty1"><button type="button" class="se2_confirm"><span>적용</span></button><button type="button" class="se2_cancel husky_se2m_sCharacter_close"><span>취소</span></button>
</p>
</div>
</div>
</div>
<!-- //특수기호 -->
</li>
<li class="husky_seditor_ui_table"><button type="button" title="표" class="se2_table"><span class="_buttonRound">표</span></button>
<!--@lazyload_html create_table-->
<!-- 표 -->
<div class="se2_layer husky_se2m_table_layer" style="margin-left:-171px">
<div class="se2_in_layer">
<div class="se2_table_set">
<fieldset>
<legend>칸수 지정</legend>
<dl class="se2_cell_num">
<dt><label for="row">행</label></dt>
<dd><input id="row" name="" type="text" maxlength="2" value="4" class="input_ty2">
<button type="button" class="se2_add"><span>1행추가</span></button>
<button type="button" class="se2_del"><span>1행삭제</span></button>
</dd>
<dt><label for="col">열</label></dt>
<dd><input id="col" name="" type="text" maxlength="2" value="4" class="input_ty2">
<button type="button" class="se2_add"><span>1열추가</span></button>
<button type="button" class="se2_del"><span>1열삭제</span></button>
</dd>
</dl>
<table border="0" cellspacing="1" class="se2_pre_table husky_se2m_table_preview">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>속성직접입력</legend>
<dl class="se2_t_proper1">
<dt><input type="radio" id="se2_tbp1" name="se2_tbp" checked><label for="se2_tbp1">속성직접입력</label></dt>
<dd>
<dl class="se2_t_proper1_1">
<dt><label>표스타일</label></dt>
<dd><div class="se2_select_ty1"><span class="se2_b_style3 husky_se2m_table_border_style_preview"></span><button type="button" title="더보기" class="se2_view_more"><span>더보기</span></button></div>
<!-- 레이어 : 테두리스타일 -->
<div class="se2_layer_b_style husky_se2m_table_border_style_layer" style="display:none">
<ul>
<li><button type="button" class="se2_b_style1"><span class="se2m_no_border">테두리없음</span></button></li>
<li><button type="button" class="se2_b_style2"><span><span>테두리스타일2</span></span></button></li>
<li><button type="button" class="se2_b_style3"><span><span>테두리스타일3</span></span></button></li>
<li><button type="button" class="se2_b_style4"><span><span>테두리스타일4</span></span></button></li>
<li><button type="button" class="se2_b_style5"><span><span>테두리스타일5</span></span></button></li>
<li><button type="button" class="se2_b_style6"><span><span>테두리스타일6</span></span></button></li>
<li><button type="button" class="se2_b_style7"><span><span>테두리스타일7</span></span></button></li>
</ul>
</div>
<!-- //레이어 : 테두리스타일 -->
</dd>
</dl>
<dl class="se2_t_proper1_1 se2_t_proper1_2">
<dt><label for="se2_b_width">테두리두께</label></dt>
<dd><input id="se2_b_width" name="" type="text" maxlength="2" value="1" class="input_ty1">
<button type="button" title="1px 더하기" class="se2_add se2m_incBorder"><span>1px 더하기</span></button>
<button type="button" title="1px 빼기" class="se2_del se2m_decBorder"><span>1px 빼기</span></button>
</dd>
</dl>
<dl class="se2_t_proper1_1 se2_t_proper1_3">
<dt><label for="se2_b_color">테두리색</label></dt>
<dd><input id="se2_b_color" name="" type="text" maxlength="7" value="#cccccc" class="input_ty3"><span class="se2_pre_color"><button type="button" style="background:#cccccc;"><span>색찾기</span></button></span>
<!-- 레이어 : 테두리색 -->
<div class="se2_layer se2_b_t_b1" style="clear:both;display:none;position:absolute;top:20px;left:-147px;">
<div class="se2_in_layer husky_se2m_table_border_color_pallet">
</div>
</div>
<!-- //레이어 : 테두리색-->
</dd>
</dl>
<div class="se2_t_dim0"></div><!-- 테두리 없음일때 딤드레이어 -->
<dl class="se2_t_proper1_1 se2_t_proper1_4">
<dt><label for="se2_cellbg">셀 배경색</label></dt>
<dd><input id="se2_cellbg" name="" type="text" maxlength="7" value="#ffffff" class="input_ty3"><span class="se2_pre_color"><button type="button" style="background:#ffffff;"><span>색찾기</span></button></span>
<!-- 레이어 : 셀배경색 -->
<div class="se2_layer se2_b_t_b1" style="clear:both;display:none;position:absolute;top:20px;left:-147px;">
<div class="se2_in_layer husky_se2m_table_bgcolor_pallet">
</div>
</div>
<!-- //레이어 : 셀배경색-->
</dd>
</dl>
</dd>
</dl>
</fieldset>
<fieldset>
<legend>표스타일</legend>
<dl class="se2_t_proper2">
<dt><input type="radio" id="se2_tbp2" name="se2_tbp"><label for="se2_tbp2">스타일 선택</label></dt>
<dd><div class="se2_select_ty2"><span class="se2_t_style1 husky_se2m_table_style_preview"></span><button type="button" title="더보기" class="se2_view_more"><span>더보기</span></button></div>
<!-- 레이어 : 표템플릿선택 -->
<div class="se2_layer_t_style husky_se2m_table_style_layer" style="display:none">
<ul class="se2_scroll">
<li><button type="button" class="se2_t_style1"><span>표스타일1</span></button></li>
<li><button type="button" class="se2_t_style2"><span>표스타일2</span></button></li>
<li><button type="button" class="se2_t_style3"><span>표스타일3</span></button></li>
<li><button type="button" class="se2_t_style4"><span>표스타일4</span></button></li>
<li><button type="button" class="se2_t_style5"><span>표스타일5</span></button></li>
<li><button type="button" class="se2_t_style6"><span>표스타일6</span></button></li>
<li><button type="button" class="se2_t_style7"><span>표스타일7</span></button></li>
<li><button type="button" class="se2_t_style8"><span>표스타일8</span></button></li>
<li><button type="button" class="se2_t_style9"><span>표스타일9</span></button></li>
<li><button type="button" class="se2_t_style10"><span>표스타일10</span></button></li>
<li><button type="button" class="se2_t_style11"><span>표스타일11</span></button></li>
<li><button type="button" class="se2_t_style12"><span>표스타일12</span></button></li>
<li><button type="button" class="se2_t_style13"><span>표스타일13</span></button></li>
<li><button type="button" class="se2_t_style14"><span>표스타일14</span></button></li>
<li><button type="button" class="se2_t_style15"><span>표스타일15</span></button></li>
<li><button type="button" class="se2_t_style16"><span>표스타일16</span></button></li>
</ul>
</div>
<!-- //레이어 : 표템플릿선택 -->
</dd>
</dl>
</fieldset>
<p class="se2_btn_area">
<button type="button" class="se2_apply"><span>적용</span></button><button type="button" class="se2_cancel"><span>취소</span></button>
</p>
<!-- 딤드레이어 -->
<div class="se2_t_dim3"></div>
<!-- //딤드레이어 -->
</div>
</div>
</div>
<!-- //표 -->
<!--//@lazyload_html-->
</li>
<li class="husky_seditor_ui_findAndReplace"><button type="button" title="찾기/바꾸기" class="se2_find"><span class="_buttonRound">찾기/바꾸기</span></button>
<!--@lazyload_html find_and_replace-->
<!-- 찾기/바꾸기 -->
<div class="se2_layer husky_se2m_findAndReplace_layer" style="margin-left:-238px;">
<div class="se2_in_layer">
<div class="se2_bx_find_revise">
<button type="button" title="닫기" class="se2_close husky_se2m_cancel"><span>닫기</span></button>
<h3>찾기/바꾸기</h3>
<ul>
<li class="active"><button type="button" class="se2_tabfind"><span>찾기</span></button></li>
<li><button type="button" class="se2_tabrevise"><span>바꾸기</span></button></li>
</ul>
<div class="se2_in_bx_find husky_se2m_find_ui" style="display:block">
<dl>
<dt><label for="find_word">찾을단어</label></dt><dd><input type="text" id="find_word" value="스마트에디터" class="input_ty1"></dd>
</dl>
<p class="se2_find_btns">
<button type="button" class="se2_find_next husky_se2m_find_next"><span>다음 찾기</span></button><button type="button" class="se2_cancel husky_se2m_cancel"><span>취소</span></button>
</p>
</div>
<div class="se2_in_bx_revise husky_se2m_replace_ui" style="display:none">
<dl>
<dt><label for="find_word2">찾을단어</label></dt><dd><input type="text" id="find_word2" value="스마트에디터" class="input_ty1"></dd>
<dt><label for="revise_word">바꿀단어</label></dt><dd><input type="text" id="revise_word" value="스마트에디터" class="input_ty1"></dd>
</dl>
<p class="se2_find_btns">
<button type="button" class="se2_find_next2 husky_se2m_replace_find_next"><span>다음찾기</span></button><button type="button" class="se2_revise1 husky_se2m_replace"><span>바꾸기</span></button><button type="button" class="se2_revise2 husky_se2m_replace_all"><span>모두 바꾸기</span></button><button type="button" class="se2_cancel husky_se2m_cancel"><span>취소</span></button>
</p>
</div>
<button type="button" title="닫기" class="se2_close husky_se2m_cancel"><span>닫기</span></button>
</div>
</div>
</div>
<!-- //찾기/바꾸기 -->
<!--//@lazyload_html-->
</li>
</ul>
<ul class="se2_multy">
<li class="se2_mn husky_seditor_ui_photo_attach"><button type="button" class="se2_photo ico_btn"><span class="se2_icon"></span><span class="se2_mntxt">사진<span class="se2_new"></span></span></button></li>
</ul>
</div>
<!-- //704이상 -->
</div>
<!-- 접근성 도움말 레이어 -->
<div class="se2_layer se2_accessibility" style="display:none;">
<div class="se2_in_layer">
<button type="button" title="닫기" class="se2_close"><span>닫기</span></button>
<h3><strong>접근성 도움말</strong></h3>
<div class="box_help">
<div>
<strong>툴바</strong>
<p>ALT+F10 을 누르면 툴바로 이동합니다. 다음 버튼은 TAB 으로 이전 버튼은 SHIFT+TAB 으로 이동 가능합니다. ENTER 를 누르면 해당 버튼의 기능이 동작하고 글쓰기 영역으로 포커스가 이동합니다. ESC 를 누르면 아무런 기능을 실행하지 않고 글쓰기 영역으로 포커스가 이동합니다.</p>
<strong>빠져 나가기</strong>
<p>ALT+. 를 누르면 스마트 에디터 다음 요소로 ALT+, 를 누르면 스마트에디터 이전 요소로 빠져나갈 수 있습니다.</p>
<strong>명령어 단축키</strong>
<ul>
<li>CTRL+B <span>굵게</span></li>
<li>SHIFT+TAB <span>내어쓰기</span></li>
<li>CTRL+U <span>밑줄</span></li>
<li>CTRL+F <span>찾기</span></li>
<li>CTRL+I <span>기울임 글꼴</span></li>
<li>CTRL+H <span>바꾸기</span></li>
<li>CTRL+D <span>취소선</span></li>
<li>CTRL+K <span>링크걸기</span></li>
<li>TAB <span>들여쓰기</span></li>
</ul>
</div>
</div>
<div class="se2_btns">
<button type="button" class="se2_close2"><span>닫기</span></button>
</div>
</div>
</div>
<!-- //접근성 도움말 레이어 -->
<hr>
<!-- 입력 -->
<div class="se2_input_area husky_seditor_editing_area_container">
<iframe src="about:blank" id="se2_iframe" name="se2_iframe" class="se2_input_wysiwyg" width="400" height="300" title="글쓰기 영역 : 도구 모음은 ALT+F10을, 도움말은 ALT+0을 누르세요." frameborder="0" style="display:block;"></iframe>
<textarea name="" rows="10" cols="100" title="HTML 편집 모드" class="se2_input_syntax se2_input_htmlsrc" style="display:none;outline-style:none;resize:none"> </textarea>
<textarea name="" rows="10" cols="100" title="TEXT 편집 모드" class="se2_input_syntax se2_input_text" style="display:none;outline-style:none;resize:none;"> </textarea>
<!-- 입력창 조절 안내 레이어 -->
<div class="ly_controller husky_seditor_resize_notice" style="z-index:20;display:none;">
<p>아래 영역을 드래그하여 입력창 크기를 조절할 수 있습니다.</p>
<button type="button" title="닫기" class="bt_clse"><span>닫기</span></button>
<span class="ic_arr"></span>
</div>
<!-- //입력창 조절 안내 레이어 -->
<div class="quick_wrap">
<!-- 표/글양식 간단편집기 -->
<!--@lazyload_html qe_table-->
<div class="q_table_wrap" style="z-index: 150;">
<button class="_fold se2_qmax q_open_table_full" style="position:absolute; display:none;top:340px;left:210px;z-index:30;" title="최대화" type="button"><span>퀵에디터최대화</span></button>
<div class="_full se2_qeditor se2_table_set" style="position:absolute;display:none;top:135px;left:661px;z-index:30;">
<div class="se2_qbar q_dragable"><span class="se2_qmini"><button title="최소화" class="q_open_table_fold"><span>퀵에디터최소화</span></button></span></div>
<div class="se2_qbody0">
<div class="se2_qbody">
<dl class="se2_qe1">
<dt>삽입</dt><dd><button class="se2_addrow" title="행삽입" type="button"><span>행삽입</span></button><button class="se2_addcol" title="열삽입" type="button"><span>열삽입</span></button></dd>
<dt>분할</dt><dd><button class="se2_seprow" title="행분할" type="button"><span>행분할</span></button><button class="se2_sepcol" title="열분할" type="button"><span>열분할</span></button></dd>
<dt>삭제</dt><dd><button class="se2_delrow" title="행삭제" type="button"><span>행삭제</span></button><button class="se2_delcol" title="열삭제" type="button"><span>열삭제</span></button></dd>
<dt>병합</dt><dd><button class="se2_merrow" title="행병합" type="button"><span>행병합</span></button></dd>
</dl>
<div class="se2_qe2 se2_qe2_3"> <!-- 테이블 퀵에디터의 경우만, se2_qe2_3제거 -->
<!-- 샐배경색 -->
<dl class="se2_qe2_1">
<dt><input type="radio" checked="checked" name="se2_tbp3" id="se2_cellbg2" class="husky_se2m_radio_bgc"><label for="se2_cellbg2">셀 배경색</label></dt>
<dd><span class="se2_pre_color"><button style="background: none repeat scroll 0% 0% rgb(255, 255, 255);" type="button" class="husky_se2m_table_qe_bgcolor_btn"><span>색찾기</span></button></span>
<!-- layer:셀배경색 -->
<div style="display:none;position:absolute;top:20px;left:0px;" class="se2_layer se2_b_t_b1">
<div class="se2_in_layer husky_se2m_tbl_qe_bg_paletteHolder">
</div>
</div>
<!-- //layer:셀배경색-->
</dd>
</dl>
<!-- //샐배경색 -->
<!-- 배경이미지선택 -->
<dl style="display: none;" class="se2_qe2_2 husky_se2m_tbl_qe_review_bg">
<dt><input type="radio" name="se2_tbp3" id="se2_cellbg3" class="husky_se2m_radio_bgimg"><label for="se2_cellbg3">이미지</label></dt>
<dd><span class="se2_pre_bgimg"><button class="husky_se2m_table_qe_bgimage_btn se2_cellimg0" type="button"><span>배경이미지선택</span></button></span>
<!-- layer:배경이미지선택 -->
<div style="display:none;position:absolute;top:20px;left:-155px;" class="se2_layer se2_b_t_b1">
<div class="se2_in_layer husky_se2m_tbl_qe_bg_img_paletteHolder">
<ul class="se2_cellimg_set">
<li><button class="se2_cellimg0" type="button"><span>배경없음</span></button></li>
<li><button class="se2_cellimg1" type="button"><span>배경1</span></button></li>
<li><button class="se2_cellimg2" type="button"><span>배경2</span></button></li>
<li><button class="se2_cellimg3" type="button"><span>배경3</span></button></li>
<li><button class="se2_cellimg4" type="button"><span>배경4</span></button></li>
<li><button class="se2_cellimg5" type="button"><span>배경5</span></button></li>
<li><button class="se2_cellimg6" type="button"><span>배경6</span></button></li>
<li><button class="se2_cellimg7" type="button"><span>배경7</span></button></li>
<li><button class="se2_cellimg8" type="button"><span>배경8</span></button></li>
<li><button class="se2_cellimg9" type="button"><span>배경9</span></button></li>
<li><button class="se2_cellimg10" type="button"><span>배경10</span></button></li>
<li><button class="se2_cellimg11" type="button"><span>배경11</span></button></li>
<li><button class="se2_cellimg12" type="button"><span>배경12</span></button></li>
<li><button class="se2_cellimg13" type="button"><span>배경13</span></button></li>
<li><button class="se2_cellimg14" type="button"><span>배경14</span></button></li>
<li><button class="se2_cellimg15" type="button"><span>배경15</span></button></li>
<li><button class="se2_cellimg16" type="button"><span>배경16</span></button></li>
<li><button class="se2_cellimg17" type="button"><span>배경17</span></button></li>
<li><button class="se2_cellimg18" type="button"><span>배경18</span></button></li>
<li><button class="se2_cellimg19" type="button"><span>배경19</span></button></li>
<li><button class="se2_cellimg20" type="button"><span>배경20</span></button></li>
<li><button class="se2_cellimg21" type="button"><span>배경21</span></button></li>
<li><button class="se2_cellimg22" type="button"><span>배경22</span></button></li>
<li><button class="se2_cellimg23" type="button"><span>배경23</span></button></li>
<li><button class="se2_cellimg24" type="button"><span>배경24</span></button></li>
<li><button class="se2_cellimg25" type="button"><span>배경25</span></button></li>
<li><button class="se2_cellimg26" type="button"><span>배경26</span></button></li>
<li><button class="se2_cellimg27" type="button"><span>배경27</span></button></li>
<li><button class="se2_cellimg28" type="button"><span>배경28</span></button></li>
<li><button class="se2_cellimg29" type="button"><span>배경29</span></button></li>
<li><button class="se2_cellimg30" type="button"><span>배경30</span></button></li>
<li><button class="se2_cellimg31" type="button"><span>배경31</span></button></li>
</ul>
</div>
</div>
<!-- //layer:배경이미지선택-->
</dd>
</dl>
<!-- //배경이미지선택 -->
</div>
<dl style="display: block;" class="se2_qe3 se2_t_proper2">
<dt><input type="radio" name="se2_tbp3" id="se2_tbp4" class="husky_se2m_radio_template"><label for="se2_tbp4">표 스타일</label></dt>
<dd>
<div class="se2_qe3_table">
<div class="se2_select_ty2"><span class="se2_t_style1"></span><button class="se2_view_more husky_se2m_template_more" title="더보기" type="button"><span>더보기</span></button></div>
<!-- layer:표스타일 -->
<div style="display:none;top:33px;left:0;margin:0;" class="se2_layer_t_style">
<ul>
<li><button class="se2_t_style1" type="button"><span>표 스타일1</span></button></li>
<li><button class="se2_t_style2" type="button"><span>표 스타일2</span></button></li>
<li><button class="se2_t_style3" type="button"><span>표 스타일3</span></button></li>
<li><button class="se2_t_style4" type="button"><span>표 스타일4</span></button></li>
<li><button class="se2_t_style5" type="button"><span>표 스타일5</span></button></li>
<li><button class="se2_t_style6" type="button"><span>표 스타일6</span></button></li>
<li><button class="se2_t_style7" type="button"><span>표 스타일7</span></button></li>
<li><button class="se2_t_style8" type="button"><span>표 스타일8</span></button></li>
<li><button class="se2_t_style9" type="button"><span>표 스타일9</span></button></li>
<li><button class="se2_t_style10" type="button"><span>표 스타일10</span></button></li>
<li><button class="se2_t_style11" type="button"><span>표 스타일11</span></button></li>
<li><button class="se2_t_style12" type="button"><span>표 스타일12</span></button></li>
<li><button class="se2_t_style13" type="button"><span>표 스타일13</span></button></li>
<li><button class="se2_t_style14" type="button"><span>표 스타일14</span></button></li>
<li><button class="se2_t_style15" type="button"><span>표 스타일15</span></button></li>
<li><button class="se2_t_style16" type="button"><span>표 스타일16</span></button></li>
</ul>
</div>
<!-- //layer:표스타일 -->
</div>
</dd>
</dl>
<div style="display:none" class="se2_btn_area">
<button class="se2_btn_save" type="button"><span>My 리뷰저장</span></button>
</div>
<div class="se2_qdim0 husky_se2m_tbl_qe_dim1"></div>
<div class="se2_qdim4 husky_se2m_tbl_qe_dim2"></div>
<div class="se2_qdim6c husky_se2m_tbl_qe_dim_del_col"></div>
<div class="se2_qdim6r husky_se2m_tbl_qe_dim_del_row"></div>
</div>
</div>
</div>
</div>
<!--//@lazyload_html-->
<!-- //표/글양식 간단편집기 -->
<!-- 이미지 간단편집기 -->
<!--@lazyload_html qe_image-->
<div class="q_img_wrap">
<button class="_fold se2_qmax q_open_img_full" style="position:absolute;display:none;top:240px;left:210px;z-index:30;" title="최대화" type="button"><span>퀵에디터최대화</span></button>
<div class="_full se2_qeditor se2_table_set" style="position:absolute;display:none;top:140px;left:450px;z-index:30;">
<div class="se2_qbar q_dragable"><span class="se2_qmini"><button title="최소화" class="q_open_img_fold"><span>퀵에디터최소화</span></button></span></div>
<div class="se2_qbody0">
<div class="se2_qbody">
<div class="se2_qe10">
<label for="se2_swidth">가로</label><input type="text" class="input_ty1 widthimg" name="" id="se2_swidth" value="1024"><label class="se2_sheight" for="se2_sheight">세로</label><input type="text" class="input_ty1 heightimg" name="" id="se2_sheight" value="768"><button class="se2_sreset" type="button"><span>초기화</span></button>
<div class="se2_qe10_1"><input type="checkbox" name="" class="se2_srate" id="se2_srate"><label for="se2_srate">가로 세로 비율 유지</label></div>
</div>
<div class="se2_qe11">
<dl class="se2_qe11_1">
<dt><label for="se2_b_width2">테두리두께</label></dt>
<dd class="se2_numberStepper"><input type="text" class="input_ty1 input bordersize" value="1" maxlength="2" name="" id="se2_b_width2" readonly="readonly">
<button class="se2_add plus" type="button"><span>1px 더하기</span></button>
<button class="se2_del minus" type="button"><span>1px 빼기</span></button>
</dd>
</dl>
<dl class="se2_qe11_2">
<dt>테두리 색</dt>
<dd><span class="se2_pre_color"><button style="background:#000000;" type="button" class="husky_se2m_img_qe_bgcolor_btn"><span>색찾기</span></button></span>
<!-- layer:테두리 색 -->
<div style="display:none;position:absolute;top:20px;left:-209px;" class="se2_layer se2_b_t_b1">
<div class="se2_in_layer husky_se2m_img_qe_bg_paletteHolder">
</div>
</div>
<!-- //layer:테두리 색 -->
</dd>
</dl>
</div>
<dl class="se2_qe12">
<dt>정렬</dt>
<dd><button title="정렬없음" class="se2_align0" type="button"><span>정렬없음</span></button><button title="좌측정렬" class="se2_align1 left" type="button"><span>좌측정렬</span></button><button title="우측정렬" class="se2_align2 right" type="button"><span>우측정렬</span></button>
</dd>
</dl>
<button class="se2_highedit" type="button"><span>고급편집</span></button>
<div class="se2_qdim0"></div>
</div>
</div>
</div>
</div>
<!--//@lazyload_html-->
<!-- 이미지 간단편집기 -->
</div>
</div>
<!-- //입력 -->
<!-- 입력창조절/ 모드전환 -->
<div class="se2_conversion_mode">
<button type="button" class="se2_inputarea_controller husky_seditor_editingArea_verticalResizer" title="입력창 크기 조절"><span>입력창 크기 조절</span></button>
<ul class="se2_converter">
<li class="active"><button type="button" class="se2_to_editor"><span>Editor</span></button></li>
<li><button type="button" class="se2_to_html"><span>HTML</span></button></li>
<li><button type="button" class="se2_to_text"><span>TEXT</span></button></li>
</ul>
</div>
<!-- //입력창조절/ 모드전환 -->
<hr>
</div>
</div>
<!-- SE2 Markup End -->
</body>
</html>
+29
View File
@@ -0,0 +1,29 @@
(function($){
$(document).ready(function() {
$(".smarteditor2").each( function(index){
var get_id = $(this).attr("id");
if( !get_id || $(this).prop("nodeName") != 'TEXTAREA' ) return true;
nhn.husky.EZCreator.createInIFrame({
oAppRef: oEditors,
elPlaceHolder: get_id,
sSkinURI: g5_editor_url+"/SmartEditor2Skin.html",
htParams : {
bUseToolbar : true, // 툴바 사용 여부 (true:사용/ false:사용하지 않음)
bUseVerticalResizer : true, // 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)
bUseModeChanger : true, // 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)
//aAdditionalFontList : aAdditionalFontSet, // 추가 글꼴 목록
fOnBeforeUnload : function(){
//alert("완료!");
}
}, //boolean
fOnAppLoad : function(){
//예제 코드
//oEditors.getById["ir1"].exec("PASTE_HTML", ["로딩이 완료된 후에 본문에 삽입되는 text입니다."]);
},
fCreator: "createSEditor2"
});
});
});
})(jQuery);
@@ -0,0 +1,336 @@
@charset "UTF-8";
/* NHN Web Standardization Team (http://html.nhndesign.com/) HHJ 090226 */
/* COMMON */
body, #smart_editor2, #smart_editor2 p, #smart_editor2 h1, #smart_editor2 h2, #smart_editor2 h3, #smart_editor2 h4, #smart_editor2 h5, #smart_editor2 h6, #smart_editor2 ul, #smart_editor2 ol, #smart_editor2 li, #smart_editor2 dl, #smart_editor2 dt, #smart_editor2 dd, #smart_editor2 table, #smart_editor2 th, #smart_editor2 td, #smart_editor2 form, #smart_editor2 fieldset, #smart_editor2 legend, #smart_editor2 input, #smart_editor2 textarea, #smart_editor2 button, #smart_editor2 select { margin: 0; padding: 0; }
#smart_editor2, #smart_editor2 h1, #smart_editor2 h2, #smart_editor2 h3, #smart_editor2 h4, #smart_editor2 h5, #smart_editor2 h6, #smart_editor2 input, #smart_editor2 textarea, #smart_editor2 select, #smart_editor2 table, #smart_editor2 button { font-family: '돋움',Dotum,Helvetica,sans-serif; font-size: 12px; color: #666; }
#smart_editor2 span, #smart_editor2 em { font-size: 12px; }
#smart_editor2 em, #smart_editor2 address { font-style: normal; }
#smart_editor2 img, #smart_editor2 fieldset { border: 0; }
#smart_editor2 hr { display: none; }
#smart_editor2 ol, #smart_editor2 ul { list-style: none; }
#smart_editor2 button { border: 0; background: none; font-size: 11px; vertical-align: top; cursor: pointer; }
#smart_editor2 button span, #smart_editor2 button em { visibility: hidden; overflow: hidden; position: absolute; top: 0; font-size: 0; line-height: 0; }
#smart_editor2 legend, #smart_editor2 .blind { visibility: hidden; overflow: hidden; position: absolute; width: 0; height: 0; font-size: 0; line-height: 0; }
#smart_editor2 .input_ty1 { height: 14px; margin: 0; padding: 4px 2px 0 4px; border: 1px solid #c7c7c7; font-size: 11px; color: #666; }
#smart_editor2 a:link, #smart_editor2 a:visited, #smart_editor2 a:active, #smart_editor2 a:focus { color: #666; text-decoration: none; }
#smart_editor2 a:hover { color: #666; text-decoration: underline; }
/* LAYOUT */
#smart_editor2 .se2_header { margin: 10px 0 29px 0; }
#smart_editor2 .se2_bi { float: left; width: 93px; height: 20px; margin: 0; padding: 0; background: url("../img/ko_KR/btn_set.png?130306") -343px -358px no-repeat; font-size: 0; line-height: 0; text-indent: -10000px; vertical-align: middle; }
#smart_editor2 .se2_allhelp { display: inline-block; width: 18px; height: 18px; padding: 0; background: url("../img/ko_KR/btn_set.png?130306") -437px -358px no-repeat; font-size: 0; line-height: 0; text-indent: -10000px; vertical-align: middle; }
#smart_editor2 #smart_editor2_content { border: 1px solid #b5b5b5; }
#smart_editor2 .se2_tool { overflow: visible; position: relative; z-index: 25; }
/* EDITINGAREA */
#smart_editor2 .se2_input_area { position: relative; z-index: 22; height: 400px; margin: 0; padding: 0; *zoom: 1; }
#smart_editor2 .se2_input_wysiwyg, #smart_editor2 .se2_input_syntax { display: block; overflow: auto; width: 100%; height: 100%; margin: 0; *margin: -1px 0 0 0; border: 0; }
/* EDITINGMODE */
#smart_editor2 .se2_conversion_mode { position: relative; height: 15px; padding-top: 1px; border-top: 1px solid #b5b5b5; background: url("../img/icon_set.gif") 0 -896px repeat-x; }
#smart_editor2 .se2_inputarea_controller { display: block; clear: both; position: relative; width: 100%; height: 15px; text-align: center; cursor: n-resize; }
#smart_editor2 .se2_inputarea_controller span, #smart_editor2 .controller_on span { background: url("../img/ico_extend.png") no-repeat; }
#smart_editor2 .se2_inputarea_controller span { position: static; display: inline-block; visibility: visible; overflow: hidden; height: 15px; padding-left: 11px; background-position: 0 2px; color: #888; font-size: 11px; letter-spacing: -1px; line-height: 16px; white-space: nowrap; }
* + html #smart_editor2 .se2_inputarea_controller span { line-height: 14px; }
#smart_editor2 .controller_on span { background-position: 0 -21px; color: #249c04; }
#smart_editor2 .ly_controller { display: block; position: absolute; bottom: 2px; left: 50%; width: 287px; margin-left: -148px; padding: 8px 0 7px 9px; border: 1px solid #827f7c; background: #fffdef; }
#smart_editor2 .ly_controller p { color: #666; font-size: 11px; letter-spacing: -1px; line-height: 11px; }
#smart_editor2 .ly_controller .bt_clse, #smart_editor2 .ly_controller .ic_arr { position: absolute; background: url("../img/ico_extend.png") no-repeat; }
#smart_editor2 .ly_controller .bt_clse { top: 5px; right: 4px; width: 14px; height: 15px; background-position: 1px -43px; }
#smart_editor2 .ly_controller .ic_arr { top: 25px; left: 50%; width: 10px; height: 6px; margin-left: -5px; background-position: 0 -65px; }
#smart_editor2 .se2_converter { float: left; position: absolute; top: -1px; right: 3px; z-index: 20; }
#smart_editor2 .se2_converter li { float: left; }
#smart_editor2 .se2_converter .se2_to_editor { width: 59px; height: 15px; background: url("../img/ko_KR/btn_set.png?130306") 0 -85px no-repeat; vertical-align: top; }
#smart_editor2 .se2_converter .se2_to_html { width: 59px; height: 15px; background: url("../img/ko_KR/btn_set.png?130306") -59px -70px no-repeat; vertical-align: top; }
#smart_editor2 .se2_converter .se2_to_text { width: 60px; height: 15px; background: url("../img/ko_KR/btn_set.png?130306") -417px -466px no-repeat; vertical-align: top; }
#smart_editor2 .se2_converter .active .se2_to_editor { width: 59px; height: 15px; background: url("../img/ko_KR/btn_set.png?130306") 0 -70px no-repeat; vertical-align: top; }
#smart_editor2 .se2_converter .active .se2_to_html { width: 59px; height: 15px; background: url("../img/ko_KR/btn_set.png?130306") -59px -85px no-repeat; vertical-align: top; }
#smart_editor2 .se2_converter .active .se2_to_text { width: 60px; height: 15px; background: url("../img/ko_KR/btn_set.png?130306") -417px -481px no-repeat; vertical-align: top; }
/* EDITINGAREA_HTMLSRC */
#smart_editor2 .off .ico_btn, #smart_editor2 .off .se2_more, #smart_editor2 .off .se2_more2, #smart_editor2 .off .se2_font_family, #smart_editor2 .off .se2_font_size, #smart_editor2 .off .se2_bold, #smart_editor2 .off .se2_underline, #smart_editor2 .off .se2_italic, #smart_editor2 .off .se2_tdel, #smart_editor2 .off .se2_fcolor, #smart_editor2 .off .se2_fcolor_more, #smart_editor2 .off .se2_bgcolor, #smart_editor2 .off .se2_bgcolor_more, #smart_editor2 .off .se2_left, #smart_editor2 .off .se2_center, #smart_editor2 .off .se2_right, #smart_editor2 .off .se2_justify, #smart_editor2 .off .se2_ol, #smart_editor2 .off .se2_ul, #smart_editor2 .off .se2_indent, #smart_editor2 .off .se2_outdent, #smart_editor2 .off .se2_lineheight, #smart_editor2 .off .se2_del_style, #smart_editor2 .off .se2_blockquote, #smart_editor2 .off .se2_summary, #smart_editor2 .off .se2_footnote, #smart_editor2 .off .se2_url, #smart_editor2 .off .se2_emoticon, #smart_editor2 .off .se2_character, #smart_editor2 .off .se2_table, #smart_editor2 .off .se2_find, #smart_editor2 .off .se2_spelling, #smart_editor2 .off .se2_sup, #smart_editor2 .off .se2_sub, #smart_editor2 .off .se2_text_tool_more, #smart_editor2 .off .se2_new, #smart_editor2 .off .selected_color, #smart_editor2 .off .se2_lineSticker { -ms-filter: alpha(opacity=50); opacity: .5; cursor: default; filter: alpha(opacity=50); }
/* LAYER */
#smart_editor2 .se2_text_tool .se2_layer { display: none; float: left; position: absolute; top: 20px; left: 0; z-index: 50; margin: 0; padding: 0; border: 1px solid #bcbbbb; background: #fafafa; }
#smart_editor2 .se2_text_tool li.active { z-index: 50; }
#smart_editor2 .se2_text_tool .active .se2_layer { display: block; }
#smart_editor2 .se2_text_tool .active li .se2_layer { display: none; }
#smart_editor2 .se2_text_tool .active .active .se2_layer { display: block; }
#smart_editor2 .se2_text_tool .se2_layer .se2_in_layer { float: left; margin: 0; padding: 0; border: 1px solid #fff; background: #fafafa; }
/* TEXT_TOOLBAR */
#smart_editor2 .se2_text_tool { position: relative; clear: both; z-index: 30; padding: 4px 0 4px 3px; background: #f4f4f4 url("../img/bg_text_tool.gif") 0 0 repeat-x; border-bottom: 1px solid #b5b5b5; *zoom: 1; }
#smart_editor2 .se2_text_tool:after { content: ""; display: block; clear: both; }
#smart_editor2 .se2_text_tool ul { float: left; display: inline; margin-right: 3px; padding-left: 1px; white-space: nowrap; }
#smart_editor2 .se2_text_tool li { _display: inline; float: left; position: relative; z-index: 30; }
#smart_editor2 .se2_text_tool button, #smart_editor2 .se2_multy .se2_icon { width: 21px; height: 21px; background: url("../img/ko_KR/text_tool_set.png?140317") no-repeat; vertical-align: top; }
#smart_editor2 .se2_text_tool .se2_font_type { position: relative; }
#smart_editor2 .se2_text_tool .se2_font_type li { margin-left: 3px; }
#smart_editor2 .se2_text_tool .se2_font_type button { text-align: left; }
#smart_editor2 .se2_text_tool .se2_font_type button.se2_font_family span, #smart_editor2 .se2_text_tool .se2_font_type button.se2_font_size span { display: inline-block; visibility: visible; position: static; width: 52px; height: 20px; padding: 0 0 0 6px; font-size: 12px; line-height: 20px; *line-height: 22px; color: #333; *zoom: 1; }
#smart_editor2 .se2_text_tool .se2_multy { position: absolute; top: 0; right: 0; padding-left: 0; margin-right: 0; white-space: nowrap; border-left: 1px solid #e0dedf; }
#smart_editor2 .se2_text_tool .se2_multy .se2_mn { float: left; white-space: nowrap; }
#smart_editor2 .se2_text_tool .se2_multy button { background-image: none; width: 47px; }
#smart_editor2 .se2_text_tool .se2_multy .se2_icon { display: inline-block; visibility: visible; overflow: visible; position: static; width: 16px; height: 29px; margin: -1px 2px 0 -1px; background-position: 0 -132px; line-height: 30px; vertical-align: top; }
#smart_editor2 .se2_text_tool .se2_multy button, #smart_editor2 .se2_text_tool .se2_multy button span { height: 29px; line-height: 29px; }
#smart_editor2 .se2_text_tool .se2_map .se2_icon { background-position: -29px -132px; }
#smart_editor2 .se2_text_tool button span.se2_mntxt { display: inline-block; visibility: visible; overflow: visible; _overflow-y: hidden; position: relative; *margin-right: -1px; width: auto; height: 29px; font-weight: normal; font-size: 11px; line-height: 30px; *line-height: 29px; _line-height: 30px; color: #444; letter-spacing: -1px; vertical-align: top; }
#smart_editor2 .se2_text_tool .se2_multy .se2_photo { margin-right: 1px; }
#smart_editor2 .se2_text_tool .se2_multy .hover .ico_btn { background: #e8e8e8; }
#smart_editor2 .se2_text_tool .se2_multy .se2_mn.hover { background: #e0dedf; }
/* TEXT_TOOLBAR : ROUNDING */
#smart_editor2 ul li.first_child button span.tool_bg, #smart_editor2 ul li.last_child button span.tool_bg, #smart_editor2 ul li.single_child button span.tool_bg { visibility: visible; height: 21px; }
#smart_editor2 ul li.first_child button span.tool_bg { left: -1px; width: 3px; background: url("../img/bg_button_left.gif?20121228") no-repeat; }
#smart_editor2 ul li.last_child button span.tool_bg { right: 0px; _right: -1px; width: 2px; background: url("../img/bg_button_right.gif") no-repeat; }
#smart_editor2 ul li.single_child { padding-right: 1px; }
#smart_editor2 ul li.single_child button span.tool_bg { left: 0; background: url("../img/bg_button.gif?20121228") no-repeat; width: 22px; }
#smart_editor2 div.se2_text_tool ul li.hover button span.tool_bg { background-position: 0 -21px; }
#smart_editor2 div.se2_text_tool ul li.active button span.tool_bg, #smart_editor2 div.se2_text_tool ul li.active li.active button span.tool_bg { background-position: 0 -42px; }
#smart_editor2 div.se2_text_tool ul li.active li button span.tool_bg { background-position: 0 0; }
/* TEXT_TOOLBAR : SUB_MENU */
#smart_editor2 .se2_sub_text_tool { display: none; position: absolute; top: 20px; left: 0; z-index: 40; width: auto; height: 29px; padding: 0 4px 0 0; border: 1px solid #b5b5b5; border-top: 1px solid #9a9a9a; background: #f4f4f4; }
#smart_editor2 .active .se2_sub_text_tool { display: block; }
#smart_editor2 .se2_sub_text_tool ul { float: left; height: 25px; margin: 0; padding: 4px 0 0 4px; }
/* TEXT_TOOLBAR : SUB_MENU_SIZE */
#smart_editor2 .se2_sub_step1 { width: 88px; }
#smart_editor2 .se2_sub_step2 { width: 199px; }
#smart_editor2 .se2_sub_step2_1 { width: 178px; }
/* TEXT_TOOLBAR : BUTTON */
#smart_editor2 .se2_text_tool .se2_font_family { width: 70px; height: 21px; background-position: 0 -10px; }
#smart_editor2 .se2_text_tool .hover .se2_font_family { background-position: 0 -72px; }
#smart_editor2 .se2_text_tool .active .se2_font_family { background-position: 0 -103px; }
#smart_editor2 .se2_text_tool .se2_font_size { width: 45px; height: 21px; background-position: -70px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_font_size { background-position: -70px -72px; }
#smart_editor2 .se2_text_tool .active .se2_font_size { background-position: -70px -103px; }
#smart_editor2 .se2_text_tool .se2_bold { background-position: -115px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_bold { background-position: -115px -72px; }
#smart_editor2 .se2_text_tool .active .se2_bold { background-position: -115px -103px; }
#smart_editor2 .se2_text_tool .se2_underline { background-position: -136px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_underline { background-position: -136px -72px; }
#smart_editor2 .se2_text_tool .active .se2_underline { background-position: -136px -103px; }
#smart_editor2 .se2_text_tool .se2_italic { background-position: -157px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_italic { background-position: -157px -72px; }
#smart_editor2 .se2_text_tool .active .se2_italic { background-position: -157px -103px; }
#smart_editor2 .se2_text_tool .se2_tdel { background-position: -178px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_tdel { background-position: -178px -72px; }
#smart_editor2 .se2_text_tool .active .se2_tdel { background-position: -178px -103px; }
#smart_editor2 .se2_text_tool .se2_fcolor { position: relative; background-position: -199px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_fcolor { background-position: -199px -72px; }
#smart_editor2 .se2_text_tool .active .se2_fcolor { background-position: -199px -103px; }
#smart_editor2 .se2_text_tool .se2_fcolor_more { background-position: -220px -10px; width: 10px; }
#smart_editor2 .se2_text_tool .hover .se2_fcolor_more { background-position: -220px -72px; }
#smart_editor2 .se2_text_tool .active .se2_fcolor_more { background-position: -220px -103px; }
#smart_editor2 .se2_text_tool .selected_color { position: absolute; top: 14px; left: 5px; width: 11px; height: 3px; font-size: 0; }
#smart_editor2 .se2_text_tool .se2_ol, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .se2_ol { background-position: -345px -10px; }
#smart_editor2 .se2_text_tool .se2_ul, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .se2_ul { background-position: -366px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_ol, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .hover .se2_ol { background-position: -345px -72px; }
#smart_editor2 .se2_text_tool .hover .se2_ul, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .hover .se2_ul { background-position: -366px -72px; }
#smart_editor2 .se2_text_tool .active .se2_ol, #smart_editor2 .se2_text_tool .active .active .se2_ol { background-position: -345px -103px; }
#smart_editor2 .se2_text_tool .active .se2_ul, #smart_editor2 .se2_text_tool .active .active .se2_ul { background-position: -366px -103px; }
#smart_editor2 .se2_text_tool .se2_indent, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .se2_indent { background-position: -408px -10px; }
#smart_editor2 .se2_text_tool .se2_outdent, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .se2_outdent { background-position: -387px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_indent, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .hover .se2_indent { background-position: -408px -72px; }
#smart_editor2 .se2_text_tool .hover .se2_outdent, #smart_editor2 .se2_text_tool .active .se2_sub_text_tool .hover .se2_outdent { background-position: -387px -72px; }
#smart_editor2 .se2_text_tool .active .se2_indent, #smart_editor2 .se2_text_tool .active .active .se2_indent { background-position: -408px -103px; }
#smart_editor2 .se2_text_tool .active .se2_outdent, #smart_editor2 .se2_text_tool .active .active .se2_outdent { background-position: -387px -103px; }
#smart_editor2 .se2_text_tool .se2_lineheight { background-position: -429px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_lineheight { background-position: -429px -72px; }
#smart_editor2 .se2_text_tool .active .se2_lineheight { background-position: -429px -103px; }
#smart_editor2 .se2_text_tool .se2_url { background-position: -513px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_url { background-position: -513px -72px; }
#smart_editor2 .se2_text_tool .active .se2_url { background-position: -513px -103px; }
#smart_editor2 .se2_text_tool .se2_bgcolor { position: relative; background-position: -230px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_bgcolor { background-position: -230px -72px; }
#smart_editor2 .se2_text_tool .active .se2_bgcolor { background-position: -230px -103px; }
#smart_editor2 .se2_text_tool .se2_bgcolor_more { background-position: -251px -10px; width: 10px; }
#smart_editor2 .se2_text_tool .hover .se2_bgcolor_more { background-position: -251px -72px; }
#smart_editor2 .se2_text_tool .active .se2_bgcolor_more { background-position: -251px -103px; }
#smart_editor2 .se2_text_tool .se2_left { background-position: -261px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_left { background-position: -261px -72px; }
#smart_editor2 .se2_text_tool .active .se2_left { background-position: -261px -103px; }
#smart_editor2 .se2_text_tool .se2_center { background-position: -282px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_center { background-position: -282px -72px; }
#smart_editor2 .se2_text_tool .active .se2_center { background-position: -282px -103px; }
#smart_editor2 .se2_text_tool .se2_right { background-position: -303px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_right { background-position: -303px -72px; }
#smart_editor2 .se2_text_tool .active .se2_right { background-position: -303px -103px; }
#smart_editor2 .se2_text_tool .se2_justify { background-position: -324px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_justify { background-position: -324px -72px; }
#smart_editor2 .se2_text_tool .active .se2_justify { background-position: -324px -103px; }
#smart_editor2 .se2_text_tool .se2_blockquote { background-position: -471px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_blockquote { background-position: -471px -72px; }
#smart_editor2 .se2_text_tool .active .se2_blockquote { background-position: -471px -103px; }
#smart_editor2 .se2_text_tool .se2_character { background-position: -555px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_character { background-position: -555px -72px; }
#smart_editor2 .se2_text_tool .active .se2_character { background-position: -555px -103px; }
#smart_editor2 .se2_text_tool .se2_table { background-position: -576px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_table { background-position: -576px -72px; }
#smart_editor2 .se2_text_tool .active .se2_table { background-position: -576px -103px; }
#smart_editor2 .se2_text_tool .se2_find { background-position: -597px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_find { background-position: -597px -72px; }
#smart_editor2 .se2_text_tool .active .se2_find { background-position: -597px -103px; }
#smart_editor2 .se2_text_tool .se2_sup { background-position: -660px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_sup { background-position: -660px -72px; }
#smart_editor2 .se2_text_tool .active .se2_sup { background-position: -660px -103px; }
#smart_editor2 .se2_text_tool .se2_sub { background-position: -681px -10px; }
#smart_editor2 .se2_text_tool .hover .se2_sub { background-position: -681px -72px; }
#smart_editor2 .se2_text_tool .active .se2_sub { background-position: -681px -103px; }
#smart_editor2 .se2_text_tool .se2_text_tool_more { background-position: 0 -41px; width: 13px; }
#smart_editor2 .se2_text_tool .se2_text_tool_more span.tool_bg { background: none; }
#smart_editor2 .se2_text_tool .hover .se2_text_tool_more { background-position: -13px -41px; }
#smart_editor2 .se2_text_tool .active .se2_text_tool_more { background-position: -26px -41px; }
@@ -0,0 +1,34 @@
@charset "UTF-8";
/* NHN Web Standardization Team (http://html.nhndesign.com/) HHJ 090226 */
/* COMMON */
body, .se2_inputarea { margin: 0; padding: 0; font-family: '돋움',Dotum,Helvetica,Sans-serif; font-size: 12px; line-height: 1.5; }
/* body,.se2_inputarea,.se2_inputarea th,.se2_inputarea td{margin:0;padding:0;font-family:'돋움',Dotum,Helvetica,Sans-serif;font-size:12px;line-height:1.5;color:#666} */
.se2_inputarea p, .se2_inputarea br { margin: 0; padding: 0; }
.se2_inputarea { margin: 15px; word-wrap: break-word; *word-wrap: normal; *word-break: break-all; }
.se2_inputarea_890 { width: 741px; margin: 20px 0 10px 64px; }
.se2_inputarea_698 { width: 548px; margin: 20px 0 10px 64px; }
/* TEXT_TOOLBAR : QUOTE */
.se2_quote1 { margin: 0 0 30px 20px; padding: 0 8px; border-left: 2px solid #ccc; color: #888; }
.se2_quote2 { margin: 0 0 30px 13px; padding: 0 8px 0 16px; background: url("../img/bg_quote2.gif") 0 3px no-repeat; color: #888; }
.se2_quote3 { margin: 0 0 30px; padding: 12px 10px 11px; border: 1px dashed #ccc; color: #888; }
.se2_quote4 { margin: 0 0 30px; padding: 12px 10px 11px; border: 1px dashed #66b246; color: #888; }
.se2_quote5 { margin: 0 0 30px; padding: 12px 10px 11px; border: 1px dashed #ccc; background: #fafafa; color: #888; }
.se2_quote6 { margin: 0 0 30px; padding: 12px 10px 11px; border: 1px solid #e5e5e5; color: #888; }
.se2_quote7 { margin: 0 0 30px; padding: 12px 10px 11px; border: 1px solid #66b246; color: #888; }
.se2_quote8 { margin: 0 0 30px; padding: 12px 10px 11px; border: 1px solid #e5e5e5; background: #fafafa; color: #888; }
.se2_quote9 { margin: 0 0 30px; padding: 12px 10px 11px; border: 2px solid #e5e5e5; color: #888; }
.se2_quote10 { margin: 0 0 30px; padding: 12px 10px 11px; border: 2px solid #e5e5e5; background: #fafafa; color: #888; }
@@ -0,0 +1,894 @@
@charset "UTF-8";
/* NHN Web Standardization Team (http://html.nhndesign.com/) HHJ 090226 */
/* TEXT_TOOLBAR : FONTNAME */
#smart_editor2 .se2_tool .se2_l_font_fam { width: 202px; margin: 0; padding: 0; }
#smart_editor2 .se2_tool .se2_l_font_fam li { display: block; width: 202px; height: 21px; margin: 0; padding: 0; color: #333; cursor: pointer; }
#smart_editor2 .se2_l_font_fam .hover, #smart_editor2 .se2_l_font_fam .active { background: #ebebeb; }
#smart_editor2 .se2_l_font_fam button { width: 200px; height: 21px; margin: 0; padding: 2px 0 2px 0px; background: none; text-align: left; }
#smart_editor2 .se2_l_font_fam button span { display: block; visibility: visible; overflow: visible; position: relative; top: auto; left: auto; width: auto; height: auto; margin: 0 0 0 4px; padding: 0; font-size: 12px; line-height: normal; color: #333; }
#smart_editor2 .se2_l_font_fam button span span { display: inline; visibility: visible; overflow: visible; width: auto; height: auto; margin: 0 0 0 4px; font-family: Verdana; font-size: 12px; line-height: 14px; color: #888; }
#smart_editor2 .se2_l_font_fam button span em { visibility: visible; overflow: auto; position: static; width: auto; height: auto; margin-right: -4px; font-size: 12px; color: #888; }
#smart_editor2 .se2_l_font_fam .se2_division { width: 162px; height: 2px !important; margin: 1px 0 1px 0px; border: 0; background: url("../img/bg_line1.gif") 0 0 repeat-x; font-size: 0; cursor: default; }
/* TEXT_TOOLBAR : FONTSIZE */
#smart_editor2 .se2_tool .se2_l_font_size { width: 302px; margin: 0; padding: 0; }
#smart_editor2 .se2_tool .se2_l_font_size li { width: 302px; margin: 0; padding: 0; color: #333; cursor: pointer; }
#smart_editor2 .se2_l_font_size .hover, #smart_editor2 .se2_l_font_size .active { background: #ebebeb; }
#smart_editor2 .se2_l_font_size button { width: 300px; margin: 0; padding: 2px 0 1px 0px; *padding: 4px 0 1px 0px; background: none; text-align: left; }
#smart_editor2 .se2_l_font_size button span { display: block; visibility: visible; overflow: visible; position: relative; top: auto; left: auto; width: auto; height: auto; margin: 0 0 0 4px; padding: 0; line-height: normal; color: #373737; letter-spacing: 0px; }
#smart_editor2 .se2_l_font_size button span span { display: inline; margin: 0 0 0 5px; padding: 0; }
#smart_editor2 .se2_l_font_size span em { visibility: visible; overflow: auto; position: static; width: auto; height: auto; color: #888; }
/* TEXT_TOOLBAR : FONTCOLOR */
#smart_editor2 .se2_palette { float: left; position: relative; width: 225px; margin: 0; padding: 11px 0 10px 0; }
#smart_editor2 .se2_palette .se2_pick_color { _display: inline; float: left; clear: both; width: 205px; margin: 0 0 0 11px; padding: 0; }
#smart_editor2 .se2_palette .se2_pick_color li { float: left; width: 12px; height: 12px; margin: 0; padding: 0; }
#smart_editor2 .se2_palette .se2_pick_color li button { width: 11px; height: 11px; border: 0; }
#smart_editor2 .se2_palette .se2_pick_color li button span { display: block; visibility: visible; overflow: visible; position: absolute; top: 1px; left: 1px; width: 11px; height: 11px; }
#smart_editor2 .se2_palette .se2_pick_color li button span span { visibility: hidden; overflow: hidden; position: absolute; top: 0; left: 0; width: 0; height: 0; }
#smart_editor2 .se2_palette .se2_pick_color .hover button, #smart_editor2 .se2_palette .se2_pick_color .active button { width: 11px; height: 11px; border: 1px solid #666; }
#smart_editor2 .se2_palette .se2_pick_color .hover span, #smart_editor2 .se2_palette .se2_pick_color .active span { width: 7px; height: 7px; border: 1px solid #fff; }
#smart_editor2 .se2_palette .se2_view_more { _display: inline; float: left; width: 46px; height: 23px; margin: 1px 0 0 1px; background: url("../img/ko_KR/btn_set.png?130306") 0 -47px no-repeat; }
#smart_editor2 .se2_palette .se2_view_more2 { _display: inline; float: left; width: 46px; height: 23px; margin: 1px 0 0 1px; background: url("../img/ko_KR/btn_set.png?130306") 0 -24px no-repeat; }
#smart_editor2 .se2_palette h4 { _display: inline; float: left; width: 203px; margin: 9px 0 0 11px; padding: 10px 0 4px 0; background: url("../img/bg_line1.gif") repeat-x; font-weight: normal; font-size: 12px; line-height: 14px; color: #333; letter-spacing: -1px; }
#smart_editor2 .se2_palette2 { float: left; _float: none; width: 214px; margin: 9px 0 0 0; padding: 11px 0 0 11px; background: url("../img/bg_line1.gif") repeat-x; }
#smart_editor2 .se2_palette2 .se2_color_set { float: left; }
#smart_editor2 .se2_palette2 .se2_selected_color { _display: inline; float: left; width: 83px; height: 18px; margin: 0; border: 1px solid #c7c7c7; background: #fff; }
#smart_editor2 .se2_palette2 .se2_selected_color span { _display: inline; float: left; width: 79px; height: 14px; margin: 2px; }
#smart_editor2 .se2_palette2 .input_ty1 { _display: inline; float: left; width: 67px; height: 16px; margin: 0 3px 0 3px; padding: 2px 2px 0 4px; font-family: tahoma; font-size: 11px; }
#smart_editor2 .se2_palette2 button.se2_btn_insert { float: left; width: 35px; height: 21px; margin-left: 2px; padding: 0; background: url("../img/ko_KR/btn_set.png?130306") -80px 0 no-repeat; }
#smart_editor2 .se2_gradation1 { float: left; _float: none; width: 201px; height: 128px; margin: 4px 0 0 0; border: 1px solid #c7c7c7; cursor: crosshair; }
#smart_editor2 .se2_gradation2 { float: left; _float: none; width: 201px; height: 10px; margin: 4px 0 1px 0; border: 1px solid #c7c7c7; cursor: crosshair; }
/* TEXT_TOOLBAR : BGCOLOR */
#smart_editor2 .se2_palette_bgcolor { width: 225px; margin: 11px 0 0; padding: 0; }
#smart_editor2 .se2_palette_bgcolor .se2_background { width: 205px; margin: 0 11px 0 11px; }
#smart_editor2 .se2_palette_bgcolor .se2_background li { width: 68px; height: 20px; }
#smart_editor2 .se2_palette_bgcolor .se2_background button { width: 67px; height: 19px; border: 0; }
#smart_editor2 .se2_palette_bgcolor .se2_background span { left: 0; display: block; visibility: visible; overflow: visible; width: 65px; height: 17px; padding: 0; }
#smart_editor2 .se2_palette_bgcolor .se2_background span span { display: block; visibility: visible; overflow: visible; width: 64px; height: 16px; padding: 3px 0 0 3px; font-size: 11px; line-height: 14px; text-align: left; }
#smart_editor2 .se2_palette_bgcolor .se2_background .hover span { width: 65px; height: 17px; border: 1px solid #666; }
#smart_editor2 .se2_palette_bgcolor .se2_background .hover span span { width: 62px; height: 14px; padding: 1px 0 0 1px; border: 1px solid #fff; }
/* TEXT_TOOLBAR : LINEHEIGHT */
#smart_editor2 .se2_l_line_height { width: 107px; margin: 0; padding: 0; }
#smart_editor2 .se2_l_line_height li { width: 107px; margin: 0; padding: 0; border-top: 0; border-bottom: 0; color: #333; cursor: pointer; }
#smart_editor2 .se2_l_line_height .hover { background: #ebebeb; }
#smart_editor2 .se2_l_line_height button { width: 105px; height: 19px; margin: 0; padding: 3px 0 2px 0px; background: none; text-align: left; }
#smart_editor2 .se2_l_line_height button span { visibility: visible; overflow: visible; position: relative; width: auto; height: auto; margin: 0; padding: 0 0 0 15px; font-size: 12px; line-height: normal; color: #373737; }
#smart_editor2 .se2_l_line_height li button.active span { background: url("../img/icon_set.gif") 5px -30px no-repeat; }
#smart_editor2 .se2_l_line_height_user { clear: both; width: 83px; margin: 5px 0 0 12px; padding: 10px 0 0 0; _padding: 11px 0 0 0; background: url("../img/bg_line1.gif") repeat-x; }
#smart_editor2 .se2_l_line_height_user h3 { margin: 0 0 4px 0; _margin: 0 0 2px -1px; padding: 0; line-height: 14px; color: #000; letter-spacing: -1px; }
#smart_editor2 .se2_l_line_height_user .bx_input { display: block; position: relative; width: 83px; }
#smart_editor2 .se2_l_line_height_user .btn_up { position: absolute; top: 2px; *top: 3px; left: 68px; width: 13px; height: 8px; background: url("../img/ko_KR/btn_set.png?130306") -86px -54px no-repeat; }
#smart_editor2 .se2_l_line_height_user .btn_down { position: absolute; top: 10px; *top: 11px; left: 68px; width: 13px; height: 8px; background: url("../img/ko_KR/btn_set.png?130306") -86px -62px no-repeat; }
#smart_editor2 .se2_l_line_height_user .btn_area { margin: 5px 0 10px 0; }
#smart_editor2 .se2_tool .btn_area .se2_btn_apply3 { width: 41px; height: 24px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat; }
#smart_editor2 .se2_tool .btn_area .se2_btn_cancel3 { width: 39px; height: 24px; margin-left: 3px; background: url("../img/ko_KR/btn_set.png?130306") -41px 0 no-repeat; }
/* TEXT_TOOLBAR : QUOTE */
#smart_editor2 .se2_quote { width: 425px; height: 56px; }
#smart_editor2 .se2_quote ul { _display: inline; float: left; margin: 11px 0 0 9px; padding: 0; }
#smart_editor2 .se2_quote li { _display: inline; float: left; margin: 0 0 0 2px; padding: 0; }
#smart_editor2 .se2_quote button { width: 34px; height: 34px; margin: 0; padding: 0; background: url("../img/ko_KR/btn_set.png?130306") no-repeat; cursor: pointer; }
#smart_editor2 .se2_quote button span { left: 0; display: block; visibility: visible; overflow: visible; width: 32px; height: 32px; margin: 0; padding: 0; border: 1px solid #c7c7c7; }
#smart_editor2 .se2_quote button span span { visibility: hidden; overflow: hidden; position: absolute; top: 0; left: 0; width: 0; height: 0; margin: 0; padding: 0; }
#smart_editor2 .se2_quote .se2_quote1 { background-position: 1px -375px; }
#smart_editor2 .se2_quote .se2_quote2 { background-position: -32px -375px; }
#smart_editor2 .se2_quote .se2_quote3 { background-position: -65px -375px; }
#smart_editor2 .se2_quote .se2_quote4 { background-position: -98px -375px; }
#smart_editor2 .se2_quote .se2_quote5 { background-position: -131px -375px; }
#smart_editor2 .se2_quote .se2_quote6 { background-position: -164px -375px; }
#smart_editor2 .se2_quote .se2_quote7 { background-position: -197px -375px; }
#smart_editor2 .se2_quote .se2_quote8 { background-position: -230px -375px; }
#smart_editor2 .se2_quote .se2_quote9 { background-position: -263px -375px; }
#smart_editor2 .se2_quote .se2_quote10 { background-position: -296px -375px; }
#smart_editor2 .se2_quote .hover button span, #smart_editor2 .se2_quote .active button span { width: 30px; height: 30px; margin: 0; padding: 0; border: 2px solid #44b525; }
#smart_editor2 .se2_quote .hover button span span, #smart_editor2 .se2_quote .active button span span { visibility: hidden; overflow: hidden; position: absolute; top: 0; left: 0; width: 0; height: 0; margin: 0; padding: 0; }
#smart_editor2 .se2_quote .se2_cancel2 { float: left; width: 40px; height: 35px; margin: 11px 0 0 5px; background: url("../img/ko_KR/btn_set.png?130306") -46px -24px no-repeat; }
#smart_editor2 .se2_quote .se2_cancel2 span { visibility: hidden; overflow: hidden; position: absolute; top: 0; left: 0; width: 0; height: 0; margin: 0; padding: 0; }
/* TEXT_TOOLBAR : HYPERLINK */
#smart_editor2 .se2_url2 { width: 281px; padding: 11px 11px 6px 11px; color: #666; }
#smart_editor2 .se2_url2 .input_ty1 { display: block; width: 185px; height: 16px; margin: 0 5px 5px 0; *margin: -1px 5px 5px 0; padding: 5px 2px 0 4px; }
#smart_editor2 .se2_url2 .se2_url_new { width: 15px; height: 15px; margin: -1px 3px 1px -1px; *margin: -2px 3px 2px -1px; vertical-align: middle; }
#smart_editor2 .se2_url2 label { font-size: 11px; line-height: 14px; vertical-align: middle; }
#smart_editor2 .se2_url2 .se2_apply { position: absolute; top: 13px; right: 51px; width: 41px; height: 24px; margin: -1px 3px 1px 0; background: url("../img/ko_KR/btn_set.png?130306") no-repeat; }
#smart_editor2 .se2_url2 .se2_cancel { position: absolute; top: 13px; right: 9px; width: 39px; height: 24px; margin: -1px 3px 1px 0; background: url("../img/ko_KR/btn_set.png?130306") -41px 0 no-repeat; }
/* TEXT_TOOLBAR : SCHARACTER */
#smart_editor2 .se2_bx_character { width: 469px; height: 272px; margin: 0; padding: 0; background: url("../img/ko_KR/bx_set_110302.gif") 9px -1230px no-repeat; }
#smart_editor2 .se2_bx_character .se2_char_tab { _display: inline; float: left; position: relative; width: 443px; margin: 11px 10px 200px 11px; padding: 0 0 0 1px; }
#smart_editor2 .se2_bx_character .se2_char_tab li { position: static; margin: 0 0 0 -1px; padding: 0; }
#smart_editor2 .se2_bx_character .se2_char1 { width: 76px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") 0 -204px no-repeat; }
#smart_editor2 .se2_bx_character .se2_char2 { width: 86px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -75px -204px no-repeat; }
#smart_editor2 .se2_bx_character .se2_char3 { width: 68px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -160px -204px no-repeat; }
#smart_editor2 .se2_bx_character .se2_char4 { width: 55px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -227px -204px no-repeat; }
#smart_editor2 .se2_bx_character .se2_char5 { width: 97px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -281px -204px no-repeat; }
#smart_editor2 .se2_bx_character .se2_char6 { width: 66px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -377px -204px no-repeat; }
#smart_editor2 .se2_bx_character .active .se2_char1 { width: 76px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") 0 -230px no-repeat; }
#smart_editor2 .se2_bx_character .active .se2_char2 { width: 86px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -75px -230px no-repeat; }
#smart_editor2 .se2_bx_character .active .se2_char3 { width: 68px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -160px -230px no-repeat; }
#smart_editor2 .se2_bx_character .active .se2_char4 { width: 55px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -227px -230px no-repeat; }
#smart_editor2 .se2_bx_character .active .se2_char5 { width: 97px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -281px -230px no-repeat; }
#smart_editor2 .se2_bx_character .active .se2_char6 { width: 66px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -377px -230px no-repeat; }
#smart_editor2 .se2_bx_character .se2_s_character { display: none; position: absolute; top: 26px; left: 0; width: 448px; height: 194px; margin: 0; padding: 0; }
#smart_editor2 .se2_bx_character .active .se2_s_character { display: block; }
#smart_editor2 .se2_bx_character .se2_s_character ul { float: left; width: 422px; height: 172px; margin: 0; padding: 9px 0 0 11px; }
#smart_editor2 .se2_bx_character .se2_s_character li { _display: inline; float: left; position: relative; width: 20px; height: 18px; margin: 0 0 1px 1px; background: #fff; }
#smart_editor2 .se2_bx_character .se2_s_character button { width: 20px; height: 18px; margin: 0; padding: 2px; background: none; }
#smart_editor2 .se2_bx_character .se2_s_character .hover, #smart_editor2 .se2_bx_character .se2_s_character .active { background: url("../img/ko_KR/btn_set.png?130306") -446px -274px no-repeat; }
#smart_editor2 .se2_bx_character .se2_s_character button span { left: 0; display: block; visibility: visible; overflow: visible; width: 14px; height: 16px; margin: 3px 0 0 3px; border: 0; background: none; font-size: 12px; line-height: normal; }
#smart_editor2 .se2_apply_character { clear: both; position: relative; padding: 0 0 0 11px; }
#smart_editor2 .se2_apply_character label { margin: 0 3px 0 0; font-size: 12px; color: #666; letter-spacing: -1px; }
#smart_editor2 .se2_apply_character .input_ty1 { width: 283px; height: 17px; margin: -1px 5px 1px 0; padding: 4px 0 0 5px; font-size: 12px; color: #666; letter-spacing: 0; vertical-align: middle; }
#smart_editor2 .se2_apply_character .se2_confirm { width: 41px; height: 24px; margin-right: 3px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat; vertical-align: middle; }
#smart_editor2 .se2_apply_character .se2_cancel { width: 39px; height: 24px; background: url("../img/ko_KR/btn_set.png?130306") -41px 0 no-repeat; vertical-align: middle; }
/* TEXT_TOOLBAR : TABLECREATOR */
#smart_editor2 .se2_table_set { position: relative; width: 166px; margin: 3px 11px 0 11px; padding: 8px 0 0 0; }
#smart_editor2 .se2_table_set .se2_cell_num { float: left; width: 73px; }
#smart_editor2 .se2_table_set .se2_cell_num dt { float: left; clear: both; width: 17px; height: 23px; margin: 0; padding: 0; }
#smart_editor2 .se2_table_set .se2_cell_num dt label { display: block; margin: 5px 0 0 0; font-size: 11px; color: #666; }
#smart_editor2 .se2_table_set .se2_cell_num dd { float: left; position: relative; width: 54px; height: 23px; margin: 0; padding: 0; }
#smart_editor2 .se2_table_set .se2_cell_num .input_ty2 { display: block; width: 32px; height: 16px; *margin: -1px 0 0 0; padding: 2px 19px 0 0px; border: 1px solid #c7c7c7; font-family: tahoma,verdana,times New Roman; font-size: 11px; color: #666; text-align: right; }
#smart_editor2 .se2_table_set .se2_cell_num .input_ty2::-ms-clear { display: none; }
#smart_editor2 .se2_table_set .se2_pre_table { float: right; width: 91px; height: 43px; background: #c7c7c7; border-spacing: 1px; }
#smart_editor2 .se2_table_set .se2_pre_table tr { background: #fff; }
#smart_editor2 .se2_table_set .se2_pre_table td { font-size: 0; line-height: 0; }
#smart_editor2 .se2_table_set .se2_add { position: absolute; top: 2px; right: 3px; width: 13px; height: 8px; background: url("../img/ko_KR/btn_set.png?130306") -86px -54px no-repeat; }
#smart_editor2 .se2_table_set .se2_del { position: absolute; top: 10px; right: 3px; width: 13px; height: 8px; background: url("../img/ko_KR/btn_set.png?130306") -86px -62px no-repeat; }
/* TEXT_TOOLBAR : TABLEEDITOR */
#smart_editor2 .se2_table_set .se2_t_proper1 { float: left; width: 166px; margin: 7px 0 0 0; padding: 10px 0 5px; background: url("../img/bg_line1.gif") repeat-x; }
#smart_editor2 .se2_table_set .se2_t_proper1 dt { width: 166px; margin: 0 0 6px 0; }
#smart_editor2 .se2_table_set .se2_t_proper1 dd { width: 166px; }
#smart_editor2 .se2_table_set .se2_t_proper1 dt input { width: 15px; height: 15px; margin: -1px 3px 1px 0; _margin: -2px 3px 2px 0; vertical-align: middle; }
#smart_editor2 .se2_table_set .se2_t_proper1 dt label { font-weight: bold; font-size: 11px; color: #666; letter-spacing: -1px; vertical-align: middle; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 { float: left; position: relative; z-index: 59; width: 166px; margin: 1px 0 0 0; }
#smart_editor2 .se2_table_set .se2_t_proper1_2 { z-index: 54; margin: 0; }
#smart_editor2 .se2_table_set .se2_t_proper1_3 { z-index: 53; margin: 0; }
#smart_editor2 .se2_table_set .se2_t_proper1_4 { z-index: 52; margin: 0; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 dt { _display: inline; float: left; clear: both; width: 66px; height: 22px; margin: 1px 0 0 18px; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 dt label { display: block; margin: 4px 0 0 0; font-weight: normal; font-size: 11px; color: #666; letter-spacing: -1px; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 dd { float: left; position: relative; width: 82px; height: 23px; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 .input_ty1 { width: 72px; height: 16px; *margin: -1px 0 0 0; padding: 2px 2px 0 6px; font-family: tahoma,verdana,times New Roman; font-size: 11px; color: #666; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 .input_ty3 { float: left; width: 49px; height: 16px; margin: 0 3px 0 0; padding: 2px 4px 0 4px; border: 1px solid #c7c7c7; font-family: tahoma,verdana,times New Roman; font-size: 11px; color: #666; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 .se2_add { top: 2px; right: 2px; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 .se2_del { top: 10px; right: 2px; }
#smart_editor2 .se2_table_set .se2_t_proper1_1 .se2_color_set .input_ty1 { _display: inline; float: left; width: 67px; height: 16px; margin: 0 3px 0 3px; padding: 2px 2px 0 4px; font-family: tahoma,verdana,times New Roman; font-size: 11px; }
#smart_editor2 .se2_select_ty1 { position: relative; width: 80px; height: 18px; border: 1px solid #c7c7c7; background: #fff; font-size: 11px; line-height: 14px; text-align: left; }
#smart_editor2 .se2_select_ty1 span { float: left; width: 54px; height: 18px; margin: 0 0 0 5px; font-size: 11px; line-height: 14px; color: #666; }
#smart_editor2 .se2_select_ty1 .se2_b_style0 { position: relative; top: 3px; left: -3px; white-space: nowrap; }
#smart_editor2 .se2_select_ty1 .se2_b_style1 { height: 15px; margin: 3px 0 0 4px; font-size: 11px; line-height: 14px; color: #666; letter-spacing: -1px; }
#smart_editor2 .se2_select_ty1 .se2_b_style2 { background: url("../img/bg_set.gif") 0 -50px repeat-x; }
#smart_editor2 .se2_select_ty1 .se2_b_style3 { background: url("../img/bg_set.gif") 0 -68px repeat-x; }
#smart_editor2 .se2_select_ty1 .se2_b_style4 { background: url("../img/bg_set.gif") 0 -85px repeat-x; }
#smart_editor2 .se2_select_ty1 .se2_b_style5 { background: url("../img/bg_set.gif") 0 -103px repeat-x; }
#smart_editor2 .se2_select_ty1 .se2_b_style6 { background: url("../img/bg_set.gif") 0 -121px repeat-x; }
#smart_editor2 .se2_select_ty1 .se2_b_style7 { background: url("../img/bg_set.gif") 0 -139px repeat-x; }
#smart_editor2 .se2_select_ty1 .se2_view_more { position: absolute; top: 1px; right: 1px; width: 13px; height: 16px; background: url("../img/ko_KR/btn_set.png?130306") -112px -54px no-repeat; }
#smart_editor2 .se2_select_ty1 .se2_view_more2 { position: absolute; top: 1px; right: 1px; width: 13px; height: 16px; background: url("../img/ko_KR/btn_set.png?130306") -99px -54px no-repeat; }
/* TEXT_TOOLBAR : TABLEEDITOR > BORDER */
#smart_editor2 .se2_table_set .se2_b_t_b1 { border-top: 1px solid #b1b1b1; }
#smart_editor2 .se2_layer_b_style { position: absolute; top: 20px; right: 0px; width: 80px; padding-bottom: 1px; border: 1px solid #c7c7c7; border-top: 1px solid #a8a8a8; background: #fff; }
#smart_editor2 .se2_layer_b_style ul { width: 80px; margin: 0; padding: 1px 0 0 0; }
#smart_editor2 .se2_layer_b_style li { width: 80px; height: 18px; margin: 0; padding: 0; }
#smart_editor2 .se2_layer_b_style .hover, #smart_editor2 .se2_layer_b_style .active { background: #ebebeb; }
#smart_editor2 .se2_layer_b_style button { width: 80px; height: 18px; background: none; }
#smart_editor2 .se2_layer_b_style button span { left: 0; display: block; visibility: visible; overflow: visible; width: 71px; height: 18px; margin: 0 0 0 5px; font-size: 11px; line-height: 15px; text-align: left; }
#smart_editor2 .se2_layer_b_style button span span { visibility: hidden; overflow: hidden; position: absolute; top: 0; left: 0; width: 0; height: 0; }
#smart_editor2 .se2_layer_b_style .se2_b_style1 span { margin: 3px 0 0 4px; font-size: 11px; line-height: 14px; color: #666; letter-spacing: -1px; }
#smart_editor2 .se2_layer_b_style .se2_b_style2 span { background: url("../img/bg_set.gif") 0 -50px repeat-x; }
#smart_editor2 .se2_layer_b_style .se2_b_style3 span { background: url("../img/bg_set.gif") 0 -68px repeat-x; }
#smart_editor2 .se2_layer_b_style .se2_b_style4 span { background: url("../img/bg_set.gif") 0 -86px repeat-x; }
#smart_editor2 .se2_layer_b_style .se2_b_style5 span { background: url("../img/bg_set.gif") 0 -103px repeat-x; }
#smart_editor2 .se2_layer_b_style .se2_b_style6 span { background: url("../img/bg_set.gif") 0 -121px repeat-x; }
#smart_editor2 .se2_layer_b_style .se2_b_style7 span { background: url("../img/bg_set.gif") 0 -139px repeat-x; }
/* TEXT_TOOLBAR : TABLEEDITOR > COLOR */
#smart_editor2 .se2_pre_color { float: left; width: 18px; height: 18px; border: 1px solid #c7c7c7; }
#smart_editor2 .se2_pre_color button { float: left; width: 14px; height: 14px; margin: 2px 0 0 2px; padding: 0; }
#smart_editor2 .se2_pre_color button span { overflow: hidden; position: absolute; top: -10000px; left: -10000px; z-index: -100; width: 0; height: 0; }
/* TEXT_TOOLBAR : TABLEEDITOR > DIMMED */
#smart_editor2 .se2_table_set .se2_t_dim1 { clear: both; position: absolute; top: 71px; left: 16px; z-index: 60; width: 157px; height: 118px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_table_set .se2_t_dim2 { position: absolute; top: 116px; left: 16px; z-index: 55; width: 157px; height: 45px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_table_set .se2_t_dim3 { clear: both; position: absolute; top: 192px; left: 16px; z-index: 51; width: 157px; height: 39px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
/* TEXT_TOOLBAR : TABLEEDITOR > STYLE PREVIEW */
#smart_editor2 .se2_table_set .se2_t_proper2 { float: left; position: relative; z-index: 50; width: 166px; margin: 2px 0 0 0; }
#smart_editor2 .se2_table_set .se2_t_proper2 dt { float: left; width: 84px; height: 33px; margin: 4px 0 0 0; }
#smart_editor2 .se2_table_set .se2_t_proper2 dt input { width: 15px; height: 15px; margin: -1px 3px 1px 0; _margin: -2px 3px 2px 0; vertical-align: middle; }
#smart_editor2 .se2_table_set .se2_t_proper2 dt label { font-weight: bold; font-size: 11px; color: #666; letter-spacing: -1px; vertical-align: middle; }
#smart_editor2 .se2_table_set .se2_t_proper2 dd { float: left; width: 66px; height: 33px; }
#smart_editor2 .se2_select_ty2 { position: relative; width: 65px; height: 31px; border: 1px solid #c7c7c7; background: #fff; font-size: 11px; line-height: 14px; text-align: left; }
#smart_editor2 .se2_select_ty2 span { float: left; width: 45px; height: 25px; margin: 3px 0 0 3px; background: url("../img/ko_KR/btn_set.png?130306") repeat-x; }
#smart_editor2 .se2_select_ty2 .se2_t_style1 { background-position: 0 -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style2 { background-position: -46px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style3 { background-position: -92px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style4 { background-position: -138px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style5 { background-position: -184px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style6 { background-position: -230px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style7 { background-position: -276px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style8 { background-position: -322px -410px; }
#smart_editor2 .se2_select_ty2 .se2_t_style9 { background-position: 0 -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style10 { background-position: -46px -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style11 { background-position: -92px -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style12 { background-position: -138px -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style13 { background-position: -184px -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style14 { background-position: -230px -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style15 { background-position: -276px -436px; }
#smart_editor2 .se2_select_ty2 .se2_t_style16 { background-position: -322px -436px; }
#smart_editor2 .se2_select_ty2 .se2_view_more { position: absolute; top: 1px; right: 1px; _right: 0px; width: 13px !important; height: 29px !important; background: url("../img/ko_KR/btn_set.png?130306") -353px -48px no-repeat !important; }
#smart_editor2 .se2_select_ty2 .se2_view_more2 { position: absolute; top: 1px; right: 1px; _right: 0px; width: 13px !important; height: 29px !important; background: url("../img/ko_KR/btn_set.png?130306") -340px -48px no-repeat !important; }
#smart_editor2 .se2_select_ty2 .se2_view_more span { display: none; }
/* TEXT_TOOLBAR : TABLEEDITOR > STYLE */
#smart_editor2 .se2_layer_t_style { position: absolute; top: 33px; right: 15px; width: 208px; border: 1px solid #c7c7c7; border-top: 1px solid #a8a8a8; background: #fff; }
#smart_editor2 .se2_layer_t_style ul { width: 204px; height: 126px; margin: 1px 2px; padding: 1px 0 0 0; background: #fff; }
#smart_editor2 .se2_layer_t_style li { _display: inline; float: left; width: 45px; height: 25px; margin: 1px; padding: 1px; border: 1px solid #fff; }
#smart_editor2 .se2_layer_t_style .hover, #smart_editor2 .se2_layer_t_style .active { border: 1px solid #666; background: #fff; }
#smart_editor2 .se2_layer_t_style button { width: 45px; height: 25px; background: url("../img/ko_KR/btn_set.png?130306") repeat-x !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style1 { background-position: 0 -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style2 { background-position: -46px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style3 { background-position: -92px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style4 { background-position: -138px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style5 { background-position: -184px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style6 { background-position: -230px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style7 { background-position: -276px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style8 { background-position: -322px -410px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style9 { background-position: 0 -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style10 { background-position: -46px -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style11 { background-position: -92px -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style12 { background-position: -138px -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style13 { background-position: -184px -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style14 { background-position: -230px -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style15 { background-position: -276px -436px !important; }
#smart_editor2 .se2_layer_t_style .se2_t_style16 { background-position: -322px -436px !important; }
#smart_editor2 .se2_table_set .se2_btn_area { float: left; width: 166px; margin: 6px 0 0 0; padding: 12px 0 8px 0; background: url("../img/bg_line1.gif") repeat-x; text-align: center; }
#smart_editor2 .se2_table_set button.se2_apply { width: 41px; height: 24px; margin-right: 3px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat; }
#smart_editor2 .se2_table_set button.se2_cancel { width: 39px; height: 24px; background: url("../img/ko_KR/btn_set.png?130306") -41px 0 no-repeat; }
#smart_editor2 .se2_table_set .se2_rd { width: 14px; height: 14px; vertical-align: middle; }
#smart_editor2 .se2_table_set .se2_celltit { font-size: 11px; font-size: 11px; color: #666; letter-spacing: -1px; }
#smart_editor2 .se2_table_set dt label.se2_celltit { display: inline; }
/* TEXT_TOOLBAR : FINDREPLACE */
#smart_editor2 .se2_bx_find_revise { position: relative; width: 255px; margin: 0; padding: 0; }
#smart_editor2 .se2_bx_find_revise .se2_close { position: absolute; top: 5px; right: 8px; width: 20px; height: 20px; background: url("../img/ko_KR/btn_set.png?130306") -151px -1px no-repeat; }
#smart_editor2 .se2_bx_find_revise h3 { margin: 0; padding: 10px 0 13px 10px; background: url("../img/bg_find_h3.gif") 0 -1px repeat-x; font-size: 12px; line-height: 14px; letter-spacing: -1px; }
#smart_editor2 .se2_bx_find_revise ul { position: relative; margin: 8px 0 0 0; padding: 0 0 0 12px; }
#smart_editor2 .se2_bx_find_revise ul li { _display: inline; float: left; position: static; margin: 0 0 0 -1px; padding: 0; }
#smart_editor2 .se2_bx_find_revise .se2_tabfind { width: 117px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") 0 -100px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_tabrevise { width: 117px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -116px -100px no-repeat; }
#smart_editor2 .se2_bx_find_revise .active .se2_tabfind { width: 117px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") 0 -126px no-repeat; }
#smart_editor2 .se2_bx_find_revise .active .se2_tabrevise { width: 117px; height: 26px; background: url("../img/ko_KR/btn_set.png?130306") -116px -126px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_in_bx_find dl { _display: inline; float: left; width: 223px; margin: 0 0 0 9px; padding: 7px 0 13px 14px; background: url("../img/ko_KR/bx_set_110302.gif") -289px -1518px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_in_bx_revise dl { _display: inline; float: left; width: 223px; margin: 0 0 0 9px; padding: 7px 0 13px 14px; background: url("../img/ko_KR/bx_set_110302.gif") -289px -1619px no-repeat; }
#smart_editor2 .se2_bx_find_revise dt { _display: inline; float: left; clear: both; width: 47px; margin: 1px 0 2px 0; }
#smart_editor2 .se2_bx_find_revise dd { float: left; margin: 0 0 2px 0; }
#smart_editor2 .se2_bx_find_revise label { float: left; padding: 5px 0 0 0; font-size: 11px; color: #666; letter-spacing: -2px; }
#smart_editor2 .se2_bx_find_revise input { float: left; width: 155px; height: 12px; margin: 1px 0 0 0; padding: 3px 2px 3px 4px; font-size: 12px; color: #666; }
#smart_editor2 .se2_bx_find_revise .se2_find_btns { float: left; clear: both; width: 255px; padding: 8px 0 10px 0; text-align: center; }
#smart_editor2 .se2_bx_find_revise .se2_find_next { width: 65px; height: 24px; margin: 0 3px 0 0; background: url("../img/ko_KR/btn_set.png?130306") -180px -48px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_find_next2 { width: 61px; height: 24px; margin: 0 3px 0 0; background: url("../img/ko_KR/btn_set.png?130306") -180px -24px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_revise1 { width: 54px; height: 24px; margin: 0 3px 0 0; background: url("../img/ko_KR/btn_set.png?130306") -245px -48px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_revise2 { width: 70px; height: 24px; margin: 0 3px 0 0; background: url("../img/ko_KR/btn_set.png?130306") -245px -24px no-repeat; }
#smart_editor2 .se2_bx_find_revise .se2_cancel { width: 39px; height: 24px; background: url("../img/ko_KR/btn_set.png?130306") -41px 0 no-repeat; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE */
#smart_editor2 .se2_qmax { position: absolute; width: 18px; height: 18px; background: url("../img/ko_KR/btn_set.png?130306") -339px -169px no-repeat; }
#smart_editor2 .se2_qeditor { position: absolute; top: 0; left: 0; width: 183px; margin: 0; padding: 0; border: 1px solid #c7c7c7; border-right: 1px solid #ababab; border-bottom: 1px solid #ababab; background: #fafafa; }
#smart_editor2 .se2_qeditor label, #smart_editor2 .se2_qeditor span, #smart_editor2 .se2_qeditor dt { font-size: 11px; color: #666; letter-spacing: -1px; }
#smart_editor2 .se2_qbar { position: relative; width: 183px; height: 11px; background: url("../img/ko_KR/bx_set_110302.gif") 0 -731px no-repeat; }
#smart_editor2 .se2_qbar .se2_qmini { position: absolute; top: -1px; right: 0; *right: -1px; _right: -3px; width: 18px; height: 14px; background: url("../img/ko_KR/btn_set.png?130306") -315px -170px no-repeat; }
#smart_editor2 .se2_qbar .se2_qmini button { width: 20px; height: 14px; margin-top: -1px; }
#smart_editor2 .se2_qeditor .se2_qbody0 { float: left; border: 1px solid #fefefe; }
#smart_editor2 .se2_qeditor .se2_qbody { position: relative; z-index: 90; width: 174px; padding: 4px 0 0 7px; }
#smart_editor2 .se2_qeditor .se2_qe1 { overflow: hidden; width: 174px; }
#smart_editor2 .se2_qeditor .se2_qe1 dt { float: left; width: 22px; height: 18px; padding: 4px 0 0 0; }
#smart_editor2 .se2_qeditor .se2_qe1 dd { float: left; width: 65px; height: 22px; }
#smart_editor2 .se2_qeditor .se2_addrow { width: 28px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -385px -49px; }
#smart_editor2 .se2_qeditor .se2_addcol { width: 29px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -413px -49px; }
#smart_editor2 .se2_qeditor .se2_seprow { width: 28px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -385px -68px; }
#smart_editor2 .se2_qeditor .se2_sepcol { width: 29px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -413px -68px; }
#smart_editor2 .se2_qeditor .se2_delrow { width: 28px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -385px -106px; }
#smart_editor2 .se2_qeditor .se2_delcol { width: 29px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -413px -106px; }
#smart_editor2 .se2_qeditor .se2_merrow { width: 57px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -385px -125px; }
#smart_editor2 .se2_qeditor .se2_mercol { width: 57px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -413px -125px; }
#smart_editor2 .se2_qeditor .se2_seprow_off { width: 28px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -385px -87px; }
#smart_editor2 .se2_qeditor .se2_sepcol_off { width: 29px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -413px -87px; }
#smart_editor2 .se2_qeditor .se2_merrow_off { width: 57px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -385px -144px; }
#smart_editor2 .se2_qeditor .se2_mercol_off { width: 57px; height: 19px; background: url("../img/ko_KR/btn_set.png?130306") no-repeat -413px -144px; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND */
#smart_editor2 .se2_qeditor .se2_qe2 { _display: inline; float: left; position: relative; z-index: 100; width: 165px; margin: 2px 0 0 1px; padding: 7px 0 0 0; background: url("../img/bg_line1.gif") repeat-x; zoom: 1; }
#smart_editor2 .se2_qeditor .se2_qe2_1 dt { float: left; width: 62px; padding: 3px 0 0 0; }
#smart_editor2 .se2_qeditor .se2_qe2_1 dt input { width: 15px; height: 15px; margin: -1px 1px 1px -1px; vertical-align: middle; }
#smart_editor2 .se2_qeditor .se2_qe2_1 dd { float: left; position: relative; zoom: 1; }
#smart_editor2 .se2_qeditor .se2_qe2_3 { padding: 7px 0 6px 0; }
/* My글양식 없을때 */
#smart_editor2 .se2_qeditor .se2_qe2_2 { position: relative; _position: absolute; }
#smart_editor2 .se2_qeditor .se2_qe2_2 dt { float: left; width: 50px; padding: 3px 0 0 13px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 dt input { width: 15px; height: 15px; margin: -1px 2px 1px -1px; vertical-align: middle; }
#smart_editor2 .se2_qeditor .se2_qe2_2 dd { float: left; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > STYLE */
#smart_editor2 .se2_table_set .se2_qbody .se2_t_proper2 { float: left; *float: none; position: static; width: 166px; margin: 5px 0 0 1px; }
#smart_editor2 .se2_qeditor .se2_qe3 dt { float: left; width: 62px; padding: 0; }
#smart_editor2 .se2_qeditor .se2_qe3 dt label { font-weight: normal; }
#smart_editor2 .se2_qeditor .se2_qe3 dt input { width: 15px; height: 15px; margin: -1px 1px 1px -1px; vertical-align: middle; }
#smart_editor2 .se2_qeditor .se2_qe3 dd .se2_qe3_table { position: relative; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND PREWVIEW */
#smart_editor2 .se2_qeditor .se2_pre_color { float: left; width: 18px; height: 18px; border: 1px solid #c7c7c7; }
#smart_editor2 .se2_qeditor .se2_pre_color button { float: left; width: 14px; height: 14px; margin: 2px 0 0 2px; padding: 0; }
#smart_editor2 .se2_qeditor .se2_pre_color button span { overflow: hidden; position: absolute; top: -10000px; left: -10000px; z-index: -100; width: 0; height: 0; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND LAYER */
#smart_editor2 .se2_qeditor .se2_layer { float: left; clear: both; position: absolute; top: 20px; left: 0; margin: 0; padding: 0; border: 1px solid #c7c7c7; border-top: 1px solid #9a9a9a; background: #fafafa; }
#smart_editor2 .se2_qeditor .se2_layer .se2_in_layer { float: left; margin: 0; padding: 0; border: 1px solid #fff; background: #fafafa; }
#smart_editor2 .se2_qeditor .se2_layer button { vertical-align: top; }
#smart_editor2 .se2_qeditor .se2_layer .se2_pick_color li { position: relative; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND IMAGE */
#smart_editor2 .se2_qeditor .se2_pre_bgimg { float: left; width: 14px; height: 14px; padding: 2px; border: 1px solid #c7c7c7; }
#smart_editor2 .se2_qeditor .se2_qe2_2 button { width: 16px; height: 16px; background: url("../img/ko_KR/btn_set.png?130306") 0 -261px no-repeat; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > CELL_BACKGROUND IMAGE LAYER */
#smart_editor2 .se2_cellimg_set { _display: inline; float: left; width: 136px; margin: 4px 3px 0 4px; padding-bottom: 4px; }
#smart_editor2 .se2_cellimg_set li { _display: inline; float: left; width: 16px; height: 16px; margin: 0 1px 1px 0; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg0 { background-position: -255px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg1 { background-position: 0 -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg2 { background-position: -17px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg3 { background-position: -34px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg4 { background-position: -51px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg5 { background-position: -68px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg6 { background-position: -85px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg7 { background-position: -102px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg8 { background-position: -119px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg9 { background-position: -136px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg10 { background-position: -153px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg11 { background-position: -170px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg12 { background-position: -187px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg13 { background-position: -204px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg14 { background-position: -221px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg15 { background-position: -238px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg16 { background-position: -255px -261px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg17 { background-position: 0 -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg18 { background-position: -17px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg19 { background-position: -34px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg20 { background-position: -51px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg21 { background-position: -68px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg22 { background-position: -85px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg23 { background-position: -102px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg24 { background-position: -119px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg25 { background-position: -136px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg26 { background-position: -153px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg27 { background-position: -170px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg28 { background-position: -187px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg29 { background-position: -204px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg30 { background-position: -221px -278px; }
#smart_editor2 .se2_qeditor .se2_qe2_2 .se2_cellimg31 { background-position: -238px -278px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg button { width: 14px; height: 14px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg1 { background-position: -1px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg2 { background-position: -18px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg3 { background-position: -35px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg4 { background-position: -52px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg5 { background-position: -69px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg6 { background-position: -86px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg7 { background-position: -103px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg8 { background-position: -120px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg9 { background-position: -137px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg10 { background-position: -154px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg11 { background-position: -171px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg12 { background-position: -188px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg13 { background-position: -205px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg14 { background-position: -222px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg15 { background-position: -239px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg16 { background-position: -256px -262px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg17 { background-position: -1px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg18 { background-position: -18px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg19 { background-position: -35px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg20 { background-position: -52px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg21 { background-position: -69px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg22 { background-position: -86px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg23 { background-position: -103px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg24 { background-position: -120px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg25 { background-position: -137px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg26 { background-position: -154px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg27 { background-position: -171px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg28 { background-position: -188px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg29 { background-position: -205px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg30 { background-position: -222px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg31 { background-position: -239px -279px; }
#smart_editor2 .se2_qeditor .se2_pre_bgimg .se2_cellimg32 { background-position: -256px -279px; }
/* TEXT_TOOLBAR : QUICKEDITOR_TABLE > MY REVIEW */
#smart_editor2 .se2_btn_area { _display: inline; float: left; clear: both; width: 166px; margin: 5px 0 0 1px; padding: 7px 0 6px 0; background: url("../img/bg_line1.gif") repeat-x; text-align: center; }
#smart_editor2 .se2_btn_area .se2_btn_save { width: 97px; height: 21px; background: url("../img/ko_KR/btn_set.png?130306") -369px -163px no-repeat; }
/* TEXT_TOOLBAR : QUICKEDITOR_IMAGE */
#smart_editor2 .se2_qe10 { width: 166px; margin: 0; *margin: -2px 0 0 0; }
#smart_editor2 .se2_qe10 label { margin: 0 1px 0 0; vertical-align: middle; }
#smart_editor2 .se2_qe10 .se2_sheight { margin-left: 4px; }
#smart_editor2 .se2_qe10 .input_ty1 { width: 30px; height: 13px; margin: 0 0 1px 1px; padding: 3px 4px 0 1px; font-size: 11px; letter-spacing: 0; text-align: right; vertical-align: middle; }
#smart_editor2 .se2_qe10 .se2_sreset { width: 41px; height: 19px; margin-left: 3px; background: url("../img/ko_KR/btn_set.png?130306") -401px -184px no-repeat; vertical-align: middle; }
#smart_editor2 .se2_qe10_1 { margin-top: 4px; padding: 10px 0 3px; background: url("../img/bg_line1.gif") repeat-x; }
#smart_editor2 .se2_qe10_1 input { width: 15px; height: 15px; margin: -1px 3px 1px -1px; vertical-align: middle; }
#smart_editor2 .se2_qe11 { float: left; width: 166px; margin: 4px 0 0 0; padding: 7px 0 2px 0; background: url("../img/bg_line1.gif") repeat-x; }
#smart_editor2 .se2_qe11_1 { float: left; width: 99px; }
#smart_editor2 .se2_qe11_1 dt { float: left; width: 56px; height: 15px; padding: 5px 0 0 0; }
#smart_editor2 .se2_qe11_1 dd { float: left; position: relative; width: 38px; height: 20px; }
#smart_editor2 .se2_qe11_1 .input_ty1 { display: block; width: 29px; height: 15px; margin: 0; *margin: -1px 0 1px 0; padding: 3px 1px 0 5px; font-size: 11px; letter-spacing: 0; text-align: left; }
#smart_editor2 .se2_qe11_1 .se2_add { position: absolute; top: 2px; right: 3px; width: 13px; height: 8px; background: url("../img/ko_KR/btn_set.png?130306") -86px -54px no-repeat; }
#smart_editor2 .se2_qe11_1 .se2_del { position: absolute; top: 10px; right: 3px; width: 13px; height: 8px; background: url("../img/ko_KR/btn_set.png?130306") -86px -62px no-repeat; }
#smart_editor2 .se2_qe11_2 { float: left; width: 67px; }
#smart_editor2 .se2_qe11_2 dt { float: left; width: 47px; margin: 5px 0 0 0; }
#smart_editor2 .se2_qe11_2 dd { float: left; position: relative; width: 20px; }
#smart_editor2 .se2_qe12 { float: left; width: 166px; margin: 3px 0 0 0; padding: 7px 0 0 0; background: url("../img/bg_line1.gif") repeat-x; }
#smart_editor2 .se2_qe12 dt { float: left; margin: 5px 4px 0 0; }
#smart_editor2 .se2_qe12 dd { float: left; padding: 0 0 6px 0; }
#smart_editor2 .se2_qe12 .se2_align0 { float: left; width: 19px; height: 21px; background: url("../img/ko_KR/btn_set.png?130306") -276px -121px no-repeat; }
#smart_editor2 .se2_qe12 .se2_align1 { float: left; width: 19px; height: 21px; background: url("../img/ko_KR/btn_set.png?130306") -295px -121px no-repeat; }
#smart_editor2 .se2_qe12 .se2_align2 { float: left; width: 20px; height: 21px; background: url("../img/ko_KR/btn_set.png?130306") -314px -121px no-repeat; }
#smart_editor2 .se2_qe13 { position: relative; z-index: 10; zoom: 1; }
#smart_editor2 .se2_qe13 dt { float: left; width: 62px; padding: 3px 0 0; }
#smart_editor2 .se2_qe13 dt input { width: 15px; height: 15px; margin: -1px 1px 1px -1px; vertical-align: middle; zoom: 1; }
#smart_editor2 .se2_qe13 dt .se2_qdim2 { width: 32px; }
#smart_editor2 .se2_qe13 dd .se2_select_ty1 { width: 38px; }
#smart_editor2 .se2_qe13 dd .se2_select_ty1 span { width: 15px; }
#smart_editor2 .se2_qe13 dd .input_ty1 { width: 20px; }
#smart_editor2 .se2_qe13 dd .se2_palette2 .input_ty1 { width: 67px; }
#smart_editor2 .se2_qe13 .se2_add { *top: 3px; }
#smart_editor2 .se2_qe13 .se2_del { *top: 11px; }
#smart_editor2 .se2_qe13 .se2_layer_b_style { right: -2px; _right: 0; }
#smart_editor2 .se2_qe13 .se2_layer_b_style li span { width: auto; margin: 0 4px 0 5px; padding-top: 2px; }
#smart_editor2 .se2_qe13 dd { _display: inline; float: left; position: relative; width: 29px; margin-right: 5px; _margin-right: 3px; zoom: 1; }
#smart_editor2 .se2_qe13 dd .se2_palette h4 { margin-top: 9px; font-family: dotum; font-size: 12px; }
#smart_editor2 .se2_qe13 dd.dd_type { width: 38px; }
#smart_editor2 .se2_qe13 dd.dd_type2 { width: 37px; margin-right: 3px; }
#smart_editor2 .se2_qe13 dd.dd_type2 .input_ty1 { width: 29px; }
#smart_editor2 .se2_qe13 dd.dd_type2 button { right: 2px; _right: 1px; }
#smart_editor2 .se2_qe13 dd.dd_type3 { width: 20px; margin: 0; }
#smart_editor2 .se2_qe13_v1 { _display: inline; float: left; margin: 2px 0 1px; }
#smart_editor2 .se2_qe13_v1 dt { padding: 4px 0 0 1px; }
#smart_editor2 .se2_qe13_v2 { _display: inline; float: left; position: relative; z-index: 100; width: 165px; margin: 4px 0 0 1px; zoom: 1; }
#smart_editor2 .se2_qe13_v2 dd { width: 18px; margin: 0; }
#smart_editor2 .se2_qeditor .se2_qdim1 { clear: both; position: absolute; top: 25px; left: 115px; width: 60px; height: 23px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim2 { clear: both; position: absolute; top: 55px; left: 24px; z-index: 110; width: 70px; height: 22px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim3 { clear: both; position: absolute; top: 55px; left: 118px; z-index: 110; width: 56px; height: 22px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim4 { clear: both; position: absolute; top: 81px; left: 23px; z-index: 35; width: 116px; height: 35px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim5 { clear: both; position: absolute; top: 31px; left: 106px; width: 68px; height: 26px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim6c { clear: both; position: absolute; top: 25px; left: 28px; width: 29px; height: 23px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim6r { clear: both; position: absolute; top: 25px; left: 57px; width: 29px; height: 23px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_highedit { float: right; width: 56px; height: 21px; margin: -27px 8px 0 0; background: url("../img/ko_KR/btn_set.png?130306") -329px -142px no-repeat; }
#smart_editor2 .se2_qeditor .se2_qdim7 { clear: both; position: absolute; top: 55px; left: 24px; z-index: 110; width: 150px; height: 48px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim8 { clear: both; position: absolute; top: 105px; left: 24px; z-index: 110; width: 150px; height: 37px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim9 { clear: both; position: absolute; top: 55px; left: 111px; z-index: 110; width: 65px; height: 24px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim10 { clear: both; position: absolute; top: 55px; left: 100px; z-index: 110; width: 77px; height: 24px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
#smart_editor2 .se2_qeditor .se2_qdim11 { clear: both; position: absolute; top: 55px; left: 65px; z-index: 110; width: 115px; height: 24px; background: #fafafa; opacity: 0.5; filter: alpha(opacity=50); }
/* HELP : ACCESSIBILITY */
#smart_editor2 .se2_accessibility { z-index: 90; }
#smart_editor2 .se2_accessibility .se2_in_layer { width: 568px; padding: 0 10px; background: #fafafa; border: 1px solid #bcbbbb; }
#smart_editor2 .se2_accessibility h3 { margin: 0 -10px; padding: 6px 0 12px 0; background: url("../img/bg_find_h3.gif") repeat-x; font-size: 12px; line-height: 14px; letter-spacing: -1px; }
#smart_editor2 .se2_accessibility h3 strong { display: inline-block; padding: 4px 0 3px 11px; color: #333; letter-spacing: 0; }
#smart_editor2 .se2_accessibility .se2_close { position: absolute; top: 10px; right: 12px; width: 13px; height: 12px; background: url("../img/ko_KR/btn_set.png?130306") -155px -5px no-repeat; }
#smart_editor2 .se2_accessibility .box_help { padding: 0 2px; margin-top: 8px; background: url("../img/bg_help.gif") 0 100% no-repeat; }
#smart_editor2 .se2_accessibility .box_help div { overflow: hidden; padding: 20px 21px 24px; border-top: 1px solid #d0d0d0; color: #333; }
#smart_editor2 .se2_accessibility .box_help strong { display: block; margin-bottom: 2px; }
#smart_editor2 .se2_accessibility .box_help p { margin-bottom: 28px; line-height: 1.5; }
#smart_editor2 .se2_accessibility .box_help ul { width: 150%; margin-top: 10px; }
#smart_editor2 .se2_accessibility .box_help li { position: relative; float: left; width: 252px; padding: 5px 0 5px 9px; margin-right: 40px; background: url("../img/ko_KR/btn_set.png?130306") -475px -51px no-repeat; border-right: 1px solid #f0f0f0; *zoom: 1; line-height: 1; }
#smart_editor2 .se2_accessibility .box_help li span { position: absolute; top: 4px; left: 138px; line-height: 1.2; }
#smart_editor2 .se2_accessibility .se2_btns { padding: 9px 0 10px; text-align: center; }
#smart_editor2 .se2_accessibility .se2_btns .se2_close2 { width: 39px; height: 24px; background: url("../img/ko_KR/btn_set.png?130306") -235px -120px no-repeat; }
@@ -0,0 +1,20 @@
@charset "UTF-8";
/* NHN Web Standardization Team (http://html.nhndesign.com/) HHJ 090226 */
/* COMMON */
.se2_outputarea, .se2_outputarea th, .se2_outputarea td { margin: 0; padding: 0; color: #666; font-size: 12px; font-family: '돋움',Dotum,'굴림',Gulim,Helvetica,Sans-serif; line-height: 1.5; }
.se2_outputarea p { margin: 0; padding: 0; }
.se2_outputarea a:hover { text-decoration: underline; }
.se2_outputarea a:link { color: #0000ff; }
.se2_outputarea ul { margin: 0 0 0 40px; padding: 0; }
.se2_outputarea ul li { margin: 0; list-style-type: disc; padding: 0; }
.se2_outputarea ul ul li { list-style-type: circle; }
.se2_outputarea ul ul ul li { list-style-type: square; }
.se2_outputarea img, .se2_outputarea fieldset { border: 0; }
+67
View File
@@ -0,0 +1,67 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
function editor_html($id, $content, $is_dhtml_editor=true)
{
global $g5, $config;
static $js = true;
$editor_url = G5_EDITOR_URL.'/'.$config['cf_editor'];
$html = "";
$html .= "<span class=\"sound_only\">웹에디터 시작</span>";
if ($is_dhtml_editor)
$html .= '<script>document.write("<div class=\'cke_sc\'><button type=\'button\' class=\'btn_cke_sc\'>단축키 일람</button></div>");</script>';
if ($is_dhtml_editor && $js) {
$html .= "\n".'<script src="'.$editor_url.'/js/HuskyEZCreator.js"></script>';
$html .= "\n".'<script>var g5_editor_url = "'.$editor_url.'", oEditors = [];</script>';
$html .= "\n".'<script src="'.$editor_url.'/config.js"></script>';
$html .= "\n<script>";
$html .= '
$(function(){
$(".btn_cke_sc").click(function(){
if ($(this).next("div.cke_sc_def").length) {
$(this).next("div.cke_sc_def").remove();
$(this).text("단축키 일람");
} else {
$(this).after("<div class=\'cke_sc_def\' />").next("div.cke_sc_def").load("'.$editor_url.'/shortcut.html");
$(this).text("단축키 일람 닫기");
}
});
$(".btn_cke_sc_close").live("click",function(){
$(this).parent("div.cke_sc_def").remove();
});
});';
$html .= "\n</script>";
$js = false;
}
$smarteditor_class = $is_dhtml_editor ? "smarteditor2" : "";
$html .= "\n<textarea id=\"$id\" name=\"$id\" class=\"$smarteditor_class\" maxlength=\"65536\" style=\"width:100%\">$content</textarea>";
$html .= "\n<span class=\"sound_only\">웹 에디터 끝</span>";
return $html;
}
// textarea 로 값을 넘긴다. javascript 반드시 필요
function get_editor_js($id, $is_dhtml_editor=true)
{
if ($is_dhtml_editor) {
return "var {$id}_editor_data = oEditors.getById['{$id}'].getIR();\noEditors.getById['{$id}'].exec('UPDATE_CONTENTS_FIELD', []);\nif(jQuery.inArray(document.getElementById('{$id}').value.toLowerCase().replace(/^\s*|\s*$/g, ''), ['&nbsp;','<p>&nbsp;</p>','<p><br></p>','<div><br></div>','<p></p>','<br>','']) != -1){document.getElementById('{$id}').value='';}\n";
} else {
return "var {$id}_editor = document.getElementById('{$id}');\n";
}
}
// textarea 의 값이 비어 있는지 검사
function chk_editor_js($id, $is_dhtml_editor=true)
{
if ($is_dhtml_editor) {
return "if (!{$id}_editor_data || jQuery.inArray({$id}_editor_data.toLowerCase(), ['&nbsp;','<p>&nbsp;</p>','<p><br></p>','<p></p>','<br>']) != -1) { alert(\"내용을 입력해 주십시오.\"); oEditors.getById['{$id}'].exec('FOCUS'); return false; }\n";
} else {
return "if (!{$id}_editor.value) { alert(\"내용을 입력해 주십시오.\"); {$id}_editor.focus(); return false; }\n";
}
}
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

@@ -0,0 +1,134 @@
if(typeof window.nhn=='undefined') window.nhn = {};
if (!nhn.husky) nhn.husky = {};
/**
* @fileOverview This file contains application creation helper function, which would load up an HTML(Skin) file and then execute a specified create function.
* @name HuskyEZCreator.js
*/
nhn.husky.EZCreator = new (function(){
this.nBlockerCount = 0;
this.createInIFrame = function(htOptions){
if(arguments.length == 1){
var oAppRef = htOptions.oAppRef;
var elPlaceHolder = htOptions.elPlaceHolder;
var sSkinURI = htOptions.sSkinURI;
var fCreator = htOptions.fCreator;
var fOnAppLoad = htOptions.fOnAppLoad;
var bUseBlocker = htOptions.bUseBlocker;
var htParams = htOptions.htParams || null;
}else{
// for backward compatibility only
var oAppRef = arguments[0];
var elPlaceHolder = arguments[1];
var sSkinURI = arguments[2];
var fCreator = arguments[3];
var fOnAppLoad = arguments[4];
var bUseBlocker = arguments[5];
var htParams = arguments[6];
}
if(bUseBlocker) nhn.husky.EZCreator.showBlocker();
var attachEvent = function(elNode, sEvent, fHandler){
if(elNode.addEventListener){
elNode.addEventListener(sEvent, fHandler, false);
}else{
elNode.attachEvent("on"+sEvent, fHandler);
}
}
if(!elPlaceHolder){
alert("Placeholder is required!");
return;
}
if(typeof(elPlaceHolder) != "object")
elPlaceHolder = document.getElementById(elPlaceHolder);
var elIFrame, nEditorWidth, nEditorHeight;
try{
elIFrame = document.createElement("<IFRAME frameborder=0 scrolling=no>");
}catch(e){
elIFrame = document.createElement("IFRAME");
elIFrame.setAttribute("frameborder", "0");
elIFrame.setAttribute("scrolling", "no");
}
elIFrame.style.width = "1px";
elIFrame.style.height = "1px";
elPlaceHolder.parentNode.insertBefore(elIFrame, elPlaceHolder.nextSibling);
attachEvent(elIFrame, "load", function(){
fCreator = elIFrame.contentWindow[fCreator] || elIFrame.contentWindow.createSEditor2;
// top.document.title = ((new Date())-window.STime);
// window.STime = new Date();
try{
nEditorWidth = elIFrame.contentWindow.document.body.scrollWidth || "500px";
nEditorHeight = elIFrame.contentWindow.document.body.scrollHeight + 12;
elIFrame.style.width = "100%";
elIFrame.style.height = nEditorHeight+ "px";
elIFrame.contentWindow.document.body.style.margin = "0";
}catch(e){
nhn.husky.EZCreator.hideBlocker(true);
elIFrame.style.border = "5px solid red";
elIFrame.style.width = "500px";
elIFrame.style.height = "500px";
alert("Failed to access "+sSkinURI);
return;
}
var oApp = fCreator(elPlaceHolder, htParams); // oEditor
oApp.elPlaceHolder = elPlaceHolder;
oAppRef[oAppRef.length] = oApp;
if(!oAppRef.getById) oAppRef.getById = {};
if(elPlaceHolder.id) oAppRef.getById[elPlaceHolder.id] = oApp;
oApp.run({fnOnAppReady:fOnAppLoad});
// top.document.title += ", "+((new Date())-window.STime);
nhn.husky.EZCreator.hideBlocker();
});
// window.STime = new Date();
elIFrame.src = sSkinURI;
this.elIFrame = elIFrame;
};
this.showBlocker = function(){
if(this.nBlockerCount<1){
var elBlocker = document.createElement("DIV");
elBlocker.style.position = "absolute";
elBlocker.style.top = 0;
elBlocker.style.left = 0;
elBlocker.style.backgroundColor = "#FFFFFF";
elBlocker.style.width = "100%";
document.body.appendChild(elBlocker);
nhn.husky.EZCreator.elBlocker = elBlocker;
}
nhn.husky.EZCreator.elBlocker.style.height = Math.max(document.body.scrollHeight, document.body.clientHeight)+"px";
this.nBlockerCount++;
};
this.hideBlocker = function(bForce){
if(!bForce){
if(--this.nBlockerCount > 0) return;
}
this.nBlockerCount = 0;
if(nhn.husky.EZCreator.elBlocker) nhn.husky.EZCreator.elBlocker.style.display = "none";
}
})();
@@ -0,0 +1,52 @@
/*
* Smart Editor 2 Configuration : This setting must be changed by service
*/
window.nhn = window.nhn || {};
nhn.husky = nhn.husky || {};
nhn.husky.SE2M_Configuration = nhn.husky.SE2M_Configuration || {};
nhn.husky.SE2M_Configuration.Quote = {
sImageBaseURL : 'http://static.se2.naver.com/static/img'
};
nhn.husky.SE2M_Configuration.CustomObject = {
sVersion : 1,
sClassName : '__se_object',
sValueName : 'jsonvalue',
sTagIdPrefix : 'se_object_',
sTailComment : '<!--__se_object_end -->',
sBlankTemplateURL : nhn.husky.SE2M_Configuration.LinkageDomain.sCommonStatic + '/static/db_attach/iframe_template_for_se1_obj.html',
sAttributeOfEmpty : 's_isempty="true"',
sAttributeOfOldDB : 's_olddb="true"',
sBlock : '<div class="_block" style="position:absolute;z-index:10000;background-color:#fff;"></div>',
sBlockTemplate : '<div[\\s\\S]*?class=[\'"]?_block[\'"]?[\\s\\S]*?</div>',
sHighlight : '<div class="_highlight" style="position:absolute;width:58px;height:16px;line-height:0;z-index:9999"><img src="' + nhn.husky.SE2M_Configuration.LinkageDomain.sCommonStatic + '/static/img/pencil2.png" alt="" width="58" height="16" style="vertical-align:top"></div>',
sHighlightTemplate : '<div[\\s\\S]*?class=[\'"]?_highlight[\'"]?[\\s\\S]*?</div>',
sHtmlTemplateStartTag : '<!-- se_object_template_start -->',
sHtmlTemplateEndTag : '<!-- se_object_template_end -->',
sHtmlFilterTag : '{=sType}_{=sSubType}_{=nSeq}',
sTplHtmlFilterTag : '<!--{=sType}_{=sSubType}_(\\d+)-->',
sImgComServerPath : nhn.husky.SE2M_Configuration.LinkageDomain.sCommonStatic + '/static/img/reviewitem',
nMaxWidth : 548
};
nhn.husky.SE2M_Configuration.SE2M_ReEditAction = {
bUsed : true,
nSecDisplayDulationReEditMsg : 3,
aReEditGuideMsg : [
'이미지 파일은 1회 클릭 시 크기 조절, 더블클릭 시 재편집이 가능합니다.',
'첨부한 파일을 더블클릭 시 재편집이 가능합니다.',
'첨부한 글양식 테이블을 드래그시 테이블 재편집이 가능합니다.',
'첨부한 표를 드래그 시 표 재편집이 가능합니다.'
]
};
nhn.husky.SE2M_Configuration.SE2M_ColorPalette = {
bUseRecentColor : false
};
nhn.husky.SE2M_Configuration.QuickEditor = {
common : {
bUseConfig : false
}
};
@@ -0,0 +1,71 @@
/*
* Smart Editor 2 Configuration : This setting must be changed by service
*/
window.nhn = window.nhn || {};
nhn.husky = nhn.husky || {};
nhn.husky.SE2M_Configuration = nhn.husky.SE2M_Configuration || {};
/**
* 스마트에디터2에서 접근하는 JS, IMG 디렉토리
*/
nhn.husky.SE2M_Configuration.Editor = {
sJsBaseURL : './js_src',
sImageBaseURL : './img/'
};
/**
* JS LazyLoad를 위한 경로
*/
nhn.husky.SE2M_Configuration.LazyLoad = {
sJsBaseURI : "js_lazyload"
};
/**
* CSS LazyLoad를 위한 경로
*/
nhn.husky.SE2M_Configuration.SE2B_CSSLoader = {
sCSSBaseURI : "css"
};
/**
* 편집영역 설정
*/
nhn.husky.SE2M_Configuration.SE_EditingAreaManager = {
sCSSBaseURI : "css",
sBlankPageURL : "smart_editor2_inputarea.html",
sBlankPageURL_EmulateIE7 : "smart_editor2_inputarea_ie8.html",
aAddtionalEmulateIE7 : [] // IE8 default 사용, IE9 ~ 선택적 사용
};
/**
* 스마트에디터2에서 사용하는 도메인 정보
* http://wiki.nhncorp.com/pages/viewpage.action?pageId=74253685
*/
nhn.husky.SE2M_Configuration.LinkageDomain = {
sCommonAPI : 'http://api.se2.naver.com',
sCommonStatic : 'http://static.se2.naver.com',
sCommonImage : 'http://images.se2.naver.com'
};
/**
* [웹접근성]
* 단축키 ALT+, ALT+. 을 이용하여 스마트에디터 영역의 이전/이후 요소로 이동할 수 있다.
* sBeforeElementId : 스마트에디터 영역 이전 요소의 id
* sNextElementId : 스마트에디터 영역 이후 요소의 id
*
* 스마트에디터 영역 이외의 제목 영역 (예:스마트에디터가 적용된 블로그 쓰기 페이지에서의 제목 영역) 에 해당하는 엘리먼트에서 Tab키를 누르면 에디팅 영역으로 포커스를 이동시킬 수 있다.
* sTitleElementId : 제목에 해당하는 input 요소의 id.
*/
nhn.husky.SE2M_Configuration.SE2M_Accessibility = {
sBeforeElementId : '',
sNextElementId : '',
sTitleElementId : ''
};
/**
* 링크 기능 옵션
*/
nhn.husky.SE2M_Configuration.SE2M_Hyperlink = {
bAutolink : true // 자동링크기능 사용여부(기본값:true)
};
@@ -0,0 +1,91 @@
function createSEditor2(elIRField, htParams, elSeAppContainer){
if(!window.$Jindo){
parent.document.body.innerHTML="진도 프레임웍이 필요합니다.<br>\n<a href='http://dev.naver.com/projects/jindo/download'>http://dev.naver.com/projects/jindo/download</a>에서 Jindo 1.5.3 버전의 jindo.min.js를 다운로드 받아 /js 폴더에 복사 해 주세요.\n(아직 Jindo 2 는 지원하지 않습니다.)";
return;
}
var elAppContainer = (elSeAppContainer || jindo.$("smart_editor2"));
var elEditingArea = jindo.$$.getSingle("DIV.husky_seditor_editing_area_container", elAppContainer);
var oWYSIWYGIFrame = jindo.$$.getSingle("IFRAME.se2_input_wysiwyg", elEditingArea);
var oIRTextarea = elIRField?elIRField:jindo.$$.getSingle("TEXTAREA.blind", elEditingArea);
var oHTMLSrc = jindo.$$.getSingle("TEXTAREA.se2_input_htmlsrc", elEditingArea);
var oTextArea = jindo.$$.getSingle("TEXTAREA.se2_input_text", elEditingArea);
var sEditorMode = "open";
if(!htParams){
htParams = {};
htParams.fOnBeforeUnload = null;
}
htParams.elAppContainer = elAppContainer; // 에디터 UI 최상위 element 셋팅
htParams.oNavigator = jindo.$Agent().navigator(); // navigator 객체 셋팅
var oEditor = new nhn.husky.HuskyCore(htParams);
oEditor.registerPlugin(new nhn.husky.CorePlugin(htParams?htParams.fOnAppLoad:null));
oEditor.registerPlugin(new nhn.husky.StringConverterManager());
var htDimension = {
nMinHeight:320,
nMinWidth:parseInt(elIRField.style.minWidth, 10)||570,
nHeight:elIRField.style.height||elIRField.offsetHeight,
nWidth:elIRField.style.width||elIRField.offsetWidth
};
var htConversionMode = {
bUseVerticalResizer : htParams.bUseVerticalResizer,
bUseModeChanger : htParams.bUseModeChanger
};
var aAdditionalFontList = htParams.aAdditionalFontList;
oEditor.registerPlugin(new nhn.husky.SE_EditingAreaManager("WYSIWYG", oIRTextarea, htDimension, htParams.fOnBeforeUnload, elAppContainer));
oEditor.registerPlugin(new nhn.husky.SE_EditingArea_WYSIWYG(oWYSIWYGIFrame)); // Tab Editor 모드
oEditor.registerPlugin(new nhn.husky.SE_EditingArea_HTMLSrc(oHTMLSrc)); // Tab HTML 모드
oEditor.registerPlugin(new nhn.husky.SE_EditingArea_TEXT(oTextArea)); // Tab Text 모드
oEditor.registerPlugin(new nhn.husky.SE2M_EditingModeChanger(elAppContainer, htConversionMode)); // 모드간 변경(Editor, HTML, Text)
oEditor.registerPlugin(new nhn.husky.SE_PasteHandler()); // WYSIWYG Paste Handler
oEditor.registerPlugin(new nhn.husky.HuskyRangeManager(oWYSIWYGIFrame));
oEditor.registerPlugin(new nhn.husky.Utils());
oEditor.registerPlugin(new nhn.husky.SE2M_UtilPlugin());
oEditor.registerPlugin(new nhn.husky.SE_WYSIWYGStyler());
oEditor.registerPlugin(new nhn.husky.SE2M_Toolbar(elAppContainer));
oEditor.registerPlugin(new nhn.husky.Hotkey()); // 단축키
oEditor.registerPlugin(new nhn.husky.SE_EditingAreaVerticalResizer(elAppContainer, htConversionMode)); // 편집영역 리사이즈
oEditor.registerPlugin(new nhn.husky.DialogLayerManager());
oEditor.registerPlugin(new nhn.husky.ActiveLayerManager());
oEditor.registerPlugin(new nhn.husky.SE_WYSIWYGStyleGetter()); // 커서 위치 스타일 정보 가져오기
oEditor.registerPlugin(new nhn.husky.SE2B_Customize_ToolBar(elAppContainer)); // 상단 툴바 (Basic)
oEditor.registerPlugin(new nhn.husky.SE_WYSIWYGEnterKey("P")); // 엔터 시 처리, 현재는 P로 처리
oEditor.registerPlugin(new nhn.husky.SE2M_ColorPalette(elAppContainer)); // 색상 팔레트
oEditor.registerPlugin(new nhn.husky.SE2M_FontColor(elAppContainer)); // 글자색
oEditor.registerPlugin(new nhn.husky.SE2M_BGColor(elAppContainer)); // 글자배경색
oEditor.registerPlugin(new nhn.husky.SE2M_FontNameWithLayerUI(elAppContainer, aAdditionalFontList)); // 글꼴종류
oEditor.registerPlugin(new nhn.husky.SE2M_FontSizeWithLayerUI(elAppContainer)); // 글꼴크기
oEditor.registerPlugin(new nhn.husky.SE2M_LineStyler());
oEditor.registerPlugin(new nhn.husky.SE2M_ExecCommand(oWYSIWYGIFrame));
oEditor.registerPlugin(new nhn.husky.SE2M_LineHeightWithLayerUI(elAppContainer)); // 줄간격
oEditor.registerPlugin(new nhn.husky.SE2M_Quote(elAppContainer)); // 인용구
oEditor.registerPlugin(new nhn.husky.SE2M_Hyperlink(elAppContainer)); // 링크
oEditor.registerPlugin(new nhn.husky.SE2M_SCharacter(elAppContainer)); // 특수문자
oEditor.registerPlugin(new nhn.husky.SE2M_FindReplacePlugin(elAppContainer)); // 찾기/바꾸기
oEditor.registerPlugin(new nhn.husky.SE2M_TableCreator(elAppContainer)); // 테이블 생성
oEditor.registerPlugin(new nhn.husky.SE2M_TableEditor(elAppContainer)); // 테이블 편집
oEditor.registerPlugin(new nhn.husky.SE2M_TableBlockStyler(elAppContainer)); // 테이블 스타일
oEditor.registerPlugin(new nhn.husky.SE2M_AttachQuickPhoto(elAppContainer)); // 사진
oEditor.registerPlugin(new nhn.husky.MessageManager(oMessageMap));
oEditor.registerPlugin(new nhn.husky.SE2M_QuickEditor_Common(elAppContainer)); // 퀵에디터 공통(표, 이미지)
oEditor.registerPlugin(new nhn.husky.SE2B_CSSLoader()); // CSS lazy load
oEditor.registerPlugin(new nhn.husky.SE_OuterIFrameControl(elAppContainer, 100));
oEditor.registerPlugin(new nhn.husky.SE_ToolbarToggler(elAppContainer, htParams.bUseToolbar));
oEditor.registerPlugin(new nhn.husky.SE2M_Accessibility(elAppContainer)); // 에디터내의 웹접근성 관련 기능모음 플러그인
return oEditor;
}
+1
View File
@@ -0,0 +1 @@
if(typeof window!="undefined"&&typeof window.nhn=="undefined"){window.nhn={};}if(typeof window!="undefined"){if(typeof window.jindo=="undefined"){window.jindo={};}}else{if(!jindo){jindo={};}}jindo.$Jindo=function(){var cl=arguments.callee;var cc=cl._cached;if(cc){return cc;}if(!(this instanceof cl)){return new cl();}if(!cc){cl._cached=this;}this.version="1.5.2";};jindo.$=function(sID){var ret=[],arg=arguments,nArgLeng=arg.length,lastArgument=arg[nArgLeng-1],doc=document,el=null;var reg=/^<([a-z]+|h[1-5])>$/i;var reg2=/^<([a-z]+|h[1-5])(\s+[^>]+)?>/i;if(nArgLeng>1&&typeof lastArgument!="string"&&lastArgument.body){arg=Array.prototype.slice.apply(arg,[0,nArgLeng-1]);doc=lastArgument;}for(var i=0;i<nArgLeng;i++){el=arg[i];if(typeof el=="string"){el=el.replace(/^\s+|\s+$/g,"");if(el.indexOf("<")>-1){if(reg.test(el)){el=doc.createElement(RegExp.$1);}else{if(reg2.test(el)){var p={thead:"table",tbody:"table",tr:"tbody",td:"tr",dt:"dl",dd:"dl",li:"ul",legend:"fieldset",option:"select"};var tag=RegExp.$1.toLowerCase();var ele=jindo._createEle(p[tag],el,doc);for(var i=0,leng=ele.length;i<leng;i++){ret.push(ele[i]);}el=null;}}}else{el=doc.getElementById(el);}}if(el){ret[ret.length]=el;}}return ret.length>1?ret:(ret[0]||null);};jindo._createEle=function(sParentTag,sHTML,oDoc,bWantParent){var sId="R"+new Date().getTime()+parseInt(Math.random()*100000,10);var oDummy=oDoc.createElement("div");switch(sParentTag){case"select":case"table":case"dl":case"ul":case"fieldset":oDummy.innerHTML="<"+sParentTag+' class="'+sId+'">'+sHTML+"</"+sParentTag+">";break;case"thead":case"tbody":case"col":oDummy.innerHTML="<table><"+sParentTag+' class="'+sId+'">'+sHTML+"</"+sParentTag+"></table>";break;case"tr":oDummy.innerHTML='<table><tbody><tr class="'+sId+'">'+sHTML+"</tr></tbody></table>";break;default:oDummy.innerHTML='<div class="'+sId+'">'+sHTML+"</div>";break;}var oFound;for(oFound=oDummy.firstChild;oFound;oFound=oFound.firstChild){if(oFound.className==sId){break;}}return bWantParent?oFound:oFound.childNodes;};jindo.$Class=function(oDef){function typeClass(){var t=this;var a=[];var superFunc=function(m,superClass,func){if(m!="constructor"&&func.toString().indexOf("$super")>-1){var funcArg=func.toString().replace(/function\s*\(([^\)]*)[\w\W]*/g,"$1").split(",");var funcStr=func.toString().replace(/function[^{]*{/,"").replace(/(\w|\.?)(this\.\$super|this)/g,function(m,m2,m3){if(!m2){return m3+".$super";}return m;});funcStr=funcStr.substr(0,funcStr.length-1);func=superClass[m]=eval("false||function("+funcArg.join(",")+"){"+funcStr+"}");}return function(){var f=this.$this[m];var t=this.$this;var r=(t[m]=func).apply(t,arguments);t[m]=f;return r;};};while(typeof t._$superClass!="undefined"){t.$super=new Object;t.$super.$this=this;for(var x in t._$superClass.prototype){if(t._$superClass.prototype.hasOwnProperty(x)){if(typeof this[x]=="undefined"&&x!="$init"){this[x]=t._$superClass.prototype[x];}if(x!="constructor"&&x!="_$superClass"&&typeof t._$superClass.prototype[x]=="function"){t.$super[x]=superFunc(x,t._$superClass,t._$superClass.prototype[x]);}else{t.$super[x]=t._$superClass.prototype[x];}}}if(typeof t.$super.$init=="function"){a[a.length]=t;}t=t.$super;}for(var i=a.length-1;i>-1;i--){a[i].$super.$init.apply(a[i].$super,arguments);}if(typeof this.$init=="function"){this.$init.apply(this,arguments);}}if(typeof oDef.$static!="undefined"){var i=0,x;for(x in oDef){if(oDef.hasOwnProperty(x)){x=="$static"||i++;}}for(x in oDef.$static){if(oDef.$static.hasOwnProperty(x)){typeClass[x]=oDef.$static[x];}}if(!i){return oDef.$static;}delete oDef.$static;}typeClass.prototype=oDef;typeClass.prototype.constructor=typeClass;typeClass.extend=jindo.$Class.extend;return typeClass;};jindo.$Class.extend=function(superClass){if(typeof superClass=="undefined"||superClass===null||!superClass.extend){throw new Error("extend시 슈퍼 클래스는 Class여야 합니다.");}this.prototype._$superClass=superClass;for(var x in superClass){if(superClass.hasOwnProperty(x)){if(x=="prototype"){continue;}this[x]=superClass[x];}}return this;};jindo.$$=jindo.cssquery=(function(){var sVersion="3.0";var debugOption={repeat:1};var UID=1;var cost=0;var validUID={};var bSupportByClassName=document.getElementsByClassName?true:false;var safeHTML=false;var getUID4HTML=function(oEl){var nUID=safeHTML?(oEl._cssquery_UID&&oEl._cssquery_UID[0]):oEl._cssquery_UID;if(nUID&&validUID[nUID]==oEl){return nUID;}nUID=UID++;oEl._cssquery_UID=safeHTML?[nUID]:nUID;validUID[nUID]=oEl;return nUID;};var getUID4XML=function(oEl){var oAttr=oEl.getAttribute("_cssquery_UID");var nUID=safeHTML?(oAttr&&oAttr[0]):oAttr;if(!nUID){nUID=UID++;oEl.setAttribute("_cssquery_UID",safeHTML?[nUID]:nUID);}return nUID;};var getUID=getUID4HTML;var uniqid=function(sPrefix){return(sPrefix||"")+new Date().getTime()+parseInt(Math.random()*100000000,10);};function getElementsByClass(searchClass,node,tag){var classElements=new Array();if(node==null){node=document;}if(tag==null){tag="*";}var els=node.getElementsByTagName(taLine truncated
@@ -0,0 +1 @@
jindo.Component=jindo.$Class({_htEventHandler:null,_htOption:null,$init:function(){var aInstance=this.constructor.getInstance();aInstance.push(this);this._htEventHandler={};this._htOption={};this._htOption._htSetter={};},option:function(sName,vValue){switch(typeof sName){case"undefined":return this._htOption;case"string":if(typeof vValue!="undefined"){if(sName=="htCustomEventHandler"){if(typeof this._htOption[sName]=="undefined"){this.attach(vValue);}else{return this;}}this._htOption[sName]=vValue;if(typeof this._htOption._htSetter[sName]=="function"){this._htOption._htSetter[sName](vValue);}}else{return this._htOption[sName];}break;case"object":for(var sKey in sName){if(sKey=="htCustomEventHandler"){if(typeof this._htOption[sKey]=="undefined"){this.attach(sName[sKey]);}else{continue;}}this._htOption[sKey]=sName[sKey];if(typeof this._htOption._htSetter[sKey]=="function"){this._htOption._htSetter[sKey](sName[sKey]);}}break;}return this;},optionSetter:function(sName,fSetter){switch(typeof sName){case"undefined":return this._htOption._htSetter;case"string":if(typeof fSetter!="undefined"){this._htOption._htSetter[sName]=jindo.$Fn(fSetter,this).bind();}else{return this._htOption._htSetter[sName];}break;case"object":for(var sKey in sName){this._htOption._htSetter[sKey]=jindo.$Fn(sName[sKey],this).bind();}break;}return this;},fireEvent:function(sEvent,oEvent){oEvent=oEvent||{};var fInlineHandler=this["on"+sEvent],aHandlerList=this._htEventHandler[sEvent]||[],bHasInlineHandler=typeof fInlineHandler=="function",bHasHandlerList=aHandlerList.length>0;if(!bHasInlineHandler&&!bHasHandlerList){return true;}aHandlerList=aHandlerList.concat();oEvent.sType=sEvent;if(typeof oEvent._aExtend=="undefined"){oEvent._aExtend=[];oEvent.stop=function(){if(oEvent._aExtend.length>0){oEvent._aExtend[oEvent._aExtend.length-1].bCanceled=true;}};}oEvent._aExtend.push({sType:sEvent,bCanceled:false});var aArg=[oEvent],i,nLen;for(i=2,nLen=arguments.length;i<nLen;i++){aArg.push(arguments[i]);}if(bHasInlineHandler){fInlineHandler.apply(this,aArg);}if(bHasHandlerList){var fHandler;for(i=0,fHandler;(fHandler=aHandlerList[i]);i++){fHandler.apply(this,aArg);}}return !oEvent._aExtend.pop().bCanceled;},attach:function(sEvent,fHandlerToAttach){if(arguments.length==1){jindo.$H(arguments[0]).forEach(jindo.$Fn(function(fHandler,sEvent){this.attach(sEvent,fHandler);},this).bind());return this;}var aHandler=this._htEventHandler[sEvent];if(typeof aHandler=="undefined"){aHandler=this._htEventHandler[sEvent]=[];}aHandler.push(fHandlerToAttach);return this;},detach:function(sEvent,fHandlerToDetach){if(arguments.length==1){jindo.$H(arguments[0]).forEach(jindo.$Fn(function(fHandler,sEvent){this.detach(sEvent,fHandler);},this).bind());return this;}var aHandler=this._htEventHandler[sEvent];if(aHandler){for(var i=0,fHandler;(fHandler=aHandler[i]);i++){if(fHandler===fHandlerToDetach){aHandler=aHandler.splice(i,1);break;}}}return this;},detachAll:function(sEvent){var aHandler=this._htEventHandler;if(arguments.length){if(typeof aHandler[sEvent]=="undefined"){return this;}delete aHandler[sEvent];return this;}for(var o in aHandler){delete aHandler[o];}return this;}});jindo.Component.factory=function(aObject,oOption){var aReturn=[],oInstance;if(typeof oOption=="undefined"){oOption={};}for(var i=0,el;(el=aObject[i]);i++){oInstance=new this(el,oOption);aReturn[aReturn.length]=oInstance;}return aReturn;};jindo.Component.getInstance=function(){if(typeof this._aInstance=="undefined"){this._aInstance=[];}return this._aInstance;};jindo.UIComponent=jindo.$Class({$init:function(){this._bIsActivating=false;},isActivating:function(){return this._bIsActivating;},activate:function(){if(this.isActivating()){return this;}this._bIsActivating=true;if(arguments.length>0){this._onActivate.apply(this,arguments);}else{this._onActivate();}return this;},deactivate:function(){if(!this.isActivating()){return this;}this._bIsActivating=false;if(arguments.length>0){this._onDeactivate.apply(this,arguments);}else{this._onDeactivate();}return this;}}).extend(jindo.Component);jindo.RolloverArea=jindo.$Class({$init:function(el,htOption){this.option({sClassName:"rollover",sClassPrefix:"rollover-",bCheckMouseDown:true,bActivateOnload:true,htStatus:{sOver:"over",sDown:"down"}});this.option(htOption||{});this._elArea=jindo.$(el);this._aOveredElements=[];this._aDownedElements=[];this._wfMouseOver=jindo.$Fn(this._onMouseOver,this);this._wfMouseOut=jindo.$Fn(this._onMouseOut,this);this._wfMouseDown=jindo.$Fn(this._onMouseDown,this);this._wfMouseUp=jindo.$Fn(this._onMouseUp,this);if(this.option("bActivateOnload")){this.activate();}},_addOvered:function(el){this._aOveredElements.push(el);},_removeOvered:function(el){this._aOveredElements.splice(jindo.$A(this._aOveredElements).indexOf(el),1);},_addStatus:function(el,sStatus){jindo.$Element(el).addClass(this.option("sClassPrefix")+sStatus);},_removeStatus:function(el,sStatus){jindo.$Element(el).removeClass(this.option("sClassPrefix")+sStatus);},_isInnerElement:fLine truncated
File diff suppressed because it is too large. Load diff
+1
View File
@@ -0,0 +1 @@
var nSE2Version=11329;if(typeof window.nhn=="undefined"){window.nhn={}}nhn.FindReplace=jindo.$Class({sKeyword:"",window:null,document:null,bBrowserSupported:false,bEOC:false,$init:function(c){this.sInlineContainer="SPAN|B|U|I|S|STRIKE";this.rxInlineContainer=new RegExp("^("+this.sInlineContainer+")$");this.window=c;this.document=this.window.document;if(this.document.domain!=this.document.location.hostname){var a=jindo.$Agent();var b=a.navigator();if(b.firefox&&b.version<3){this.bBrowserSupported=false;this.find=function(){return 3};return}}this.bBrowserSupported=true},_findNextElement:function(b){if(!b||b.tagName=="BODY"){return null}var a=b.nextSibling;if(a){return(a.nodeType==1?a:this._findNextElement(a))}else{return this._findNextElement(b.parentNode)}},find:function(a,c,d,e){var f,b;this.window.focus();if(!a){return 2}this.bEOC=false;f=this.findNext(a,c,d,e);if(f){return 0}this.bEOC=true;f=this.findNew(a,c,d,e);if(f){return 0}return 1},findNew:function(a,b,c,d){this.findReset();return this.findNext(a,b,c,d)},findNext:function(g,f,b,a){var c;f=f||false;a=a||false;b=b||false;if(this.window.find){var k=false;return this.window.find(g,f,b,k,a)}if(this.document.body.createTextRange){try{var j=0;if(b){j+=1}if(a){j+=2}if(f){j+=4}this.window.focus();if(this.document.selection){this._range=this.document.selection.createRangeCollection().item(0);this._range.collapse(false)}else{this._range=this.document.body.createTextRange();var d=this._findNextElement(this.window.getSelection().focusNode);if(d){this._range.moveToElementText(d)}}c=this._range.findText(g,1,j);this._range.select();return c}catch(h){return false}}return false},findReset:function(){if(this.window.find){this.window.getSelection().removeAllRanges();return}if(this.document.body.createTextRange){if(this.document.selection){this._range=this.document.body.createTextRange();this._range.collapse(true);this._range.select()}else{if(this.window.getSelection){var a=this.window.getSelection();a.removeAllRanges();a.selectAllChildren(this.document.body);a.collapseToStart()}}}},replace:function(b,d,a,c,e){return this._replace(b,d,a,c,e)},_replace:function(c,f,b,d,g,e){if(!c){return 4}e=e||new nhn.HuskyRange(this.window);e.setFromSelection();b=b||false;var a,h=e.toString();if(b){a=(h==c)}else{a=(h.toLowerCase()==c.toLowerCase())}if(!a){return this.find(c,b,d,g)+2}if(typeof f=="function"){e=f(e)}else{e.pasteText(f)}e.select();return this.find(c,b,d,g)},replaceAll:function(e,h,j,b){if(!e){return -1}var c=false;var l;var a=0;var k=this.window;if(this.find(e,j,c,b)!==0){return a}var g=new nhn.HuskyRange(this.window);g.setFromSelection();g.collapseToStart();var m=this.window.document.createElement("SPAN");m.innerHTML=unescape("%uFEFF");g.insertNode(m);g.select();var d=g.placeStringBookmark();this.bEOC=false;while(!this.bEOC){l=this._replace(e,h,j,c,b,g);if(l==0||l==1){a++}}var f=function(){var n=new nhn.HuskyRange(k);n.setFromSelection();g.moveToBookmark(d);var o=g.compareBoundaryPoints(nhn.W3CDOMRange.START_TO_END,n);if(o==1){return false}return true};l=0;this.bEOC=false;while(!f()&&l==0&&!this.bEOC){l=this._replace(e,h,j,c,b,g);if(l==0||l==1){a++}}g.moveToBookmark(d);g.deleteContents();g.removeStringBookmark(d);setTimeout(function(){m.parentNode.removeChild(m)},0);return a},_isBlankTextNode:function(a){if(a.nodeType==3&&a.nodeValue==""){return true}return false},_getNextNode:function(a,b){if(!a||a.tagName=="BODY"){return{elNextNode:null,bDisconnected:false}}if(a.nextSibling){a=a.nextSibling;while(a.firstChild){if(a.tagName&&!this.rxInlineContainer.test(a.tagName)){b=true}a=a.firstChild}return{elNextNode:a,bDisconnected:b}}return this._getNextNode(nhn.DOMFix.parentNode(a),b)},_getNextTextNode:function(a,b){var c,a;while(true){c=this._getNextNode(a,b);a=c.elNextNode;b=c.bDisconnected;if(a&&a.nodeType!=3&&!this.rxInlineContainer.test(a.tagName)){b=true}if(!a||(a.nodeType==3&&!this._isBlankTextNode(a))){break}}return{elNextText:a,bDisconnected:b}},_getFirstTextNode:function(){var b=this.document.body.firstChild;while(!!b&&b.firstChild){b=b.firstChild}if(!b){return null}if(b.nodeType!=3||this._isBlankTextNode(b)){var a=this._getNextTextNode(b,false);b=a.elNextText}return b},_addToTextMap:function(b,d,g,f){var e=d[f].length;for(var c=0,a=b.nodeValue.length;c<a;c++){g[f][e+c]=[b,c]}d[f]+=b.nodeValue},_createTextMap:function(){var b=[];var e=[];var d=-1;var a=this._getFirstTextNode();var c={elNextText:a,bDisconnected:true};while(a){if(c.bDisconnected){d++;b[d]="";e[d]=[]}this._addToTextMap(c.elNextText,b,e,d);c=this._getNextTextNode(a,false);a=c.elNextText}return{aTexts:b,aElTexts:e}},replaceAll_js:function(t,w,s,u){try{var g=new Date();var n=this._createTextMap();var f=new Date();var c=n.aTexts;var k=n.aElTexts;var h=0;var a=t.length;for(var r=0,l=c.length;r<l;r++){var o=c[r];for(var q=o.length-a;q>=0;q--){var d=o.substring(q,q+a);if(u&&(q>0&&o.charAt(q-1).match(/[a-zA-Z가-힣]/))){continue}if(d==t){h++;var b=new nhn.HuskyRange(this.window);var p,m;if(q+a<k[r].length){p=k[rLine truncated
@@ -0,0 +1,106 @@
/**
* @use 간단 포토 업로드용으로 제작되었습니다.
* @author cielo
* @See nhn.husky.SE2M_Configuration
* @ 팝업 마크업은 SimplePhotoUpload.html과 SimplePhotoUpload_html5.html이 있습니다.
*/
nhn.husky.SE2M_AttachQuickPhoto = jindo.$Class({
name : "SE2M_AttachQuickPhoto",
$init : function(){},
$ON_MSG_APP_READY : function(){
this.oApp.exec("REGISTER_UI_EVENT", ["photo_attach", "click", "ATTACHPHOTO_OPEN_WINDOW"]);
},
$LOCAL_BEFORE_FIRST : function(sMsg){
if(!!this.oPopupMgr){ return; }
// Popup Manager에서 사용할 param
this.htPopupOption = {
oApp : this.oApp,
sName : this.name,
bScroll : false,
sProperties : "",
sUrl : ""
};
this.oPopupMgr = nhn.husky.PopUpManager.getInstance(this.oApp);
},
/**
* 포토 웹탑 오픈
*/
$ON_ATTACHPHOTO_OPEN_WINDOW : function(){
this.htPopupOption.sUrl = this.makePopupURL();
//this.htPopupOption.sProperties = "left=0,top=0,width=640,height=459,scrollbars=yes,location=no,status=0,resizable=no";
this.htPopupOption.sProperties = "left="+(screen.width-640)/2+", top="+(screen.height-459)/2+",width=640,height=459,scrollbars=yes,location=no,status=0,resizable=no";
this.oPopupWindow = this.oPopupMgr.openWindow(this.htPopupOption);
// 처음 로딩하고 IE에서 커서가 전혀 없는 경우
// 복수 업로드시에 순서가 바뀜
this.oApp.exec('FOCUS');
return (!!this.oPopupWindow ? true : false);
},
/**
* 서비스별로 팝업에 parameter를 추가하여 URL을 생성하는 함수
* nhn.husky.SE2M_AttachQuickPhoto.prototype.makePopupURL로 덮어써서 사용하시면 됨.
*/
makePopupURL : function(){
//var sPopupUrl = "./photo_uploader/popup/photo_uploader.html";
var sPopupUrl = "./photo_uploader/popup/index.html";
return sPopupUrl;
},
/**
* 팝업에서 호출되는 메세지.
*/
$ON_SET_PHOTO : function(aPhotoData){
var sContents,
aPhotoInfo,
htData;
if( !aPhotoData ){
return;
}
try{
sContents = "";
for(var i = 0; i <aPhotoData.length; i++){
htData = aPhotoData[i];
if(!htData.sAlign){
htData.sAlign = "";
}
aPhotoInfo = {
sName : htData.sFileName || "",
sOriginalImageURL : htData.sFileURL,
bNewLine : htData.bNewLine || false
};
sContents += this._getPhotoTag(aPhotoInfo);
}
this.oApp.exec("PASTE_HTML", [sContents]); // 위즐 첨부 파일 부분 확인
}catch(e){
// upload시 error발생에 대해서 skip함
return false;
}
},
/**
* @use 일반 포토 tag 생성
*/
_getPhotoTag : function(htPhotoInfo){
// id와 class는 썸네일과 연관이 많습니다. 수정시 썸네일 영역도 Test
var sTag = '<img src="{=sOriginalImageURL}" title="{=sName}" >';
if(htPhotoInfo.bNewLine){
sTag += '<br style="clear:both;">';
}
sTag = jindo.$Template(sTag).process(htPhotoInfo);
return sTag;
}
});
@@ -0,0 +1,681 @@
//변수 선언 및 초기화
var nImageInfoCnt = 0;
var htImageInfo = []; //image file정보 저장
var aResult = [];
var rFilter = /^(image\/bmp|image\/gif|image\/jpg|image\/jpeg|image\/png)$/i;
var rFilter2 = /^(bmp|gif|jpg|jpeg|png)$/i;
var nTotalSize = 0;
var nMaxImageSize = 10*1024*1024;
var nMaxTotalImageSize = 50*1024*1024;
var nMaxImageCount = 10;
var nImageFileCount = 0;
var bSupportDragAndDropAPI = false;
var oFileUploader;
var bAttachEvent = false;
//마크업에 따른 할당
var elContent= $("pop_content");
var elDropArea = jindo.$$.getSingle(".drag_area",elContent);
var elDropAreaUL = jindo.$$.getSingle(".lst_type",elContent);
var elCountTxtTxt = jindo.$$.getSingle("#imageCountTxt",elContent);
var elTotalSizeTxt = jindo.$$.getSingle("#totalSizeTxt",elContent);
var elTextGuide = $("guide_text");
var welUploadInputBox = $Element("uploadInputBox");
var oNavigator = jindo.$Agent().navigator();
//마크업-공통
var welBtnConfirm = $Element("btn_confirm"); //확인 버튼
var welBtnCancel= $Element("btn_cancel"); //취소 버튼
//진도로 랩핑된 element
var welTextGuide = $Element(elTextGuide);
var welDropArea = $Element(elDropArea);
var welDropAreaUL = $Element(elDropAreaUL);
var fnUploadImage = null;
//File API 지원 여부로 결정
function checkDragAndDropAPI(){
try{
if( !oNavigator.ie ){
if(!!oNavigator.safari && oNavigator.version <= 5){
bSupportDragAndDropAPI = false;
}else{
bSupportDragAndDropAPI = true;
}
} else {
bSupportDragAndDropAPI = false;
}
}catch(e){
bSupportDragAndDropAPI = false;
}
}
//--------------- html5 미지원 브라우저에서 (IE9 이하) ---------------
/**
* 이미지를 첨부 후 활성화된 버튼 상태
*/
function goStartMode(){
var sSrc = welBtnConfirm.attr("src")|| "";
if(sSrc.indexOf("btn_confirm2.png") < 0 ){
welBtnConfirm.attr("src","../../img/photoQuickPopup/btn_confirm2.png");
fnUploadImage.attach(welBtnConfirm.$value(), "click");
}
}
/**
* 이미지를 첨부 전 비활성화된 버튼 상태
* @return
*/
function goReadyMode(){
var sSrc = welBtnConfirm.attr("src")|| "";
if(sSrc.indexOf("btn_confirm2.png") >= 0 ){
fnUploadImage.detach(welBtnConfirm.$value(), "click");
welBtnConfirm.attr("src","../../img/photoQuickPopup/btn_confirm.png");
}
}
/**
* 일반 업로드
* @desc oFileUploader의 upload함수를 호출함.
*/
function generalUpload(){
oFileUploader.upload();
}
/**
* 이미지 첨부 전 안내 텍스트가 나오는 배경으로 '설정'하는 함수.
* @return
*/
function readyModeBG (){
var sClass = welTextGuide.className();
if(sClass.indexOf('nobg') >= 0){
welTextGuide.removeClass('nobg');
welTextGuide.className('bg');
}
}
/**
* 이미지 첨부 전 안내 텍스트가 나오는 배경을 '제거'하는 함수.
* @return
*/
function startModeBG (){
var sClass = welTextGuide.className();
if(sClass.indexOf('nobg') < 0){
welTextGuide.removeClass('bg');
welTextGuide.className('nobg');
}
}
//--------------------- html5 지원되는 브라우저에서 사용하는 함수 --------------------------
/**
* 팝업에 노출될 업로드 예정 사진의 수.
* @param {Object} nCount 현재 업로드 예정인 사진 장수
* @param {Object} nVariable 삭제되는 수
*/
function updateViewCount (nCount, nVariable){
var nCnt = nCount + nVariable;
elCountTxtTxt.innerHTML = nCnt +"장";
nImageFileCount = nCnt;
return nCnt;
}
/**
* 팝업에 노출될 업로드될 사진 총 용량
*/
function updateViewTotalSize(){
var nViewTotalSize = Number(parseInt((nTotalSize || 0), 10) / (1024*1024));
elTotalSizeTxt.innerHTML = nViewTotalSize.toFixed(2) +"MB";
}
/**
* 이미지 전체 용량 재계산.
* @param {Object} sParentId
*/
function refreshTotalImageSize(sParentId){
var nDelImgSize = htImageInfo[sParentId].size;
if(nTotalSize - nDelImgSize > -1 ){
nTotalSize = nTotalSize - nDelImgSize;
}
}
/**
* hash table에서 이미지 정보 초기화.
* @param {Object} sParentId
*/
function removeImageInfo (sParentId){
//삭제된 이미지의 공간을 초기화 한다.
htImageInfo[sParentId] = null;
}
/**
* byte로 받은 이미지 용량을 화면에 표시를 위해 포맷팅
* @param {Object} nByte
*/
function setUnitString (nByte) {
var nImageSize;
var sUnit;
if(nByte < 0 ){
nByte = 0;
}
if( nByte < 1024) {
nImageSize = Number(nByte);
sUnit = 'B';
return nImageSize + sUnit;
} else if( nByte > (1024*1024)) {
nImageSize = Number(parseInt((nByte || 0), 10) / (1024*1024));
sUnit = 'MB';
return nImageSize.toFixed(2) + sUnit;
} else {
nImageSize = Number(parseInt((nByte || 0), 10) / 1024);
sUnit = 'KB';
return nImageSize.toFixed(0) + sUnit;
}
}
/**
* 화면 목록에 적당하게 이름을 잘라서 표시.
* @param {Object} sName 파일명
* @param {Object} nMaxLng 최대 길이
*/
function cuttingNameByLength (sName, nMaxLng) {
var sTemp, nIndex;
if(sName.length > nMaxLng){
nIndex = sName.indexOf(".");
sTemp = sName.substring(0,nMaxLng) + "..." + sName.substring(nIndex,sName.length) ;
} else {
sTemp = sName;
}
return sTemp;
}
/**
* Total Image Size를 체크해서 추가로 이미지를 넣을지 말지를 결정함.
* @param {Object} nByte
*/
function checkTotalImageSize(nByte){
if( nTotalSize + nByte < nMaxTotalImageSize){
nTotalSize = nTotalSize + nByte;
return false;
} else {
return true;
}
}
// 이벤트 핸들러 할당
function dragEnter(ev) {
ev.stopPropagation();
ev.preventDefault();
}
function dragExit(ev) {
ev.stopPropagation();
ev.preventDefault();
}
function dragOver(ev) {
ev.stopPropagation();
ev.preventDefault();
}
/**
* 드랍 영역에 사진을 떨구는 순간 발생하는 이벤트
* @param {Object} ev
*/
function drop(ev) {
ev.stopPropagation();
ev.preventDefault();
if (nImageFileCount >= 10){
alert("최대 10장까지만 등록할 수 있습니다.");
return;
}
if(typeof ev.dataTransfer.files == 'undefined'){
alert("HTML5를 지원하지 않는 브라우저입니다.");
}else{
//변수 선언
var wel,
files,
nCount,
sListTag = '';
//초기화
files = ev.dataTransfer.files;
nCount = files.length;
if (!!files && nCount === 0){
//파일이 아닌, 웹페이지에서 이미지를 드래서 놓는 경우.
alert("정상적인 첨부방식이 아닙니다.");
return ;
}
for (var i = 0, j = nImageFileCount ; i < nCount ; i++){
if (!rFilter.test(files[i].type)) {
alert("이미지파일 (jpg,gif,png,bmp)만 업로드 가능합니다.");
} else if(files[i].size > nMaxImageSize){
alert("이미지 용량이 10MB를 초과하여 등록할 수 없습니다.");
} else {
//제한된 수만 업로드 가능.
if ( j < nMaxImageCount ){
sListTag += addImage(files[i]);
//다음 사진을위한 셋팅
j = j+1;
nImageInfoCnt = nImageInfoCnt+1;
} else {
alert("최대 10장까지만 등록할 수 있습니다.");
break;
}
}
}
if(j > 0){
//배경 이미지 변경
startModeBG();
if ( sListTag.length > 1){
welDropAreaUL.prependHTML(sListTag);
}
//이미지 총사이즈 view update
updateViewTotalSize();
//이미치 총 수 view update
nImageFileCount = j;
updateViewCount(nImageFileCount, 0);
// 저장 버튼 활성화
goStartMode();
}else{
readyModeBG();
}
}
}
/**
* 이미지를 추가하기 위해서 file을 저장하고, 목록에 보여주기 위해서 string을 만드는 함수.
* @param ofile 한개의 이미지 파일
* @return
*/
function addImage(ofile){
//파일 사이즈
var ofile = ofile,
sFileSize = 0,
sFileName = "",
sLiTag = "",
bExceedLimitTotalSize = false,
aFileList = [];
sFileSize = setUnitString(ofile.size);
sFileName = cuttingNameByLength(ofile.name, 15);
bExceedLimitTotalSize = checkTotalImageSize(ofile.size);
if( !!bExceedLimitTotalSize ){
alert("전체 이미지 용량이 50MB를 초과하여 등록할 수 없습니다. \n\n (파일명 : "+sFileName+", 사이즈 : "+sFileSize+")");
} else {
//이미지 정보 저장
htImageInfo['img'+nImageInfoCnt] = ofile;
//List 마크업 생성하기
aFileList.push(' <li id="img'+nImageInfoCnt+'" class="imgLi"><span>'+ sFileName +'</span>');
aFileList.push(' <em>'+ sFileSize +'</em>');
aFileList.push(' <a onclick="delImage(\'img'+nImageInfoCnt+'\')"><img class="del_button" src="../../img/photoQuickPopup/btn_del.png" width="14" height="13" alt="첨부 사진 삭제"></a>');
aFileList.push(' </li> ');
sLiTag = aFileList.join(" ");
aFileList = [];
}
return sLiTag;
}
/**
* HTML5 DragAndDrop으로 사진을 추가하고, 확인버튼을 누른 경우에 동작한다.
* @return
*/
function html5Upload() {
var tempFile,
sUploadURL;
sUploadURL= 'file_uploader_html5.php'; //upload URL
//파일을 하나씩 보내고, 결과를 받음.
for(var j=0, k=0; j < nImageInfoCnt; j++) {
tempFile = htImageInfo['img'+j];
try{
if(!!tempFile){
//Ajax통신하는 부분. 파일과 업로더할 url을 전달한다.
callAjaxForHTML5(tempFile,sUploadURL);
k += 1;
}
}catch(e){}
tempFile = null;
}
}
function callAjaxForHTML5 (tempFile, sUploadURL){
var oAjax = jindo.$Ajax(sUploadURL, {
type: 'xhr',
method : "post",
onload : function(res){ // 요청이 완료되면 실행될 콜백 함수
var sResString = res._response.responseText;
if (res.readyState() == 4) {
if(sResString.indexOf("NOTALLOW_") > -1){
var sFileName = sResString.replace("NOTALLOW_", "");
alert("이미지 파일(jpg,gif,png,bmp)만 업로드 하실 수 있습니다. ("+sFileName+")");
}else{
//성공 시에 responseText를 가지고 array로 만드는 부분.
makeArrayFromString(res._response.responseText);
}
}
},
timeout : 3,
onerror : jindo.$Fn(onAjaxError, this).bind()
});
oAjax.header("contentType","multipart/form-data");
oAjax.header("file-name",encodeURIComponent(tempFile.name));
oAjax.header("file-size",tempFile.size);
oAjax.header("file-Type",tempFile.type);
oAjax.request(tempFile);
}
function makeArrayFromString(sResString){
var aTemp = [],
aSubTemp = [],
htTemp = {}
aResultleng = 0;
try{
if(!sResString || sResString.indexOf("sFileURL") < 0){
return ;
}
aTemp = sResString.split("&");
for (var i = 0; i < aTemp.length ; i++){
if( !!aTemp[i] && aTemp[i] != "" && aTemp[i].indexOf("=") > 0){
aSubTemp = aTemp[i].split("=");
htTemp[aSubTemp[0]] = aSubTemp[1];
}
}
}catch(e){}
aResultleng = aResult.length;
aResult[aResultleng] = htTemp;
if(aResult.length == nImageFileCount){
setPhotoToEditor(aResult);
aResult = null;
window.close();
}
}
/**
* 사진 삭제 시에 호출되는 함수
* @param {Object} sParentId
*/
function delImage (sParentId){
var elLi = jindo.$$.getSingle("#"+sParentId);
refreshTotalImageSize(sParentId);
updateViewTotalSize();
updateViewCount(nImageFileCount,-1);
//사진 file array에서 정보 삭제.
removeImageInfo(sParentId);
//해당 li삭제
$Element(elLi).leave();
//마지막 이미지인경우.
if(nImageFileCount === 0){
readyModeBG();
//사진 추가 버튼 비활성화
goReadyMode();
}
// drop 영역 이벤트 다시 활성화.
if(!bAttachEvent){
addEvent();
}
}
/**
* 이벤트 할당
*/
function addEvent() {
bAttachEvent = true;
elDropArea.addEventListener("dragenter", dragEnter, false);
elDropArea.addEventListener("dragexit", dragExit, false);
elDropArea.addEventListener("dragover", dragOver, false);
elDropArea.addEventListener("drop", drop, false);
}
function removeEvent(){
bAttachEvent = false;
elDropArea.removeEventListener("dragenter", dragEnter, false);
elDropArea.removeEventListener("dragexit", dragExit, false);
elDropArea.removeEventListener("dragover", dragOver, false);
elDropArea.removeEventListener("drop", drop, false);
}
/**
* Ajax 통신 시 error가 발생할 때 처리하는 함수입니다.
* @return
*/
function onAjaxError (){
alert("[가이드]사진 업로더할 서버URL셋팅이 필요합니다.-onAjaxError");
}
/**
* 이미지 업로드 시작
* 확인 버튼 클릭하면 호출되는 msg
*/
function uploadImage (e){
if(!bSupportDragAndDropAPI){
generalUpload();
}else{
html5Upload();
}
}
/**
* jindo에 파일 업로드 사용.(iframe에 Form을 Submit하여 리프레시없이 파일을 업로드하는 컴포넌트)
*/
function callFileUploader (){
oFileUploader = new jindo.FileUploader(jindo.$("uploadInputBox"),{
sUrl : location.href.replace(/\/[^\/]*$/, '') + '/file_uploader.php', //샘플 URL입니다.
sCallback : location.href.replace(/\/[^\/]*$/, '') + '/callback.html', //업로드 이후에 iframe이 redirect될 콜백페이지의 주소
sFiletype : "*.jpg;*.png;*.bmp;*.gif", //허용할 파일의 형식. ex) "*", "*.*", "*.jpg", 구분자(;)
sMsgNotAllowedExt : 'JPG, GIF, PNG, BMP 확장자만 가능합니다', //허용할 파일의 형식이 아닌경우에 띄워주는 경고창의 문구
bAutoUpload : false, //파일이 선택됨과 동시에 자동으로 업로드를 수행할지 여부 (upload 메소드 수행)
bAutoReset : true // 업로드한 직후에 파일폼을 리셋 시킬지 여부 (reset 메소드 수행)
}).attach({
select : function(oCustomEvent) {
//파일 선택이 완료되었을 때 발생
// oCustomEvent (이벤트 객체) = {
// sValue (String) 선택된 File Input의 값
// bAllowed (Boolean) 선택된 파일의 형식이 허용되는 형식인지 여부
// sMsgNotAllowedExt (String) 허용되지 않는 파일 형식인 경우 띄워줄 경고메세지
// }
// 선택된 파일의 형식이 허용되는 경우만 처리
if(oCustomEvent.bAllowed === true){
goStartMode();
}else{
goReadyMode();
oFileUploader.reset();
}
// bAllowed 값이 false인 경우 경고문구와 함께 alert 수행
// oCustomEvent.stop(); 수행시 bAllowed 가 false이더라도 alert이 수행되지 않음
},
success : function(oCustomEvent) {
// alert("success");
// 업로드가 성공적으로 완료되었을 때 발생
// oCustomEvent(이벤트 객체) = {
// htResult (Object) 서버에서 전달해주는 결과 객체 (서버 설정에 따라 유동적으로 선택가능)
// }
var aResult = [];
aResult[0] = oCustomEvent.htResult;
setPhotoToEditor(aResult);
//버튼 비활성화
goReadyMode();
oFileUploader.reset();
window.close();
},
error : function(oCustomEvent) {
//업로드가 실패했을 때 발생
//oCustomEvent(이벤트 객체) = {
// htResult : { (Object) 서버에서 전달해주는 결과 객체. 에러발생시 errstr 프로퍼티를 반드시 포함하도록 서버 응답을 설정하여야한다.
// errstr : (String) 에러메시지
// }
//}
//var wel = jindo.$Element("info");
//wel.html(oCustomEvent.htResult.errstr);
alert(oCustomEvent.htResult.errstr);
}
});
}
/**
* 페이지 닫기 버튼 클릭
*/
function closeWindow(){
if(bSupportDragAndDropAPI){
removeEvent();
}
window.close();
}
window.onload = function(){
checkDragAndDropAPI();
if(bSupportDragAndDropAPI){
$Element("pop_container2").hide();
$Element("pop_container").show();
welTextGuide.removeClass("nobg");
welTextGuide.className("bg");
addEvent();
} else {
$Element("pop_container").hide();
$Element("pop_container2").show();
callFileUploader();
}
fnUploadImage = $Fn(uploadImage,this);
$Fn(closeWindow,this).attach(welBtnCancel.$value(), "click");
};
/**
* 서버로부터 받은 데이타를 에디터에 전달하고 창을 닫음.
* @parameter aFileInfo [{},{},...]
* @ex aFileInfo = [
* {
sFileName : "nmms_215646753.gif",
sFileURL :"http://static.naver.net/www/u/2010/0611/nmms_215646753.gif",
bNewLine : true
},
{
sFileName : "btn_sch_over.gif",
sFileURL :"http://static1.naver.net/w9/btn_sch_over.gif",
bNewLine : true
}
* ]
*/
function setPhotoToEditor(oFileInfo){
if (!!opener && !!opener.nhn && !!opener.nhn.husky && !!opener.nhn.husky.PopUpManager) {
//스마트 에디터 플러그인을 통해서 넣는 방법 (oFileInfo는 Array)
opener.nhn.husky.PopUpManager.setCallback(window, 'SET_PHOTO', [oFileInfo]);
//본문에 바로 tag를 넣는 방법 (oFileInfo는 String으로 <img src=....> )
//opener.nhn.husky.PopUpManager.setCallback(window, 'PASTE_HTML', [oFileInfo]);
}
}
// 2012.05 현재] jindo.$Ajax.prototype.request에서 file과 form을 지원하지 안함.
jindo.$Ajax.prototype.request = function(oData) {
this._status++;
var t = this;
var req = this._request;
var opt = this._options;
var data, v,a = [], data = "";
var _timer = null;
var url = this._url;
this._is_abort = false;
if( opt.postBody && opt.type.toUpperCase()=="XHR" && opt.method.toUpperCase()!="GET"){
if(typeof oData == 'string'){
data = oData;
}else{
data = jindo.$Json(oData).toString();
}
}else if (typeof oData == "undefined" || !oData) {
data = null;
} else {
data = oData;
}
req.open(opt.method.toUpperCase(), url, opt.async);
if (opt.sendheader) {
if(!this._headers["Content-Type"]){
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
}
req.setRequestHeader("charset", "utf-8");
for (var x in this._headers) {
if(this._headers.hasOwnProperty(x)){
if (typeof this._headers[x] == "function")
continue;
req.setRequestHeader(x, String(this._headers[x]));
}
}
}
var navi = navigator.userAgent;
if(req.addEventListener&&!(navi.indexOf("Opera") > -1)&&!(navi.indexOf("MSIE") > -1)){
/*
* opera 10.60에서 XMLHttpRequest에 addEventListener기 추가되었지만 정상적으로 동작하지 않아 opera는 무조건 dom1방식으로 지원함.
* IE9에서도 opera와 같은 문제가 있음.
*/
if(this._loadFunc){ req.removeEventListener("load", this._loadFunc, false); }
this._loadFunc = function(rq){
clearTimeout(_timer);
_timer = undefined;
t._onload(rq);
}
req.addEventListener("load", this._loadFunc, false);
}else{
if (typeof req.onload != "undefined") {
req.onload = function(rq){
if(req.readyState == 4 && !t._is_abort){
clearTimeout(_timer);
_timer = undefined;
t._onload(rq);
}
};
} else {
/*
* IE6에서는 onreadystatechange가 동기적으로 실행되어 timeout이벤트가 발생안됨.
* 그래서 interval로 체크하여 timeout이벤트가 정상적으로 발생되도록 수정. 비동기 방식일때만
*/
if(window.navigator.userAgent.match(/(?:MSIE) ([0-9.]+)/)[1]==6&&opt.async){
var onreadystatechange = function(rq){
if(req.readyState == 4 && !t._is_abort){
if(_timer){
clearTimeout(_timer);
_timer = undefined;
}
t._onload(rq);
clearInterval(t._interval);
t._interval = undefined;
}
};
this._interval = setInterval(onreadystatechange,300);
}else{
req.onreadystatechange = function(rq){
if(req.readyState == 4){
clearTimeout(_timer);
_timer = undefined;
t._onload(rq);
}
};
}
}
}
req.send(data);
return this;
};
@@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FileUploader Callback</title>
</head>
<body>
<script type="text/javascript">
// alert("callback");
// document.domain 설정
try { document.domain = "http://*.naver.com"; } catch(e) {}
// execute callback script
var sUrl = document.location.search.substr(1);
if (sUrl != "blank") {
var oParameter = {}; // query array
sUrl.replace(/([^=]+)=([^&]*)(&|$)/g, function(){
oParameter[arguments[1]] = arguments[2];
return "";
});
if ((oParameter.errstr || '').length) { // on error
(parent.jindo.FileUploader._oCallback[oParameter.callback_func+'_error'])(oParameter);
} else {
(parent.jindo.FileUploader._oCallback[oParameter.callback_func+'_success'])(oParameter);
}
}
</script>
</body>
</html>
@@ -0,0 +1,22 @@
@charset "UTF-8";
/*
* jQuery File Upload Plugin NoScript CSS 1.2.0
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2013, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
.fileinput-button input {
position: static;
opacity: 1;
filter: none;
font-size: inherit;
direction: inherit;
}
.fileinput-button span {
display: none;
}
@@ -0,0 +1,17 @@
@charset "UTF-8";
/*
* jQuery File Upload UI Plugin NoScript CSS 8.8.5
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2012, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
.fileinput-button i,
.fileupload-buttonbar .delete,
.fileupload-buttonbar .toggle {
display: none;
}
@@ -0,0 +1,57 @@
@charset "UTF-8";
/*
* jQuery File Upload UI Plugin CSS 9.0.0
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2010, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
.fileupload-buttonbar .btn,
.fileupload-buttonbar .toggle {
margin-bottom: 5px;
}
.progress-animated .progress-bar,
.progress-animated .bar {
background: url("../img/progressbar.gif") !important;
filter: none;
}
.fileupload-process {
float: right;
display: none;
}
.fileupload-processing .fileupload-process,
.files .processing .preview {
display: block;
width: 32px;
height: 32px;
background: url("../img/loading.gif") center no-repeat;
background-size: contain;
}
.files audio,
.files video {
max-width: 300px;
}
@media (max-width: 767px) {
.fileupload-buttonbar .toggle,
.files .toggle,
.files .btn span {
display: none;
}
.files .name {
width: 80px;
word-wrap: break-word;
}
.files audio,
.files video {
max-width: 80px;
}
.files img,
.files canvas {
max-width: 100%;
}
}
@@ -0,0 +1,36 @@
@charset "UTF-8";
/*
* jQuery File Upload Plugin CSS 1.3.0
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2013, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
.fileinput-button {
position: relative;
overflow: hidden;
}
.fileinput-button input {
position: absolute;
top: 0;
right: 0;
margin: 0;
opacity: 0;
-ms-filter: 'alpha(opacity=0)';
font-size: 200px;
direction: ltr;
cursor: pointer;
}
/* Fixes for IE < 8 */
@media screen\9 {
.fileinput-button input {
filter: alpha(opacity=0);
font-size: 100%;
height: 100%;
}
}
@@ -0,0 +1,99 @@
@charset "UTF-8";
/*
* jQuery File Upload Plugin CSS Example 8.8.2
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2013, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
body {margin:0;padding:0;overflow-x:hidden}
body,input,textarea,select,button,table{font-family:'돋움',Dotum,Helvetica,sans-serif;font-size:12px}
#pop_header{height:26px;padding:14px 0 0 20px;border-bottom:1px solid #ededeb;background:#f4f4f3}
#pop_header h1{color:#333;font-size:14px;letter-spacing:-1px;margin:0;padding:0}
.content_container{padding:5px 10px}
.swfupload{OUTLINE-WIDTH: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert}
.pop_container .drag_area{overflow:hidden;overflow-y:auto;position:relative;width:100%;height:250px;margin-top:4px;border:1px solid #eceff2}
.pop_container .blind{visibility:hidden;position:absolute;line-height:0}
.pop_container .drag_area .bg{position:absolute;top:0;left:0;width:100%;height:250px;background: #fdfdfd url(../../../img/photoQuickPopup/bg_drag_image.png) 50% 50% no-repeat;}
.pop_container .drag_area .showbg{display:block}
.pop_container .drag_area .hidebg{display:none}
ul.sortable{margin:0;padding:0;*zoom:1}
ul.sortable:after{display:block;clear:both;content:""}
.sortable > li{
list-style:none;
float: left;
width: 110px;
height:110px;
overflow: hidden;
text-align: center;
margin: 4px 3px; border: 1px solid #DDDDDD;padding:1px; cursor: move;
background: #ffffff;
}
.sortable > li:hover, .sortable > li.ui-sortable-helper{border:2px solid #E58524;padding:0;}
.sortable > li > div{
background: #f7f7f7;
color:#808080;
margin:0;
font-size:11px;
height:106px;
width:100%;
overflow: hidden;
white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;
position:relative;
}
.sortable > li > div > img{margin:3px;}
.sortable > li > div .delete_img{position:absolute;top:0;right:0px;display:none}
.sortable > li:hover > div .delete_img{display:block;cursor:pointer}
.sortable > li.placeholder{
border: dashed 2px #ccc;background-color:#FFF;padding:0;
}
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: 400;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 12px;
line-height: 1.42857143;
border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn-success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn:hover, .btn:focus {
color: #333;
text-decoration: none;
}
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
color: #fff;
background-color: #47a447;
border-color: #398439;
}
.seletion_explain{margin:10px 0}
.drag_explain{position:relative;height:36px}
.drag_explain p {padding:12px 0 0 0;margin:0;}
.file_selet_group{position:absolute;top:0;right:0}
.btn_group{text-align:center}
@@ -0,0 +1,43 @@
<?php
include_once("../../../../../common.php");
// default redirection
$url = $_REQUEST["callback"].'?callback_func='.$_REQUEST["callback_func"];
$bSuccessUpload = is_uploaded_file($_FILES['Filedata']['tmp_name']);
$ym = date('ym', G5_SERVER_TIME);
$data_dir = G5_DATA_PATH.'/editor/'.$ym;
$data_url = G5_DATA_URL.'/editor/'.$ym;
@mkdir($data_dir, G5_DIR_PERMISSION);
@chmod($data_dir, G5_DIR_PERMISSION);
// SUCCESSFUL
if(bSuccessUpload) {
$tmp_name = $_FILES['Filedata']['tmp_name'];
$name = $_FILES['Filedata']['name'];
$filename_ext = strtolower(array_pop(explode('.',$name)));
if (!preg_match("/(jpe?g|gif|bmp|png)$/i", $filename_ext)) {
$url .= '&errstr='.$name;
} else {
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().".".$filename_ext;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
$save_url = sprintf('%s/%s', $data_url, $file_name);
@move_uploaded_file($tmp_name, $save_dir);
$url .= "&bNewLine=true";
$url .= "&sFileName=".$name;
$url .= "&sFileURL=".$save_url;
}
}
// FAILED
else {
$url .= '&errstr=error';
}
header('Location: '. $url);
?>
Loaded 100 of 147 files, more files were not shown because too many files have changed in this diff. Show more